Posso fazer o systemd mostrar o status do serviço depois de iniciar ou parar um serviço?


8

Estou tentando fazer com que o systemd faça o que os scripts init.d fariam, mostrando o status de um serviço automaticamente depois de receber manualmente um comando para iniciar ou parar. Isso é de alguma forma possível?

Infelizmente, o systemd aparece de volta, uma vez que é executado em segundo plano e, em seguida, você precisa executar um segundo comando para mostrar o status, o início ou a parada pode ou não ter funcionado, o systemd não informará a menos que você pergunte e o deixe ignorantemente feliz.

ie Estou tentando conseguir

service nginx status

para executar automaticamente depois de fazer um

service nginx start

ou

service nginx restart

(ou no sistema danificado pelo cérebro systemctl start nginx.service)


1
Eu uso os comandos "danificados pelo cérebro" (eu gosto deles!). Na verdade, eles não dizem nada quando tudo estiver bem, mas avisarão quando algo falhar. Pelo menos é assim que acontece no openSUSE 13.1. Você tem certeza de que eles ficam "calados" quando falham? Você tentou systemctl start nginx.service && echo SUCCESS || echo failure?
Huygens

2
O @Huygens não conta com o systemd capaz de detectar todas as falhas, pode haver definitivamente falhas ou avisos silenciosos. Os processos são iniciados em segundo plano e o systemd sai do controle, não é como o init.d Eu posso ver que isso acontece de forma consistente com a falha na criação do arquivo PID. Obter um status após uma inicialização ou reinicialização manual é uma necessidade absoluta com systemd (e o ponto da minha pergunta).
30714

obrigado pelo esclarecimento, eu aprendi alguma coisa aqui! Estou ansioso por uma resposta para esta pergunta então!
Huygens

A sintaxe braindead é um serviço porque ao contrário de muito melhor systemd sintaxe não permite-lhe operar em vários serviços ao mesmo tempo: systemctl service3 parada service1 service2
deus

1
Se você ainda observar a mesma inconsistência ao verificar o status de systemctlsaída sugerido pelo @Huygens, o problema pode ser que nginx.serviceinicia com êxito, mas falha depois. Tente verificar o diário ou nos logs do Nginx.
Amir

Respostas:


1

Não há nenhum comando interno para o seu caso de uso; portanto, você precisará criar um alias para seu shell favorito ou um wrapper de script trivial.


0

Para tornar o systemd mais "detalhado", adicione / descomente as seguintes linhas no seu /etc/systemd/journald.confe, em seguida, reinicie:

ForwardToConsole=yes
MaxLevelConsole=debug
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.