/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
正確な結果を提供するには、rootとして実行する必要があります。
はい、質問に切り捨てられた出力があると、AppArmorがロードされアクティブになります。 AppArmorは完全にカーネルで処理されるため、初期化スクリプトは必要な構成ファイルのみをロードするため、そのプロセスはありません。