php shell_exec 在后台一次执行多个命令

发布于 2024-11-16 04:22:57 字数 495 浏览 3 评论 0原文

我在 php/linux 中遇到问题,如下所述:

我必须通过 shell_exec (plesk cli 命令订阅 webspace-off)执行 linux 命令。

问题是,当我从 php 执行此操作时,它可以工作,但是重新启动 apache,导致在 apache 重新启动时出现空白页面。

为了解决这个问题,我必须在后台调用 shell_exec,并延迟(预期结果:网页加载,4 秒后运行 Linux 脚本。)

我已经做了一些尝试,例如:

shell_exec("sleep 4 && /var/www/vhosts/site.com/httpdocs/wrapper2 3  --webspace-off ".$domain_name." &");

但是 php 会等待回复。

不知怎的,我需要休眠一个linux命令的执行,而所有这些都必须在bg中运行。, 并且不要等待回复。

谢谢

I have a problem in php/linux, described below:

I have to execute a linux command through shell_exec (plesk cli command subscription webspace-off).

The problem is when i do this from php it works, but restarts apache, that resulting in a blank page, while apache restarts.

To get rid of the problem i have to call that shell_exec in background, with a delay (Expected result: the web page loads, and after 4 sec. runs the linux script.)

I have done some tryings like:

shell_exec("sleep 4 && /var/www/vhosts/site.com/httpdocs/wrapper2 3  --webspace-off ".$domain_name." &");

but php will wait for response.

Somehow i need to sleep the execution of a linux command , and all this has to run in bg.,
and dont wait for response.

Thanks

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

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

发布评论

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

评论(1

仅此而已 2024-11-23 04:22:58

您应该尝试使用 exec 而不是 < code>shell_exec,并将所有输出重定向到 /dev/null。像这样的东西:(

exec("(sleep 4 && ... --webspace-off ".$domain_name.") > /dev/null 2>&1 &");

注意命令周围的 () :您需要捕获 sleep 和包装器的输出流。)

编辑:并使 real< /strong> 确保您验证 $domain_name。如果没有验证,

$domain_name = "; rm -rf ...";

你就有麻烦了......

You should try using exec rather than shell_exec, and redirect all output to /dev/null. Something like:

exec("(sleep 4 && ... --webspace-off ".$domain_name.") > /dev/null 2>&1 &");

(Note the () around the commands: you need to catch the output stream of both sleep and your wrapper.)

Edit: and make real sure that you validate $domain_name. Without validation and with

$domain_name = "; rm -rf ...";

you're in trouble...

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