Если я выполню в терминале следующее:
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 вам нужно создать свой собственный сценарий инициализации.