부팅시 시작되는 모든 서비스 나열


15

부팅을 시작하거나 시작 해야하는 모든 서비스 (/etc/init.d 또는 upstart 또는 systemd) 목록을 얻는 방법을 찾고 있습니다.

모든 시작 서비스 목록을 어떻게 얻습니까? — 나는 그 질문을 알고 있으며 그것을 사용할 것을 제안합니다 service --status-all.

그러나 그것은 나에게 어떤 서비스가 실행 되고 있는지 보여주지 않습니다 . " status"인수를 사용하여 모든 초기화 스크립트를 호출합니다 . 실행 가능한 모든 서비스 목록입니다.

그러나 부팅시 시작된 서비스가 여전히 실행 중인지 알고 싶습니다.

예…

webfs가 설치되어 있습니다. 그러나 부팅시 실행되고 싶지 않습니다. 따라서 나는 그것을 비활성화했다 : sudo update-rc.d webfs disable. 그리고 또한 삼바를 설치했으며 부팅시 실행 중이어야합니다. 그러나 어떤 이유로 든 중지됩니다. sudo service --status-all여기에 도움이되지 않습니다 :

$ sudo service --status-all 2>/dev/null | grep -E 'samba$|webfs'
 [ - ]  samba
 [ - ]  webfs

둘 다 꺼져 있지만 단서가 없습니다. 하나 (삼바)가 켜져 있어야합니다.

그래서…

부팅시 시작되는 모든 서비스 목록을 어떻게 얻을 수 있습니까? 그리고 확장으로 이러한 서비스의 "상태"를 얻는 쉬운 방법이 있습니다 (그렇지 않은 경우이 목록을 반복하여 "service $ service status"또는 이와 유사한 방식으로 실행 함).

고마워, Alexander

2015-05-04 편집 : 나는 우분투 14.04에 있습니다.

이 질문의 주요 초점은 다음과 같습니다.

그러나 부팅시 시작된 서비스가 여전히 실행 중인지 알고 싶습니다.

이 때문에 initctl list많은 도움 이 되지 않습니다. /etc/init.d스크립트로 시작된 서비스 (의 시작 스크립트와 비교) 는 실제로 고려하지 않습니다 /etc/init.

또한 목록이 /etc/rc?.d/S*도움 이 되지 않습니다. 지정된 런레벨에서 시작된 서비스 목록을 생성합니다. 시작해야했던 서비스가 여전히 실행 중이면 표시되지 않습니다.

기본적으로, svcs -x우분투 용 솔라리스 와 같은 것을 찾고 있습니다. 을 사용하면 svcs -x시작된 서비스가 더 이상 실행되지 않는 경우 출력됩니다. 이것도 우분투가 필요합니다.

이유 : Icinga / Nagios 모니터링 시스템에 대한 일반적인 검사를하고 싶습니다. 서비스가 더 이상 실행되고 있지 않으면 실행 중이어야한다는 경고 메시지가 표시됩니다. 다양한 고객을위한 다양한 서버가 있으므로 "중요한"서비스 목록을 정의하도록 확장 할 수는 없습니다.


어떤 우분투 버전?
AB


@Parto이 질문에 대한 답 initctl list은 시작 / 실행중인 프로세스를 나열하지만 해당 목록에는 수동으로 시작된 프로세스도 포함됩니다.
Sergiy Kolodyazhnyy

@AB 우분투 14.04에 있습니다.
Alexander Skwar

@Parto askubuntu.com/questions/218/…에 대한 답변은 없습니다. @Serg가 쓴 것처럼 대답이 사용되었습니다 initctl list. 그러나 수동으로 시작한 서비스도 표시하므로 실제로 대답하지는 않습니다. 그리고 실행되지 않는 서비스는 표시하지 않습니다.
Alexander Skwar

답변:


19

모든 서비스는 시작시 시작됩니다.

initctl list

시스템에 존재하는 모든 서비스 목록 :

service --status-all

잘못된. 활성화 된 서비스 목록을 제공하지 마십시오 (시작시 시작). 알려진 모든 서비스 (일부는 비활성화 될 수 있음)와 현재 실행 중인지 여부를 보여줍니다 (이것이 반드시 자동으로 시작되는 것은 아닙니다).
Reinier Post

2

