Como ler stdout do script executado pelo sistema?

0

Eu quero depurar um script que coloquei em /etc/pm/sleep.d . No meu script, emito um comando echo para relatar o status.

Onde posso ler esta saída? Estou pensando em algo como dmesg ou um arquivo em /var/log talvez?

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

    
por Federico 26.05.2017 / 02:02

2 respostas

1

Descobri que, em vez de usar echo , você pode usar logger para enviar comandos para o log do sistema com a finalidade de depuração.

logger "Oh no"

Em seguida, você pode verificar a saída em / var / log / syslog

sudo tail /var/log/syslog
    
por 26.05.2017 / 05:15
1

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

Agora edite seu script e isso como no começo do arquivo depois do shebang.

> /tmp/myoutput

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

Depois disso, onde quer que você tenha uma declaração de eco em seu script como essa

echo "something"

altere para

echo "something" >> /tmp/myoutput

é isso, então toda vez que seu script for executado, você terá a última pista do que aconteceu com o seu script.

    
por 26.05.2017 / 05:16