Я использую Plesk 12 + CentOS 6.
Я ssh в root
учетная запись и использование crontab -e
создать следующую запись:
* * * * * service httpd restart
Я ожидаю, что он будет перезапускать apache каждую минуту (просто чтобы проверить / отладить его работу)
Я проверил статус apache, используя service httpd status
и PID всегда один и тот же, и apache не перезагружается.
Я проверил /var/log/cron
что команда выполняется.
Feb 7 16:11:01 srv104 CROND[15620]: (root) CMD (service httpd restart)
Однако все остальные записи в crontab
правильно выполняются.
Если я выполню команду service httpd restart
вручную в терминале оболочки, apache перезапускается правильно с новым обновленным PID.
Существуют ли какие-либо превентивные меры, чтобы service
не может быть выполнен в root cronjob
?
Почему мой crontab не работает и как я могу устранить его? содержит несколько полезных советов, но не касается моей конкретной ситуации, упомянутой в исходном вопросе выше.
Рабочее решение:
Если я укажу полный путь к /sbin/service
, например. /sbin/service httpd restart
в cronjob, как указано в принятом ответе, он работает.
Не уверен, что это связано с версией операционной системы, но просто с PATH
на месте в /etc/crontab/
не помогает в моей ситуации.
Замените вашу команду на /sbin/service httpd restart
.
Или, как указано в комментариях: установка PATH в /etc/crontab
, включая /sbin
и /usr/sbin
стоит сделать.