Raspberry Pi에서 시작할 때 어떤 서비스가 실행되는지 확인하는 방법은 무엇입니까? (라즈 비아 어)


17

부팅시 실행되는 서비스가 있지만 실제로 설정 방법을 잊어 버렸습니다! 그들의 활동을 바꾸고 싶다면 어떻게해야합니까? 예를 들어 부팅시 서비스가 시작되지 않도록 설정하거나 다른 방법으로 서비스를 시작하고 싶을 수도 있습니다.

특히 부팅시 성공적으로 실행되는 openvpn 서비스를 사용하고 있지만 일부 자습서에서는 파일 공유 프로그램 서비스를 VPN 자체에 연결하여 VPN이 다운되면 파일 공유 서비스도 연결해야한다고 말합니다. 그러나 아마도 내 VPN의 자동 실행이 문제를 복잡하게 만들고 있으며이를 비활성화하거나 시작 방법을 수정해야한다고 생각합니다. 그러나 확인하는 방법?

답변:


23

난 당신이 내 지식의 최선을 아직에 이동하지 않은, 라스베리 사용 raspian,이 가정입니다 systemd를 . 이 경우 대답은 다음과 같습니다.

편집 : systemd (Jessie 이상)에 대해서는 하단을 참조하십시오 .

먼저 다음 명령을 사용하여 현재 실행중인 시스템을 확인할 수 있습니다 .

  sudo service --status-all

다음과 같은 목록이 나타납니다.

  [ + ]  triggerhappy
  [ + ]  udev
  [ ? ]  udev-mtab
  [ ? ]  umountfs
  [ ? ]  umountnfs.sh
  [ ? ]  umountroot
  [ - ]  urandom
  [ + ]  vsftpd
  [ + ]  weewx
  [ - ]  x11-common

+의이 서비스가 실행 표시 -'s 서비스를 하지 , 실행 의? ' 허용하지 않는 서비스 상태 그들은 단지 때때로, 대부분의 모든 시간을 실행할 필요가 없습니다 명령입니다 : 가능한 명령 등을.

질문으로 돌아가려면 Linux의 런레벨 을 이해해야 합니다. 런레벨 (0-6 + S)은 실행할 수있는 서비스를 식별합니다. 부팅 순서는 초기 런레벨 ( Raspberry의 / etc / inittab에 지정)에서 진행됩니다.

 # The default runlevel.
 id:2:initdefault:

이 줄은이를 2로 식별 한 다음 배포 표준 최종 런레벨 (2-5)로 진행합니다. 명령을 사용하여 현재 런레벨을 식별합니다

 # runlevel
 N 2

(제 경우에는 헤드리스 서버). 다른 런레벨은 (é / etc / inittab *에서 다시) :

 # Runlevel 0 is halt.
 # Runlevel 1 is single-user.
 # Runlevels 2-5 are multi-user.
 # Runlevel 6 is reboot.

단일 사용자 (1)는 종종 S로 식별됩니다.

일반 부팅에서는 2에서 시작하여 5까지 진행합니다.이 진행에서 시작된 서비스를 찾으려면 다음 명령을 실행하십시오.

 # grep -nrI Default-Start /etc/init.d
 umountroot:7:# Default-Start:
 checkroot.sh:8:# Default-Start:     S
 kbd:6:# Default-Start:     S
 isc-dhcp-server:11:# Default-Start:     2 3 4 5
 mountkernfs.sh:7:# Default-Start:     S
 hostname.sh:7:# Default-Start:     S
 mountnfs.sh:7:# Default-Start:     S
 halt:6:# Default-Start:
 dphys-swapfile:20:# Default-Start:     2 3 4 5
 bootlogs:7:# Default-Start:     1 2 3 4 5
 rc.local:6:# Default-Start:     2 3 4 5
 hostapd:9:# Default-Start:      2 3 4 5
 keyboard-setup:8:# Default-Start:     S
 lightdm:7:# Default-Start:     2 3 4 5
 procps:11:# Default-Start:     S
 mysql:9:# Default-Start:     2 3 4 5
 single:6:# Default-Start:     1
 vsftpd:7:# Default-Start:       2 3 4 5
 samba:7:# Default-Start:     2 3 4 5
 mountall.sh:6:# Default-Start:     S
 weewx:20:# Default-Start:     2 3 4 5
 umountnfs.sh:7:# Default-Start:
 triggerhappy:6:# Default-Start:     2 3 4 5
 ifplugd:24:# Default-Start:     2 3 4 5
 alsa-utils:9:# Default-Start:     S
 bootmisc.sh:7:# Default-Start:     S
 sendsigs:6:# Default-Start:
 console-setup:7:# Default-Start:     S
 nfs-common:7:# Default-Start:     2 3 4 5 S
 checkroot-bootclean.sh:6:# Default-Start:     S
 rsyslog:7:# Default-Start:     2 3 4 5
 x11-common:7:# Default-Start:     S
 mountdevsubfs.sh:7:# Default-Start:     S
 cron:10:# Default-Start:     2 3 4 5
 mountnfs-bootclean.sh:6:# Default-Start:     S
 mountall-bootclean.sh:6:# Default-Start:     S
 screen-cleanup:11:# Default-Start:     S
 udev:6:# Default-Start:     S
 ssh:7:# Default-Start:  2 3 4 5
 haveged:8:# Default-Start:     2 3 4 5
 hwclock.sh:26:# Default-Start:     S
 plymouth:9:# Default-Start:     2 3 4 5
 motd:7:# Default-Start:     1 2 3 4 5
 killprocs:6:# Default-Start:     1
 networking:6:# Default-Start:     S
 fake-hwclock:9:# Default-Start:     S
 udev-mtab:6:# Default-Start:     S
 apache2:6:# Default-Start:     2 3 4 5
 reboot:6:# Default-Start:
 umountfs:6:# Default-Start:
 plymouth-log:9:# Default-Start: S
 openvpn:11:# Default-Start:     2 3 4 5
 kmod:8:# Default-Start:     S
 ntp:7:# Default-Start:   2 3 4 5
 rpcbind:9:# Default-Start:     S 2 3 4 5
 urandom:6:# Default-Start:     S
 rmnologin:6:# Default-Start:     2 3 4 5
 checkfs.sh:7:# Default-Start:     S
 sudo:8:# Default-Start:     2 3 4 5
 mtab.sh:6:# Default-Start:     S
 dbus:6:# Default-Start:     2 3 4 5
 rsync:8:# Default-Start:     2 3 4 5

