为什么这个cron条目执行了两次?

ero*_*ppa 20 cron

*/5 * * * * my command
Run Code Online (Sandbox Code Playgroud)

此条目有效,但每5分钟执行两次,为什么?

/var/log/cron其中显示:

Jun 16 22:20:01 Test CROND[12512]: (root) CMD (my command)
Jun 16 22:20:01 Test CROND[12516]: (root) CMD (my command)
Run Code Online (Sandbox Code Playgroud)

所以它不是来自两个用户.

它只输入一次crontab -e -u root.该命令是一个php命令.

Ste*_*Mai 43

说明书中没有任何内容说明它被执行两次的原因.看别处.

  • 有两个用户打电话吗?
  • 它输入了两次吗?
  • 它会自称吗?
  • 它是否设定了重复的运动条件?

如果这是你执行一个shell脚本,把它添加whoamidate日志文件.你应该能够找到原因.

UPDATE

键入ps -A,确保crond没有运行两次.

  • 这是我的问题的解决方案,cron不止一次运行.在我的系统上,我不得不寻找cron而不是crond.一旦我停止并启动了cron服务,它只有一个正在运行的实例.谢谢@StefanMai (5认同)
  • ps -A可能会令人困惑,因为cron会创建将在不同行上列出的子节点.'ps axjf'将在主根目录中列出一个带有'cron'的树,用于主cron进程; 如果有多个根,则更容易发现. (5认同)

ano*_*raq 8

crontab中的wget通常限制为15分钟.在我们的情况下,情况就是如此,在这15分钟之后,作业最终会超时,然后立即重新运行.所以,解决这个问题的方法是在crontab中设置cronjob,如下所示:

1 2 * * * root wget --read-timeout=3600 -O - 'http://cron-job-url' >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

...代替

 1 2 * * * root wget -O - 'http://cron-job-url' >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

所以,wget就是这样.含义3600 = 1小时.或者更多,如果你需要!