Daemontools - ведение журнала stderr и stdout отдельно
В соответствии с документацией, которую я смог найти, рекомендованный daemontools способ перехватить stderr (или любой другой файловый дескриптор) - это перенаправить его в stdout. Если ваш сервис имеет log/run
сценарий, стандартный вывод вашего демона будет передан на него.
Это, очевидно, означает, что stderr и stdout смешиваются в выходных данных регистратора. Кто-нибудь имел опыт захвата stdout и stderr отдельно в процессе, управляемом daemontools?
1 ответ
Похоже на вопрос оболочки "Как я могу отправить stderr и stdout их отдельным способом?" Предполагая bash или синтаксис Bourne-ish:
# 3 goes to wherever stdout is pointing
exec 3>&1
# send stdout of this cmd to FD 3, stderr somewhere else
eval $command 2>&1 1>&3 | sed 's/^/stderr from pipe: /'
# close FD 3
exec 3>&-