¿Cómo leer la salida estándar del script ejecutado por el sistema?

¿Cómo leer la salida estándar del script ejecutado por el sistema?

Quiero depurar un script que coloqué /etc/pm/sleep.d. En mi script emito un echocomando para informar el estado.

¿Dónde puedo leer este resultado? ¿Estoy pensando en algo así como dmesgo en un archivo /var/logtal vez?

¿Es esta la mejor manera? ¿Cuál es la práctica estándar al depurar scripts bash que se supone que debe ejecutar el sistema (como los de /etc/init.d/o . Xinit)?

Respuesta1

Descubrí que en lugar de usar echo, puede usar loggerpara enviar comandos al registro del sistema con el fin de depurar.

logger "Oh no"

Luego, puede verificar el resultado en /var/log/syslog

sudo tail /var/log/syslog

Respuesta2

Como ya mencionaste, tienes una declaración de eco en tu script.

Ahora edite su script y esto como al principio del archivo después del shebang.

> /tmp/myoutput

myoutput es solo un nombre de archivo en el montaje /tmp, puedes elegir lo que quieras.

Después de esto, dondequiera que tengas una declaración de eco en tu script como esta

echo "something"

cambiarlo a

echo "something" >> /tmp/myoutput

Eso es todo, de modo que cada vez que se ejecute su secuencia de comandos, tendrá un seguimiento más reciente de lo que sucedió con su secuencia de comandos.

información relacionada