/etc/init.d/의 모든 파일에서 Default-Start 로 시작하는 행을 인쇄합니다. 여기서 다양한 서비스를 식별하는 파일이 유지됩니다. 해당 행은 각 서비스가 시작될 실행 레벨을 식별합니다. 서비스가 실행 레벨 N에서 시작된 경우 시스템이 N + 1로 진행될 때 다시 시작할 필요는 없지만 실행 중이 아닌 것으로 확인되면 시작됩니다.

이것은 서비스가 시작되는 여러 단계에 대한 정확한 아이디어를 제공합니다. 그러나 같은 런레벨 내 줄 필요-시작해야하고 스타트는 해당 서비스에 대한 하드 및 소프트 종속성을 정의 즉, 서비스 있어야 실행 해야 서비스가 조사되기 전에 실행합니다. 필수 시작 서비스가 없으면 문제의 서비스가 실패하고 대신 시작 서비스가 없으면 일반적인 실패가 발생하지 않으며 유용한 기능이 없을 수도 있습니다. Required-Stop 및 Must-Stop과 함께 중지시에도 마찬가지입니다.

SYSTEMD :

모든 서비스를 나열하는 명령은

systemctl list-unit-files

많은 정보를 뱉어냅니다. 활성화 된 모든 서비스 , 부팅시 시작된 서비스를 선택하려면 위의 명령을 다음과 같이 grep하십시오.

 systemctl list-unit-files | grep enabled 

나는이 명령을 선호 systemctl 목록-단위 : 차이가있는 동안이 일에만, 당신의 OS가) 메모리 = OS가이 필요로 생각하는이 서비스를 표시하는 것입니다 systemctl 목록-단위 파일이 표시됩니다 모두 있는 것을 포함, 설치 서비스를 마스킹 ( , 수동으로 시작되지 않아야하는 것) 및 활성화 되지 않는 것 ( 정적) . 즉, 내가 제안한 명령은 활성 서비스 만 나열하는 명령보다 포괄적 입니다.

주의 : systemd는 이전 init 시스템과 매우 다릅니다. 특히, runlevels 가 없지만 targets가 있습니다. 런레벨은 여전히 호환성 문제로 존재하며 다음을 통해 사용 가능한 모든 대상을 나열하여 특정 대상으로 볼 수 있습니다.

systemctl list-unit-files --type=target

다음을 통해 현재 목표를 볼 수 있습니다.

$ systemctl get-default
  graphical.target

이에 대한 자세한 내용은 DigitalOcean의 우수한 소개 페이지를 참조하십시오 .


Raspbian Jessie는을 사용 systemd하지만이 답변은 여전히 ​​작동하는 것 같습니다.
ZX9

1
@ ZX9이 오래된 게시물에 관심을 가져 주셔서 감사합니다 . systemd 에 대한 편집을 추가했습니다 .
MariusMatutiae

8

Raspberry Pi의 간단한 시작 서비스 관리를 위해서는 tool을 권장 rcconf합니다. 에서 서비스를 쉽게 켜고 끌 수 있습니다 /etc/init.d/. 또한 활성화되어 있고 시작시 실행되는지 확인할 수 있습니다.

도구를 설치하려면

sudo apt-get install rcconf

그리고 텍스트 UI와 함께 사용하는 것은 매우 간단합니다

sudo rcconf

이것은 OP에 대답하지 않습니다 . (라즈 비아 어) .
MariusMatutiae

@MariusMatutiae rcconf서비스 활성화 여부를 알려줍니다. 도구가 이러한 특정 종류의 정보를 표시한다고 명시 적으로 답변을 편집했습니다.
jjurm

3
sudo nano /etc/rc.local

부팅시 실행할 배치 파일 또는 명령을 삽입하는 위치입니다. 부팅시 Openvpn을 자동 실행합니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.