1

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

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

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

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

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

4

2 回答 2

3

只需&在最后添加一个&符号,如下所示:

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

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

于 2011-11-14T13:37:27.900 回答
0

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

于 2011-11-14T13:50:38.693 回答