Я использую python subprocess
, чтобы внести изменения в crontab
, в частности используя:
subprocess.Popen(["crontab", cron_tab_file])
Это все работает нормально, и когда я проверяю crontab, используя crontab -l
, все в cron_tab_file
есть. Тем не менее, ничего не работает.
Я всегда использовал полные пути, например .:
* * * * * /bin/bash /full/path/to/test.sh
Однако, если я снова сохраню crontab из терминала, используя crontab -e
, фактически ничего не меняя, crontab внезапно становится активным и начинает запускать команды в нем. Я не понимаю, не должен ли cron запускаться контентом в crontab без необходимости ручного обновления? Я использую MacOS Sierra. Такое поведение cron беспокоит меня, и я нигде не могу найти решения или объяснения в Интернете. Я делал повторные попытки, и каждый раз, когда редактирование с помощью скрипта Python не работает, и если я изменяю его, сохраняя вручную, оно неожиданно срабатывает.
Дополнительная информация
Я проверил /usr/lib/cron/tabs
с привилегией sudo, и мой файл cron всегда изменяется, будь то я или скрипт. но если это был сценарий, который изменил его, то изменение не запустится. Если я отредактировал его вручную, появится сообщение crontab: installing new crontab
и будут запущены новые команды. Есть ли команда, чтобы заставить cron установить новый crontab?