Service --status-all -> qu'est-ce que la colonne avec [? ], [+] et [-] signifient?

13

Si j'exécute la commande "service --status-all", chaque service (en cours d'exécution?) Est répertorié sous forme de colonne. La première colonne a soit un [? ], [+] ou [-] avant le nom du service. Que représente cette colonne? Que signifie?, + Et - signifie?

Désolé si c'est une question simple. J'ai cherché en ligne pendant environ 30 minutes avant de venir ici et de demander.

J'ai même trouvé ceci: que signifient les symboles en service - état-tout? où la réponse "correcte" indique "Il dessine un [+] ou [-] selon que le statut de sortie était zéro ou différent de zéro, respectivement.".

Donc, je suppose que ma nouvelle question est de savoir ce que signifie le statut zéro et non nul (!?!?!)?

00fruX
la source

Réponses:

12

Eh bien, ce ne sont que des codes de sortie. Une fois que quelque chose a été exécuté, il peut retourner un entier 8 bits (0-255) pour indiquer comment il s'est arrêté.

  • Zéro (ce qui est implicite si rien n'est retourné) signifie que l'application est arrivée à la fin de ce qu'elle était censée faire et s'est terminée naturellement.
  • Les codes non nuls (1-255) peuvent signifier tout ce que l'application veut. La page de manuel ( man <command>) vous montrera généralement ce que ces codes signifient.

Pour ce qui est de la question, n'y pensez pas trop:

  • + signifie qu'il fonctionne,
  • -signifie qu'il ne l'est pas (il s'est peut- être écrasé - il n'a peut-être jamais commencé), et
  • ?signifie que les services n'ont pas de statuscommande, il n'y a donc aucun moyen que la commande de service puisse déterminer ce qui est quoi.
Oli
la source
1
Je suis totalement d'accord avec votre réponse (+1), mais je ne comprends tout simplement pas pourquoi les sudo service --status-all 2>&1 | grep sshsorties [ - ] sshmême lorsque j'exécute cette commande à partir de SSH? Ou pourquoi sudo service --status-all 2>&1 | grep lightdmsort [ ? ] lightdmquand sudo service lightdm statusfonctionne comme un charme?
Radu Rădeanu
@ RaduRădeanu Pour deviner, je pense que c'est peut-être un /etc/init.dproblème hérité . Sur mon ordinateur mis à niveau en série, /etc/init.d/ssh status; echo $?affiche non nul (mauvais, ne fonctionne pas) et initctl listn'affiche pas SSH. Sur ma boîte 14,04 initctrl ne show SSH , mais servicene peut toujours pas lire l'état. N'oubliez pas que cela initctrlfonctionne pour Upstart et en servicefait partie sysvinit-utils. Ce n'est pas la plus claire des images, mais je pense que cela pourrait expliquer en partie certaines des bizarreries. Je suis sûr que le passage à systemd effacera tout D:
Oli
Je pensais qu'un code de sortie négatif pourrait également être renvoyé, ou est-ce uniquement pour les scripts non-service?
saiarcot895