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

Таким образом, я пытался запустить свой скрипт NotifyServer.py с заданием крона. Это - просто простой сценарий, который отправляет сообщение на сервер разногласий. Я запускаю скрипт на rpi3, вот мой файл системного журнала. Я не знаю, что сделать из него, поскольку я еще не являюсь настолько опытным при кодировании вообще.

//www.rsyslog.com"] rsyslogd was HUPed
May  4 06:57:38 raspberrypi systemd[1]: Starting Daily apt upgrade and clean activities...
May  4 06:57:39 raspberrypi systemd[1]: Started Daily apt upgrade and clean activities.
May  4 06:57:39 raspberrypi systemd[1]: apt-daily-upgrade.timer: Adding 29min 40.308844s random time.
May  4 06:57:39 raspberrypi systemd[1]: apt-daily-upgrade.timer: Adding 10min 1.139309s random time.
May  4 07:17:01 raspberrypi CRON[1425]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 07:59:01 raspberrypi CRON[1454]: (pi) CMD (pkill python)
May  4 08:00:01 raspberrypi CRON[1463]: (pi) CMD (usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &)
May  4 08:17:01 raspberrypi CRON[1479]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 09:17:01 raspberrypi CRON[1511]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 10:17:01 raspberrypi CRON[1545]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 11:17:01 raspberrypi CRON[1580]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 11:59:01 raspberrypi CRON[1606]: (pi) CMD (pkill python)
May  4 12:00:01 raspberrypi CRON[1615]: (pi) CMD (usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &)
May  4 12:17:01 raspberrypi CRON[1631]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 13:17:01 raspberrypi CRON[1664]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 13:27:23 raspberrypi systemd[1]: Starting Daily apt download activities...
May  4 13:27:24 raspberrypi systemd[1]: Started Daily apt download activities.
May  4 13:27:24 raspberrypi systemd[1]: apt-daily.timer: Adding 5h 45min 49.014375s random time.
May  4 13:27:24 raspberrypi systemd[1]: apt-daily.timer: Adding 7h 16min 18.482369s random time.
May  4 13:42:38 raspberrypi systemd[1]: Starting Cleanup of Temporary Directories...
May  4 13:42:38 raspberrypi systemd[1]: Started Cleanup of Temporary Directories.
May  4 14:17:01 raspberrypi CRON[1758]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 15:17:01 raspberrypi CRON[1791]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 15:59:01 raspberrypi CRON[1817]: (pi) CMD (pkill python)
May  4 16:00:01 raspberrypi CRON[1826]: (pi) CMD (usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &)
May  4 16:17:01 raspberrypi CRON[1843]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 17:17:01 raspberrypi CRON[1876]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 18:17:01 raspberrypi CRON[1909]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 19:17:01 raspberrypi CRON[1941]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 19:59:02 raspberrypi CRON[1969]: (pi) CMD (pkill python)
May  4 20:00:01 raspberrypi CRON[1979]: (pi) CMD (usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &)
May  4 20:17:01 raspberrypi CRON[1994]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 21:17:01 raspberrypi CRON[2027]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 22:17:01 raspberrypi CRON[2059]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 23:17:01 raspberrypi CRON[2093]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  4 23:59:01 raspberrypi CRON[2120]: (pi) CMD (pkill python)
May  5 00:00:01 raspberrypi CRON[2130]: (pi) CMD (usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &)
May  5 00:17:01 raspberrypi CRON[2145]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  5 01:16:23 raspberrypi systemd[1]: Starting Daily apt download activities...
May  5 01:16:24 raspberrypi systemd[1]: Started Daily apt download activities.
May  5 01:16:24 raspberrypi systemd[1]: apt-daily.timer: Adding 6h 59min 49.631939s random time.
May  5 01:16:24 raspberrypi systemd[1]: apt-daily.timer: Adding 3h 30min 56.222065s random time.
May  5 01:17:01 raspberrypi CRON[2225]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
May  5 02:03:07 raspberrypi systemd[1]: Started Session c14 of user pi.
May  5 02:11:09 raspberrypi crontab[2314]: (pi) BEGIN EDIT (pi)
May  5 02:16:58 raspberrypi crontab[2314]: (pi) END EDIT (pi)
May  5 02:17:01 raspberrypi CRON[2332]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Мой ток crontab -l некомментарии:

0 0   * * * usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &
59 3  * * * pkill python
0 4   * * * usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &
59 7  * * * pkill python
0 8   * * * usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &
59 11 * * * pkill python
0 12  * * * usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &
59 15 * * * pkill python
0 16  * * * usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &
59 19 * * * pkill python
0 20  * * * usr/bin/python home/pi/InvestorBot/NotifyServerV1.0.py &
59 23 * * * pkill python
0
задан 6 May 2019 в 03:22

1 ответ

Это потому, что пути, которые вы указали для crontab, неполны .

В Linux каждый абсолютный путь начинается с /. Ваши строки crontab пропускают / в начале каждого пути. Вот как должна работать первая строка:

0 0 * * * /usr/bin/python /home/pi/InvestorBot/NotifyServerV1.0.py &

Кроме того, вам не нужно ставить 6 строк для запуска команды каждые 4 часа. Вы можете указать cron запускать вашу команду каждые 4 часа следующим образом:

0 */4 * * * /usr/bin/python /home/pi/InvestorBot/NotifyServerV1.0.py &

См. этот ответ в cron или просто сгенерировать свою конфигурацию crontab, используя crontab.guru .

Кроме того, ваша вторая команда, pkill python, может быть опасной , так как может убить другие экземпляры python, работающие в вашей системе, совершенно не связанные с вашей командой и необходимые для системы.

Как сказано в этом ответе , лучше вместо этого указать имя вашего сценария:

pkill -1 -f NotifyServerV1.0.py
0
ответ дан 6 May 2019 в 03:22

Другие вопросы по тегам:

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