systemd: durante a inicialização de um serviço, veja mensagens

0

Eu estava usando o SysV para o meu serviço.

Eu tive:

service myservice restart

Agora estou migrando para o systemd e gosto mais dele. A única desvantagem é que:

systemctl restart myservice

não mostra a saída padrão do meu serviço, que indica o progresso.

Eu sei que posso usar:

journalctl -u myservice -f -b

mas eu preciso de outro console para isso, e não é uma solução confortável. Além disso, journalctl não pára quando o serviço termina sua inicialização.

Alguma ideia para melhorar isso?

UPDATE

Meu objetivo é obter o comportamento antigo do SysV: ao iniciar o serviço, mostrar a saída do console até que a inicialização do serviço seja concluída. Desta forma, pode ser conhecido se existem alguns problemas de inicialização ou para saber o progresso. Pode ser por vezes lento para o arranque.

    
por david.perez 24.11.2017 / 13:17

1 resposta

0

Depende do que você quer. Se você quiser verificar apenas active (running) status, systemctl status myservice será suficiente. O status active (running) geralmente significa que o serviço está atendendo ao seu propósito.

Se você precisar de um teste mais simples para a atividade de serviço, use:

# systemctl is-active myservice
active
# echo $?
0

O estado defeituoso pode ser:     # systemctl é o myservice ativo     inativo     # echo $?     3

Então você pode usá-lo no teste.

No entanto, se você realmente precisar de journalctl -f e quiser pará-lo depois de algum tempo, você poderá usar o comando timeout . Veja o exemplo:

timeout 20s journalctl -f

O proces journalctl será eliminado após 20 segundos neste exemplo. Se você redirecionar a saída, você poderá analisá-la.

    
por 27.11.2017 / 09:28