我的 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 输出中有两个进程而不是一个进程?
最佳答案
看起来 /bin/sh
用于调用您的 cron 选项卡,以便它们在自己的环境中运行,这是第一个进程。然后 /bin/sh
调用 php 来运行您的实际脚本,而 php 是您的第二个进程。这没有错。
关于linux - Cron 启动同一个进程两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869594/