Задание крона пишет ошибку в журнал ошибок, но не удается записать выводы для вывода файла журнала

В конвейере, все процессы запускаются одновременно, нет того, который является ранее, чем другие.

Вы могли сделать:

(echo "$BASHPID" > pid-file; exec inotifywait -m ...) | while IFS= read -r...

Или портативно:

sh -c 'echo "$$" > pid-file; exec inotifywait -m ...' | while IFS= read -r...

Также обратите внимание на это, когда подоболочка, которая работает while цикл завершается, inotifywait был бы уничтожен автоматически в следующий раз, когда это пишет что-то в stdout.

3
23.04.2015, 20:40
2 ответа

, кажется, я получил эту проблему, поскольку данные на STDOUT были зафиксированы. Согласно это пост, я только что изменил свою работу Cron на

31 10  * * 1-5 cd /home/alpha/IBpy && stdbuf -i0 -o0 -e0 python ShortData.py >> /home/alpha/logs/Shortdata.op 2>> /home/alpha/logs/Shortdata.er

, и теперь все работает нормально.

2
27.01.2020, 21:23

Ваш синтаксис должен работать в (BA) Sh . Проверьте документацию оболочки по умолчанию в вашей системе для правильного синтаксиса. Обратите внимание, что разные оболочки имеют разную поддержку для перенаправления. Например, в CSH вы не можете перенаправить STDERR на STDOUT .

Если это не так, я скажу, что это ошибка в сам сценарий Python. Если вы проверяете время / дату внутри ваших сценариев Python, убедитесь, что вы получите правильный формат времени.

1
27.01.2020, 21:23

Теги

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