似乎Cron工作甚至在Stopped之后仍在工作

时间:2014-08-12 07:43:53

标签: php linux cron crontab

我的一个cronjobs每天发送一封电子邮件

35 6 * * * cd $EZPUBLISHROOT && $PHP runcronjobs.php -q 2>&1

我使用

停止了cron
sudo service cron stop

当我检查cron状态时

 sudo service cron status

cron stop/waiting

问题是我昨天停止了我的crons,但今天也发了电子邮件

我做错了吗

1.how to stop all cron jobs properly 
2.how to view last ran cronjob list .

我试图通过

获得最后一次运行cronob的详细信息
grep cron /var/log/syslog

但它是空的,但是当我转到syslog文件时,我可以在某些地方看到CRON这个词。

Aug 12 09:10:01 64177 CRON[6388]: (root) CMD (cd /var/www && /usr/bin/php runcronjobs.p......

当我尝试输入

ps -ax | grep cron

 5696 pts/3    S+     0:00 grep --color=auto cron
13011 ?        Ss     0:00 cron l

在我停止了cron工作后,它是否可以运行crons?

感谢advnace

3 个答案:

答案 0 :(得分:3)

通常您可以使用以下命令访问crontab:

crontab -l (lists cronjobs)

并编辑:

crontab -e

暂时停止cronjob你通常可以只注释掉第一个数字:

# 35 6 * * * cd $EZPUBLISHROOT && $PHP runcronjobs.php -q 2>&1

永久不再运行cronjob只删除特定的作业。 crontab通常在您编辑后自动重新启动。如果没有尝试使用:

sudo restart cron

更多信息:http://man7.org/linux/man-pages/man1/crontab.1.html

答案 1 :(得分:3)

正确的做法是将每个工作或每组工作都放在他们自己的命名空间中。 / file:

/etc/cron.d/production-job-mail-on-delivery
/etc/cron.d/production-aggregate-account-data
/etc/cron.d/devel-job-mail-on-delivery
/etc/cron.d/system-cleanup-sundy
/etc/cron.d/common-mailings

如果要停止,只需将这些文件移出/etc/cron.d/文件夹即可。

您不应该停止使用cron服务,并且不应该在更大的系统上使用crontab / /etc/crontab

为什么?

例如,我在一个系统上有200个cronjobs。 /etc/crontab文件变得非常混乱。例如,一些工作需要停止一周,其他工作需要永久运行。使用cron.d文件夹这是一项非常简单的任务。

答案 2 :(得分:2)

这样做的简单方法是通过crontab -e评论cronjob:

#35 6 * * * cd $EZPUBLISHROOT && $PHP runcronjobs.php -q 2>&1

除此之外,您应该配置运行cronjob的频率的时间。

停止进程

ps|aux grep runcronjobs

并且在获得正在运行的进程列表之后,您可以使用其编号

来终止进程
kill *number