Ole*_*leg 2 linux cron crontab
我有crontab配置如下:
*/2 * * * * php /home/ec2-user/myapp/myscript.php >> /home/ec2-user/myapp/log/myapp.log 2>&1
Run Code Online (Sandbox Code Playgroud)
当我执行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
Run Code Online (Sandbox Code Playgroud)
对我来说,看起来同一个过程同时启动两次,使用PID 1296处理一个,使用PID 1299处理两个.
这是正常的吗?为什么两个进程都是ps输出而不是一个?
它看起来像是/bin/sh用于调用你的cron标签,以便它们在自己的环境中运行,这是第一个进程.然后/bin/sh调用php来运行你的实际脚本,php是你的第二个进程.这没什么不对.