我正在使用 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
均正确执行。
如果我在 shell 终端中手动执行命令service httpd restart
,apache 将使用新的更新 PID 正确重新启动。
有没有什么预防措施无法service
执行root cronjob
?
为什么我的 crontab 不工作?我该如何排除故障?有一些有用的提示,但没有解决我在上面原始问题中提到的具体情况。
工作解决方案:
如果我指定了完整路径/sbin/service
,例如/sbin/service httpd restart
在 cronjob 中,如接受的答案中提到的那样,它确实有效。
不确定是否与操作系统版本有关,但仅仅使用它对PATH
我/etc/crontab/
的情况没有帮助。
答案1
用 替换您的命令/sbin/service httpd restart
。
或者正如评论中指出的那样:在中设置 PATH /etc/crontab
,包括/sbin
和/usr/sbin
应该可以。