我有一台服务器在运行并使用supervisor作为我的消费者的流程管理器。 另外我想要一个每天执行的/etc/cron.d/restart_consumers文件。
restart_consumers文件如下所示:
#Ansible: daily restart of test_consumer
0 20 * * * root supervisorctl restart test_consumer
当我使用sudo supervisorctl restart test_consumer
它表示停止和启动时,在supervisorctl status
输出中我可以看到几秒钟的正常运行时间。
当Cron在晚上8点运行时,test_consumer的运行时间超过一天。所以它没有执行。
如果我将cron日志级别设置为1,我会在日志文件中看到以下条目,看起来很好:
2016-03-09T20:00:01.377430+00:00 localhost /USR/SBIN/CRON[4762]: (root) CMD (supervisorctl restart test_consumer)
任何人都可以告诉我如何让我的cron重新启动管理程序进程吗?
重新启动cron服务没有帮助。
提前致谢,如果您需要更多信息,请随时提出。
答案 0 :(得分:2)
解决了我的问题。 cron作业需要supervisorctl的绝对路径来正确执行任务(可能是cron在执行时使用的环境问题)
工作命令是:
#Ansible: daily restart of test_consumer
0 20 * * * root /usr/local/bin/supervisorctl restart test_consumer
消费者现在已被cron正确重启。