サービス--status-all-> [?]、[+]、および[-]はどういう意味ですか?


13

コマンド "service --status-all"を実行すると、各(実行中?)サービスが列形式でリストされます。最初の列には、[?]、[+]、または[-]サービス名の前。この列は何を表していますか??、+、および-はどういう意味ですか?

これが簡単な質問であれば申し訳ありません。ここに来て尋ねる前に、私はオンラインで約30分間検索しました。

私もこれを見つけました:サービスのシンボル--status-allはどういう意味ですか?「正しい」答えは、「終了ステータスがゼロか非ゼロかによって、それぞれ[+]または[-]を描画します」と表示されます。

だから、私の新しい質問はステータスゼロと非ゼロ(!?!?!)はどういう意味ですか?

回答:


12

まあ、それらは単に終了コードです。実行が完了すると、8ビット整数(0〜255)を返して終了方法を示すことができます。

  • ゼロ(何も返されない場合に暗示されます)は、アプリケーションが本来行うべきことの終わりに達し、自然に終了したことを意味します。
  • ゼロ以外のコード(1〜255)は、アプリケーションが望むものを意味します。man <command>通常、manページ()にこれらのコードの意味が表示されます。

質問に関しては、考え直さないでください。

  • + 実行されていることを意味し、
  • -手段、それは(そうでないかもしれないクラッシュした-それが始まったことはなかったかもしれない)、および
  • ?サービスがstatusコマンドを持たないことを意味します。そのため、サービスコマンドが何を実行できるかはわかりません。

1
私はあなたの答えに完全に同意します(+1)が、SSHからこのコマンドを実行してもsudo service --status-all 2>&1 | grep ssh出力[ - ] sshされる理由を理解できませんか?または、なぜチャームのように機能するときにsudo service --status-all 2>&1 | grep lightdm出力[ ? ] lightdmするのsudo service lightdm statusですか?
ラドゥラデアヌ14年

@RaduRădeanu推測するために、私はレガシーな/etc/init.d問題かもしれないと思う。シリアルアップグレードされたコンピューターで、/etc/init.d/ssh status; echo $?ゼロ以外(不良、実行されてinitctl listいない)を表示し、SSHを表示しません。14.04ボックスにSSHが表示されますinitctrl service、ステータスを読み取ることができません。またinitctrl、Upstart で機能し、のservice一部であることも忘れないでくださいsysvinit-utils。それは絵の最も明確ではないのですが、私はそれを説明するためにいくつかの道を行くかもしれないと思ういくつかの癖のを。systemdへの移行により、すべてがクリアされますD:
オリ

負の終了コードも返されると考えましたか、それともサービス以外のスクリプトのみですか?
saiarcot895 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.