我创建了一个每隔5分钟调用一个php脚本的cronjob。
这个PHP脚本需要启动其他几个PHP CLI脚本,并使它们在后台运行,即使cron脚本终止也是如此。
我目前正在通过以下代码行创建这些子流程:
if (!$pid = shell_exec("nohup /var/[..]/cake.php test doSomething > /dev/null 2>&1 & echo $!")) return false;
当我通过命令行调用“的母亲”时,一切都很好。但是,当cron-job停止时,上面的代码行似乎终止了子进程startet。
那么如何生成这些cake.php test doSomething
脚本并保持子进程在crontab中的预定义用户下运行?
答案 0 :(得分:3)
这是有道理的,你需要告诉孩子PHP脚本在父母停止时不会终止。
ignore_user_abort(true);
将以上行添加到子PHP脚本中。应该这样做