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>&-
Другие вопросы по тегам