Назад | Перейти на главную страницу

Экран Cronjob PHP не запускается

Если я выполню в терминале следующее:

screen -dmS tt-rss-daemon sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php --feeds --daemon

Если я напишу следующее в Crontab (crontab -e) и перезагрузите машину, ничего не происходит.

@reboot screen -dmS tt-rss-daemon sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php --feeds --daemon

Есть ли у кого-нибудь идеи, как это исправить?

Проверьте свои sudoers файл и убедитесь, что у вас нет requiretty включен (ищите строку вроде Defaults requiretty). requiretty предотвращает использование sudo в cron и других неинтерактивных ситуациях. В Debian это не по умолчанию. Я почти уверен cron должен отправить вашему пользователю электронное письмо с сообщением об ошибке, если это так (если он не настроен, или вы отправили вывод на /dev/null).

Другой вариант - если у вашего пользователя нет разрешения на создание личного crontab. В таком случае, cron просто проигнорирует вашу запись полностью. Если /etc/cron.allow существует, ваш пользователь должен быть указан в нем. Если /etc/cron.deny существует, ваш пользователь не должен быть в нем указан.

cron настроен на запуск при загрузке системы? Попробуйте настроить его на запуск в определенное время и посмотрите, запустится ли он. Если нет, то скорее всего, cron не работает, и вам нужно будет добавить cron для запуска на соответствующем уровне выполнения.

в Redhat:

chkconfig cron on

в Gentoo:

rc-update add cron default

в Debian / Ubuntu

update-rc.d cron defaults

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

/etc/rc.d/rc.local

В Gentoo

/etc/local.d/anyfilename.start

Я считаю, что в Debian вам нужно создать свой собственный сценарий инициализации.