/usr/sbin/service --status-all
[ ? ] alsa-utils
[ - ] anacron
[ + ] apparmor
[ + ] bluetooth
[ - ] bootlogd
[...]
의류 서비스가 운영되고 있는 것 같죠? 하지만:
/usr/sbin/service apparmor status | grep apparmor
apparmor module is loaded.
내 질문: 나는 의류 서비스가 실행 중이라는 것을 당연하게 여길 수 있습니다(커널에 로드되었기 때문입니다). 로드는 되지만 실행되지 않거나 제대로 실행되지 않게 할 수 있는 방법이 있나요?
스크립트를 사용할 때 사용하기가 더 쉽고 특정 서비스가 실행 중인지 실패했는지 알고 싶기 때문에 이 질문을 합니다.
/usr/sbin/service "${SERVICE}" status | grep "${SERVICE}"
(나는 짧은 대답을 얻기 위해 노력한다) 보다
/usr/sbin/service --status-all
다음 명령은 조작하기 어려운 대량 출력을 제공합니다. 확실히 뭔가 빠진 것이 있지만 서비스 매뉴얼 페이지에는 거의 아무것도 없습니다.
어떤 아이디어가 있나요?
답변1
service
출력을 보는 대신 종료 코드를 확인해야 합니다.
if service apparmor status >&/dev/null; then echo AppArmor is loaded and enabled; fi
정확한 결과를 제공하려면 루트로 실행해야 합니다.
예, 질문에 잘린 출력이 있으면 AppArmor가 로드되고 활성화됩니다. AppArmor는 전적으로 커널에서 처리되므로 초기화 스크립트는 필요한 구성 파일만 로드하므로 해당 프로세스가 없습니다.