Как прочитать stdout из скрипта, запущенного системой?

Как прочитать stdout из скрипта, запущенного системой?

Я хочу отладить скрипт, который я поместил в /etc/pm/sleep.d. В своем скрипте я выдаю echoкоманду для отчета о состоянии.

Где я могу прочитать этот вывод? Я думаю, в чем-то вроде dmesgили файле, /var/logможет быть?

Это лучший способ? Какова стандартная практика отладки bash-скриптов, которые должны выполняться системой (например, в /etc/init.d/или . Xinit)?

решение1

Я обнаружил echo, что вместо использования можно использовать loggerдля вывода команд в системный журнал в целях отладки.

logger "Oh no"

Затем вы можете проверить вывод в /var/log/syslog

sudo tail /var/log/syslog

решение2

Как вы уже упомянули, в вашем скрипте есть оператор echo.

Теперь отредактируйте свой скрипт и вот это, как в начале файла после shebang.

> /tmp/myoutput

myoutput — это просто имя файла в монтировании /tmp, вы можете выбрать что угодно.

После этого, где бы вы ни использовали оператор echo в вашем скрипте, например, такой:

echo "something"

изменить это на

echo "something" >> /tmp/myoutput

Вот и все, теперь при каждом запуске вашего скрипта у вас будет последняя информация о том, что произошло с ним.

Связанный контент