여기 내 oneliner가 있습니다 grep -i 'runlevel' /etc/init/* | awk '!/#/ && /start on/ && /2/ {gsub("/"," "); print $0 }' | cut -d ' ' -f4-

비트 클리너 출력은 grep -i 'runlevel' /etc/init/* | awk '/start on/ && /2/ {gsub("/"," "); gsub(":", " ");gsub(".conf"," "); print $3 }'

이제 세부 사항을 살펴 보겠습니다. 시작 작업은 모두에 저장됩니다 /etc/init/. 거기에있는 모든 작업에는 시작하는 실행 수준을 나타내는 줄이 있습니다. 런레벨 2는 기본 부팅, 기본 런레벨입니다. 따라서 우리가 말하는 모든 행을 runlevelgrep하고 grep의 출력을 awk로 정리 start on하여 실행 레벨 # 2 와만 일치하면 가동 시작 작업 목록을 얻습니다. 나머지는 포맷 요구를 위해, 파일 이름에서 /를 공백으로 바꾸고, 파일 이름을 남기지 않고 해당 파일의 경로를 잘라냅니다.

!/#/부분은 개인적으로 수동으로 추가 한 시작 지시문을 언급하는 것입니다.

무엇보다도, /etc/rc2.d(내가 올바르게 이해한다면) 우선 순위가 낮은 스크립트가있는 곳이 있습니다.

그에 대한 조잡한 하나의 라이너는 다음과 같습니다. ls /etc/rc2.d/* | grep S | awk '{sub("S"," "); print $2}

해당 폴더에서 실제로 실행 레벨 2에서 실행되는 스크립트는 S로 시작하여 우선 순위 번호가 붙습니다. 이제 기본적으로 S로 시작하는 모든 파일을 가져 와서 우선 순위 이름으로 만 나열하십시오 (여전히 정리하는 방법을 알아야합니다).

주석에서 muru가 올바르게 지적했듯이 /etc/init/*.override파일 도 있습니다. ".... .. 구성 파일을 직접 수정하지 않고 작업 실행 방법을 수정할 수 있습니다"( init 맨 페이지 )

현재로서는 이러한 파일에 대한 경험이 많지 않기 때문에 'grep'manual '/etc/init/*.override'를 사용하여 .override 파일을 살펴 보는 것이 좋습니다. initctl또는 services명령 으로 수동으로 .


이벤트 종속성으로 인해 지정된 서비스로 인해 다른 서비스가 시작되는지 쉽게 확인할 수 없습니다. 작은 .override파일 문제도 있습니다.
muru

@Serg 감사합니다. 그러나 그것은 단지 신생 재료 만 다룹니다. 또한 "ls /etc/rc2.d/* ..."는별로 도움이되지 않습니다. 어떤 서비스가 시작되었는지 보여줍니다. 그러나 아직 실행중인 서비스는 표시되지 않습니다. 내 게시물의 요점은 명확하지 않은 것 같습니다. 찾고 있습니다. 그러나 부팅시 시작된 서비스가 여전히 실행 중인지 알고 싶습니다. Solaris를 알고 있는지 모르겠습니다. 거기에서 나는 단순히 "svcs -x"를하고 무언가를 반환하면 무언가가 실행되고 있지 않다는 것을 안다. 우분투에는 이와 같은 것이 필요합니다.
Alexander Skwar

글쎄, 하나의 라이너 출력과 initctl 목록의 출력을 비교하는 스크립트 또는 bashrc 함수를 작성할 수 있습니다. 내가 그것을 게시하고 싶습니까?
Sergiy Kolodyazhnyy 2014 년

@Serg well — 제공한다면;)
Alexander Skwar

2

모든 서비스 및 해당 런레벨 상태를 나열하십시오-chkconfig 스타일 :

# sysv-rc-conf --list

acpid        2:on       3:on    4:on    5:on
apache-htcac 0:off      1:off   2:off   3:off   4:off   5:off   6:off
apache2      0:off      1:off   2:on    3:on    4:on    5:on    6:off

나열된 모든 대화식 텍스트 기반 편집 :

# sysv-rc-conf

l SysV Runlevel Config   -: stop service  =/+: start service  h: help  q: quit qk
x 
x service      1       2       3       4       5       0       6       S 
x ----------------------------------------------------------------------------
x acpid       [ ]     [X]     [X]     [X]     [X]     [ ]     [ ]     [ ]
x apache-ht$  [ ]     [ ]     [ ]     [ ]     [ ]     [ ]     [ ]     [ ]
x apache2     [ ]     [X]     [X]     [X]     [X]     [ ]     [ ]     [ ]
x
x Use the arrow keys or mouse to move around.      ^n: next pg     ^p: prev pg
x                        space: toggle service on / off

없는 경우 설치해야 할 수 있습니다.

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