Cron两次开始相同的过程

时间:2012-08-08 17:05:15

标签: linux cron crontab

我的crontab配置如下:

*/2 * * * * php /home/ec2-user/myapp/myscript.php >> /home/ec2-user/myapp/log/myapp.log 2>&1

当我执行ps aux时,我看到以下输出:

ec2-user  1296  0.0  0.0   2984   992 ?        Ss   15:36   0:00 /bin/sh -c /home/ec2-user/myapp/myscript.php >> /home/ec2-user/myapp/log/myapp.log 2>&1 SHELL=/bin/sh HOME=/home/ec2-user PATH=/usr/bin:/bin LOGNAME=ec2-user USER=ec2-user
ec2-user  1299  0.3  3.7  91528 63612 ?        S    15:36   0:16 /home/ec2-user/myapp/myscript.php SHELL=/bin/sh USER=ec2-user PATH=/usr/bin:/bin PWD=/home/ec2-user SHLVL=1 HOME=/home/ec2-user LOGNAME=ec2-user _=/usr/bin/php

对我而言,看起来同一个过程同时启动两次,使用PID 1296处理一个,使用PID 1299处理两个。

这是正常的吗?为什么两个进程都是ps输出而不是一个?

2 个答案:

答案 0 :(得分:7)

看起来/bin/sh用于调用您的cron选项卡,以便它们在自己的环境中运行,这是第一个进程。然后/bin/sh调用php来运行你的实际脚本,而php是你的第二个进程。这没什么不对。

答案 1 :(得分:3)

尝试在php之前添加exec

*/2 * * * * exec /usr/bin/php /home/ec2-user/myapp/myscript.php >> /home/ec2-user/myapp/log/myapp.log 2>&1

shell进程/ bin / sh将被exec替换