Service --status-all -> was bedeutet die Spalte mit [? ], [+] und [-] bedeuten?

13

Wenn ich den Befehl "service --status-all" ausführe, wird jeder (laufende?) Dienst im Spaltenformat aufgelistet. Die erste Spalte enthält entweder ein [? ], [+] oder [-] vor dem Dienstnamen. Was bedeutet diese Spalte? Was bedeutet?, + Und -?

Entschuldigung, wenn dies eine einfache Frage ist. Ich habe ungefähr 30 Minuten online gesucht, bevor ich hierher gekommen bin und gefragt habe.

Ich habe sogar folgendes gefunden: Was bedeuten die Symbole in service --status-all? wobei die "richtige" Antwort lautet "Es wird ein [+] oder ein [-] angezeigt, je nachdem, ob der Ausgangsstatus null oder ungleich null war."

Ich schätze, meine neue Frage lautet: Was bedeuten Status Null und Nicht-Null (!?!?!)?

00fruX
quelle

Antworten:

12

Nun, das sind nur Exit-Codes. Nachdem etwas ausgeführt wurde, kann es eine 8-Bit-Ganzzahl (0-255) zurückgeben, um anzuzeigen, wie es beendet wurde.

  • Null (was impliziert wird, wenn nichts zurückgegeben wird) bedeutet, dass die Anwendung das Ende erreicht hat, was sie eigentlich tun sollte, und auf natürliche Weise beendet wurde.
  • Codes ungleich Null (1-255) können bedeuten, was auch immer die Anwendung wünscht. Die Manpage ( man <command>) zeigt Ihnen normalerweise, was diese Codes bedeuten.

Denken Sie in Bezug auf die Frage nicht darüber nach:

  • + bedeutet, es läuft,
  • -bedeutet, dass dies nicht der Fall ist ( möglicherweise ist es abgestürzt - möglicherweise wurde es nie gestartet), und
  • ?Bedeutet, dass die Dienste keinen statusBefehl haben. Der Dienstbefehl kann also auf keinen Fall herausfinden, was was ist.
Oli
quelle
1
Ich bin mit Ihrer Antwort (+1) völlig einverstanden, kann aber nicht verstehen, warum sudo service --status-all 2>&1 | grep sshausgegeben wird, [ - ] sshselbst wenn ich diesen Befehl über SSH ausführe. Oder warum sudo service --status-all 2>&1 | grep lightdmausgeben, [ ? ] lightdmwenn es sudo service lightdm statuswie ein Zauber wirkt?
Radu Rădeanu
@ RaduRădeanu Vermutlich könnte es sich um ein Legacy- /etc/init.dProblem handeln. /etc/init.d/ssh status; echo $?Zeigt auf meinem seriell aktualisierten Computer einen Wert ungleich Null (fehlerhaft, läuft nicht) und initctl listzeigt kein SSH an. Auf meiner 14.04 Box initctrl wird SSH angezeigt, aber serviceder Status kann immer noch nicht gelesen werden. Denken Sie auch daran, dass dies initctrlfür Upstart funktioniert und serviceTeil von ist sysvinit-utils. Es ist nicht das klarste Bild, aber ich denke, das könnte einige der Macken erklären . Ich bin sicher, der Umzug nach systemd wird alles aufklären. D:
Oli
Ich dachte, ein negativer Exit-Code könnte ebenfalls zurückgegeben werden, oder ist das nur für Nicht-Service-Skripte?
Saiarcot895