2个问题,cron作业不运行重启,kill不优雅重启

Posted

技术标签:

【中文标题】2个问题,cron作业不运行重启,kill不优雅重启【英文标题】:2 questions, cron job not running restart, kill not gracefully restarting 【发布时间】:2015-07-15 16:45:13 【问题描述】:

我将以下 cron 作业放在 var/spool/cron 下的根 crontab 中

*/5 * * * * service php-fpm-5.5.11 restart

我在 cron 日志中看到它每 5 分钟调用一次,所以我知道它正在被调用,但它没有重新启动 php-fpm。

Question 1:
  Is there a different way to restart services when calling them in cron?     
  What would be the correct way to call this restart?

另一个问题和问题的根源是我有另一个每天晚上运行的电话有时会完全杀死我的网站,因为 php-fpm 没有正确重新启动:

/bin/kill -SIGUSR1 `cat /opt/pifpm/php-5.5.11/var/run/php-fpm.pid 2>/dev/null`  2>/dev/null || true

我明白了:

[12-Jul-2015 00:52:29] ERROR: An another FPM instance seems to already listen on /opt/pifpm/fpmsockets/5.5.11.sock
[12-Jul-2015 00:52:29] ERROR: FPM initialization failed

Question 2
  Is there a better way to call the kill statement? For instance:

[ ! -f /opt/pifpm/php-5.5.11/var/run/php-fpm.pid ] || kill -USR2 `cat /opt/pifpm/php-5.5.11/var/run/php-fpm.pid`

这是一个 nginx 和 centos 设置。

这是 cron 日志的一部分:

Jul 15 12:15:01 insp CROND[7325]: (root) CMD (service php-fpm-5.5.11 restart)
Jul 15 12:15:01 insp CROND[7326]: (root) CMD (/usr/local/cpanel/scripts/recoverymgmt >/dev/null 2>&1)
Jul 15 12:15:01 insp CROND[7327]: (root) CMD (/usr/local/cpanel/bin/dcpumon >/dev/null 2>&1)
Jul 15 12:15:01 insp CROND[7332]: (root) CMD (/usr/local/cpanel/scripts/autorepair recoverymgmt >/dev/null 2>&1)
Jul 15 12:15:01 insp CROND[7333]: (root) CMD (/usr/local/cpanel/bin/dbindex >/dev/null 2>&1)
Jul 15 12:16:53 insp /usr/bin/crontab[7530]: (root) BEGIN EDIT (root)
Jul 15 12:16:57 insp /usr/bin/crontab[7530]: (root) END EDIT (root)
Jul 15 12:20:01 insp CROND[7842]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 15 12:20:01 insp CROND[7845]: (root) CMD (/usr/local/cpanel/bin/dcpumon >/dev/null 2>&1)
Jul 15 12:20:01 insp CROND[7846]: (root) CMD (service php-fpm-5.5.11 restart)
Jul 15 12:20:01 insp CROND[7847]: (root) CMD (/usr/local/maldetect/maldet --mkpubpaths >> /dev/null 2>&1)

【问题讨论】:

您在日志文件中看到了什么? (比“我每 5 分钟在 cron 日志中看到它调用一次,所以我知道它正在被调用”更具体一些)。 我在上面添加了一部分 cron 日志。 查看命令MD(service php-fpm-5.5.11 restart),找到了吗? cron 的众多缺陷之一是路径不同。 所以我应该硬编码路径? 应该吗?也许。不会疼的。 【参考方案1】:

回答第 1 题。

/etc/rc.d/init.d/php-fpm-5.5.11 restart 是在 cron 中使用的正确路径。

/etc/rc.d/init.d目录下大部分服务包括httpd

【讨论】:

谢谢你,Hennes 在问题 1 上为我指明了正确的方向

以上是关于2个问题,cron作业不运行重启,kill不优雅重启的主要内容,如果未能解决你的问题,请参考以下文章

通过 Cron 作业交替使用 linux 脚本 [关闭]

每天 2:30 运行一次 cron 作业?

优雅重启 django-q qcluster

如何让 NGINX 从 cron 作业重新启动/重新加载?

如何设置系统来告诉我 cron 作业是不是运行不正常?

如何在不延迟任务的情况下优雅地重启 Celery