linux - Cron 启动同一个进程两次

标签 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 输出中有两个进程而不是一个进程?

最佳答案

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

关于linux - Cron 启动同一个进程两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869594/

相关文章:

linux - 意外的 EOF cronjob 错误

c++ - 线程——Mac 与 Linux

php - crontab 内存不足

bash - crontab 在 ffmpeg 中的转换过程结束之前再次启动(取决于时间假设/2 分钟)如何控制?

unix - 每天午夜一分钟后如何执行cron?

bash - Cronjob 不运行 Python 脚本,即使它具有执行权限和对 python 完整路径的 hashbang。在 cronjob 之外正常工作

linux - 在中断处理程序中获取被中断任务的调用堆栈

c - closedir() 后无效的 free()

php 每1分钟执行一次crontab脚本

linux - 将 10 分钟的 cron 作业添加到 Ubuntu 包