Serviço - status-all -> com o que a coluna [[? ], [+] e [-] significam?


13

Se eu executar o comando "service --status-all", cada serviço (em execução?) Será listado no formato de coluna. A primeira coluna tem um [? ], [+] ou [-] antes do nome do serviço. O que essa coluna representa? O que significa?, + E -?

Desculpe se esta é uma pergunta simples. Pesquisei on-line por ~ 30 minutos antes de vir aqui e perguntar.

Eu até encontrei o seguinte: O que significam os símbolos em serviço - status-all? onde a resposta "correta" declara "Desenha um [+] ou [-] dependendo se o status de saída era zero ou diferente de zero, respectivamente.".

Então, acho que minha nova pergunta é o que significa status zero e diferente de zero (!?!?!)?

Respostas:


12

Bem, esses são apenas códigos de saída. Depois que algo termina a execução, ele pode retornar um número inteiro de 8 bits (0-255) para indicar como saiu.

  • Zero (que está implícito se nada for retornado) significa que o aplicativo chegou ao final do que deveria fazer e saiu naturalmente.
  • Códigos diferentes de zero (1-255) podem significar o que o aplicativo desejar. A página de manual ( man <command>) geralmente mostra o que esses códigos significam.

Em termos da pergunta, não pense demais:

  • + significa que está funcionando,
  • -significa que não está ( pode ter travado - talvez nunca tenha iniciado) e
  • ?significa que os serviços não têm um statuscomando; portanto, não há como o comando de serviço descobrir o que é o quê.

1
Concordo totalmente com a sua resposta (+1), mas não consigo entender por que as sudo service --status-all 2>&1 | grep sshsaídas, [ - ] sshmesmo quando executo esse comando do SSH? Ou por que sudo service --status-all 2>&1 | grep lightdmsaídas [ ? ] lightdmquando sudo service lightdm statusfunciona como um encanto?
Radu Rădeanu 20/03/2014

@ RaduRădeanu Para adivinhar, acho que pode ser um /etc/init.dproblema de legado . No meu computador atualizado em série, /etc/init.d/ssh status; echo $?mostra diferente de zero (ruim, não está em execução) e initctl listnão mostra SSH. Na minha caixa de 14.04 initctrl faz show de SSH mas serviceainda não pode ler o estado. Lembre-se também de que initctrlfunciona para o Upstart e servicefaz parte sysvinit-utils. Não é a mais clara das fotos, mas acho que isso pode ajudar a explicar algumas das peculiaridades. Eu tenho certeza que a mudança para o systemd vai esclarecer tudo. D:
Oli

Eu pensei que um código de saída negativo poderia ser retornado também, ou é apenas para scripts que não são de serviço?
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.