为什么crontab进程有时会重复执行auto

有时,我们发现我们的服务器的cron进程自动重复,重复2或3次

当使用ps命令时,我得到这个:

server_xx14:~ # ps aux | grep cron root 2596 0.0 0.0 11188 392 ? Ss 2009 0:25 /usr/sbin/cron root 21706 0.0 0.0 20812 944 ? S 09:30 0:00 /usr/sbin/cron root 23437 0.0 0.0 20812 944 ? S 09:40 0:00 /usr/sbin/cron 

我只想要一个cron运行,我该如何解决这个问题? 谢谢!

如果在cron中有一些长时间运行和/或失败的(永不完成)脚本,它们将导致多个cron进程出现在进程列表中。

要看看发生了什么,请尝试pstree -ap并以格式良好的方式查看cron的内容,如下所示:

  ├─cron─┬─13*[cron───sh───longrunningscript_───php] │ └─cron───sh───longrunningscript_───php 

这将意味着cron已经启动了一个新的shell脚本,它启动了PHP,这需要很长时间才能运行。 如果系统中未安装pstree,则ps -auxwwwf会创build一个类似的视图。

如果cron的行为不同,一个长时间运行的cron作业可能会拖延所有其他脚本,无限期地运行在cron中。 这是你不想要的东西。

你在运行什么操作系统? 你应该只有一个cron运行的实例。 尝试运行:

 # /etc/init.d/crond stop # /etc/init.d/crond start 

或者你的操作系统使用哪个init.d脚本启动cron。 如果这样做不行,你可以运行stop命令,然后kill其余的cron进程,然后运行start