Bash 脚本 - nohup,但然后让进程继续运行?

发布于 2024-12-15 04:00:53 字数 287 浏览 0 评论 0原文

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

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

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

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

我怎样才能让它运行然后“挂断”或离开它?

I've got a PHP script running a bunch of commands to execute bash scripts, via system() with nohup.

The command line to call sh looks like:-

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

I want the .sh script to be set running, and then leave it and return to my continue my PHP script. However, what is happening, is it's being started and then holding to get a response/complete before proceeding.

How can I set it running and then 'hang up' or leave it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

写下不归期 2024-12-22 04:00:53

只需在末尾添加一个 & 符号 & 即可,如下所示:

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

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

Just append an ampersand & in the end like this:

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

This will execute the shell script in a separate sub process and return immediately to php.

若水般的淡然安静女子 2024-12-22 04:00:53

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

If you intend to run this shell script after you exit PHP then it is suggested to run program in a new session using setsid. Look at http://php.net/manual/en/function.posix-setsid.php for example or use setsid program

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文