1

我创建了一个 cronjob,它每 5 分钟调用一个 php 脚本。

这个 PHP 脚本需要启动其他几个 PHP CLI 脚本并让它们在后台运行,即使在 cron 脚本终止时也是如此。

我目前正在通过以下代码行创建这些子流程:

if (!$pid = shell_exec("nohup /var/[..]/cake.php test doSomething > /dev/null 2>&1 & echo $!")) return false;  

当我通过命令行调用“motherscript”时,一切正常。但是,当 cron-job 停止时,上述代码行的子进程似乎被终止了。

那么如何生成这些cake.php test doSomething脚本并让子进程在 crontab 中的预定义用户下运行呢?

4

1 回答 1

3

这是有道理的,您需要告诉子 PHP 脚本在其父停止时不要终止。

ignore_user_abort(true);

将以上行添加到子 PHP 脚本中。应该这样做

于 2011-12-10T17:24:23.980 回答