Bash Scripting - nohup,但是让流程继续运行?

时间:2011-11-14 13:30:28

标签: php bash nohup

我有一个PHP脚本运行一堆命令来执行bash脚本,通过带有nohup的system()。

调用sh的命令行如下所示: -

system('nohup /home/me/script.sh %s %d %d 2>&1 > %s');

我希望将.sh脚本设置为运行,然后保留它并返回到我的继续我的PHP脚本。然而,正在发生的事情是,它正在启动,然后在继续之前保持得到响应/完成。

如何设置它运行然后'挂断'或离开?

2 个答案:

答案 0 :(得分:3)

最后添加&符号&,如下所示:

system('nohup /home/me/script.sh %s %d %d 2>&1 > %s &');

这将在一个单独的子进程中执行shell脚本并立即返回到php。

答案 1 :(得分:0)

如果您打算在退出PHP后运行此shell脚本,则建议使用 setsid 在新会话中运行程序。例如,查看http://php.net/manual/en/function.posix-setsid.php或使用setsid程序