시작시 시작되는 서비스를 나열하는 명령?


144

시작시 실행되는 서비스를 나열하는 명령이 있습니까? 파싱 /etc/init.d/과 다양한 /etc/rc.*디렉토리 가 필요하다고 생각합니다 .

답변:


104

initctl list쉘 명령을 사용 /etc/init하여 제안 된 dbus-send명령 이 아닌 내용을 나열 할 수 있습니다 .


1
우분투 18.04에서 작동합니까? "initctl : command not found"(bash에서)
Sanjay Manohar

121

빠른 답변은 init시스템에 따라 다릅니다 .

긴 대답은 다음과 같습니다. 현재 Ubuntu 버전의 경우 UpstartSystemV 가 혼합되어 있습니다. 15.04 "Vivid Vervet"(및 RHEL / CentOS 7과 같은 다른 Linux 배포판) 이후의 최신 버전의 Ubuntu는 SystemD 를 사용 하려고 합니다.

건방진 녀석

모든 서비스를 나열하려면

initctl list

모든 Upstart 서비스를 나열하고 실행하려면 initctl show-config이 단일 라이너가 도움이 될 수 있습니다.

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

시스템 V

모든 서비스를 나열하려면

service --status-all

또는:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

모든 서비스를 나열하려면

systemctl list-unit-files --type=service

또는:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service

9
이것이 정답입니다.
sjas

service --status-all적어도 우분투 16에서는 부팅하지 않고 서비스를 시작할 수 있는지 여부는 표시하지 않습니다 . 현재 서비스가 실행 중인지 여부를 표시합니다 .
와일드 카드

1
나는에 있었다 sudo service --status-all얻는 모든 표시하는 서비스입니다. service --status-all루트가 아닌 계정 에서만 실행했을 때 일부가 숨겨졌습니다 .
Phlucious

@Phlucious : 언급 해 주셔서 감사합니다. 나는 그것을 잘 이러한 명령은 일반적으로 루트 (로 실행되는 것을 알려졌다 가정 systemctl, service, initctl그들은 일반적으로 시스템 관리 명령 간주됩니다로 ...).
TrinitronX

13

/etc/init.d/etc/rc.*디렉토리는 '로 대체 한 upstart'init을 도구. 이 디렉토리의 스크립트는 예상대로 실행되지만 init에서 실행하는 새로운 방법은/etc/init/

dbus를 통해 upstart를 쿼리하여 모든 upstart 작업을 나열 할 수 있습니다.

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

사용 0_6중인 시작 버전을 반영 하도록 변경해야 할 수도 있습니다. 이 명령은 내 lucid 설치에서 작동합니다.


3
@Eric H : 아래 답변을 대신 올바른 것으로 설정할 수 있습니까? initctl list이 dbus 명령보다 훨씬 좋습니다 . 그래도이 답변을 참조 용으로 남겨두고 싶습니다 (완전히 삭제하는 것이 아니라).
Jeremy Kerr

12

서비스와 시간의 멋진 그래픽 표현을 원한다면 부팅하는 데 걸리는 시간 :

apt-get install bootchart

11

initctl show-config <servicename>부팅하는 동안 서비스가 언제 시작되는지에 대한 세부 정보를 얻는 데 사용 됩니다.

이렇게 :

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

또는 NFS4 idmap-daemon의 경우 :

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

chkconfig는 RedHat 기반 시스템 imho에서만 선호됩니다.


1
이것이 정답입니다. 나는 왜 모든 잘못되고 불완전한 대답이 그렇게 높은 평가를 받았는지 전혀 모른다.
Cerin

1
이것은 SysV를 사용하는 사람들에게 가장 효과적이지만, 이것이 좋은 대답이지만 불완전하다는 데 동의합니다.
Gabriel Netto

9

12.04에서 다음을 사용할 수 있습니다.

sudo apt-get install chkconfig
chkconfig --list

그러나 12.10 에서 제거되었습니다 .

샘플 출력 :

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on

2
우분투에서는 작동하지 않습니다. packages.ubuntu.com/…
AB

알려 줘서 감사합니다! 다운 보터가 오늘날 논평하는 것은 드문 일입니다. 용기가 필요하고 배울 수 있습니다. 작동하는 버전으로 업데이트되었습니다.
Ciro Santilli 新 件 中心 法轮功 六四 事件



0

아래의 시스템 서비스 및 스크립트 외에 :

/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /

예를 들어 자동 시작 응용 프로그램 도 있을 수 있습니다 .

find / -name "*autostart*"

ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart"  "/usr/share/gnome/autostart"

-2

gawk 사용하기 :

ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'

샘플 출력 :

$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.