В Linux crontab, stderr моей программы должен быть перенаправлен, почему?

Я пишу программу, которая может выводить в stderr. Когда я запускаю его в Linux crontab, я должен перенаправить stderr. если нет, программа завершит работу с кодом SIGPIPE. Почему?

НЕ ОК

45 10 * * * /home/sandy/test > /home/sandy/test.log &

OK

45 10 * * * /home/sandy/test > /home/sandy/test.log 2>&1 &
4 голоса | спросил sandy 24 AMpTue, 24 Apr 2012 11:16:26 +040016Tuesday 2012, 11:16:26

1 ответ


0

SIGPIPE отправляется процессу, если он пытается выполнить запись в канал (или сокет) конец чтения которого был закрыт. cron обычно пытается отправить stdout и stderr вывод указанная команда по электронной почте, кроме случаев, когда она перенаправлена. это возможно, что на вашей машине не настроена локальная доставка электронной почты правильно и программа электронной почты, запущенная cron, отправляет вам stderr умер, в то время как /home/sandy/test все еще работал, в результате чего сломалась труба.

Ответ получен из здесь и здесь

ответил Pavan Manjunath 24 AMpTue, 24 Apr 2012 11:35:19 +040035Tuesday 2012, 11:35:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132