Como ler o stdout do script executado pelo sistema?

Como ler o stdout do script executado pelo sistema?

Quero depurar um script que coloquei no /etc/pm/sleep.d. No meu script, emito um echocomando para relatar o status.

Onde posso ler esta saída? Estou pensando em algo parecido dmesgou em um arquivo /var/logtalvez?

Esta é a melhor maneira? Qual é a prática padrão ao depurar scripts bash que deveriam ser executados pelo sistema (como aqueles em /etc/init.d/ou . Xinit)?

Responder1

Descobri que, em vez de usar echo, você pode usar loggercomandos de saída para o log do sistema para fins de depuração.

logger "Oh no"

Então, você pode verificar a saída em /var/log/syslog

sudo tail /var/log/syslog

Responder2

Como você já mencionou, você tem uma instrução echo em seu script.

Agora edite seu script como no início do arquivo após shebang.

> /tmp/myoutput

myoutput é apenas um nome de arquivo na montagem /tmp, você pode escolher o que quiser.

Depois disso, onde quer que você tenha uma declaração echo em seu script como esta

echo "something"

mude para

echo "something" >> /tmp/myoutput

é isso, então sempre que seu script for executado, você terá o controle mais recente do que aconteceu com seu script.

informação relacionada