我有一个 PHP 脚本运行一堆命令来执行 bash 脚本,通过 system() 和 nohup。
调用 sh 的命令行如下所示:-
system('nohup /home/me/script.sh %s %d %d 2>&1 > %s');
我希望将 .sh 脚本设置为运行,然后离开它并返回到我继续我的 PHP 脚本。但是,正在发生的事情是它正在启动,然后在继续之前保持以获得响应/完成。
如何设置它运行然后“挂断”或离开它?
只需&
在最后添加一个&符号,如下所示:
system('nohup /home/me/script.sh %s %d %d 2>&1 > %s &');
这将在单独的子进程中执行 shell 脚本并立即返回 php。
如果您打算在退出 PHP 后运行此 shell 脚本,则建议使用setsid在新会话中运行程序。以http://php.net/manual/en/function.posix-setsid.php为例或使用 setsid 程序