У меня есть чрезвычайно простой cronjob, который я настроил, чтобы убедиться, что скрипт продолжает работать, и напишите мне, если он выйдет из строя (я знаю, что это низкотехнологичный, но это было задумано как быстрое решение)
К сожалению, этот cronjob не делает свою работу
Вот соответствующая строка из моего crontab:
* * * * * pgrep -f app.py || echo "Your app is down" | mail -s "URGENT" steven.abarnett@gmail.com
Когда я запускаю команду в оболочке, она работает: я получаю электронное письмо, только если приложение не работает. В качестве небольшого побочного эффекта, когда приложение работает, он выводит PID на экран.
Когда я запускаю команду через cronjob, я никогда не получаю никаких писем. Расследование (установив параметр MAILTO=
для просмотра вывода cronjob) я заметил, что когда приложение работает, оно выводит два PID, а когда приложение не запускается, оно выводит один PID (никогда не ноль, поэтому оно никогда не отправляет электронное письмо )
Это почти как если бы cronjob раскручивал процесс, который, в свою очередь, виден сам по себе - очень похоже на то, как печатает ps -ax | grep "anything"
всегда будет возвращаться:
12345 pts/2 S+ 0:00 grep --color=auto anything
Кто-нибудь знает, как исправить этот cronjob?