Quero depurar um script que coloquei no /etc/pm/sleep.d
. No meu script, emito um echo
comando para relatar o status.
Onde posso ler esta saída? Estou pensando em algo parecido dmesg
ou em um arquivo /var/log
talvez?
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 logger
comandos 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.