Service --status-all -> che cosa contiene la colonna con [? ], [+] e [-] significano?


13

Se eseguo il comando "service --status-all", ogni servizio (in esecuzione?) Viene elencato in formato colonna. La prima colonna ha un [? ], [+] o [-] prima del nome del servizio. Cosa rappresenta questa colonna? Cosa significa?, + E -?

Scusa se questa è una domanda semplice. Ho cercato online per circa 30 minuti prima di venire qui e chiedere.

Ho anche trovato questo: cosa significano i simboli in servizio --status-all? dove la risposta "corretta" indica "Disegna un [+] o [-] a seconda che lo stato di uscita fosse zero o diverso da zero, rispettivamente.".

Quindi, suppongo che la mia nuova domanda sia: cosa significano status zero e diverso da zero (!?!?!)?

Risposte:


12

Bene, questi sono solo codici di uscita. Dopo che qualcosa ha funzionato, può restituire un numero intero a 8 bit (0-255) per indicare come è uscito.

  • Zero (che è implicito se non viene restituito nulla) significa che l'applicazione è arrivata alla fine di ciò che doveva fare ed è uscita naturalmente.
  • Codici diversi da zero (1-255) possono significare qualunque cosa l'applicazione voglia. La pagina man ( man <command>) di solito ti mostra cosa significano questi codici.

In termini di domanda, non pensarci troppo:

  • + significa che sta correndo,
  • -significa che non lo è ( potrebbe essersi schiantato - potrebbe non essere mai stato avviato) e
  • ?significa che i servizi non hanno un statuscomando, quindi non c'è modo che il comando di servizio possa capire cosa sia cosa.

1
Sono totalmente d'accordo con la tua risposta (+1), ma non riesco proprio a capire perché gli sudo service --status-all 2>&1 | grep sshoutput [ - ] sshanche quando eseguo questo comando da SSH? O perché sudo service --status-all 2>&1 | grep lightdmuscite [ ? ] lightdmquando sudo service lightdm statusfunziona come un incantesimo?
Radu Rădeanu,

@ RaduRădeanu Per indovinare, penso che potrebbe essere un /etc/init.dproblema di eredità . Sul mio computer aggiornato in serie, /etc/init.d/ssh status; echo $?mostra un valore diverso da zero (non valido, non in esecuzione) e initctl listnon mostra SSH. Sulla mia 14.04 box initctrl fa spettacolo SSH, ma serviceancora non è possibile leggere lo stato. Ricorda anche che initctrlfunziona per Upstart e servicefa parte di sysvinit-utils. Non è la più chiara delle immagini ma penso che potrebbe andare in qualche modo a spiegare alcune delle stranezze. Sono sicuro che il passaggio a systemd chiarirà tutto D:
Oli

Ho pensato che potesse essere restituito anche un codice di uscita negativo, o lo è solo per gli script non di servizio?
saiarcot895,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.