系统相关
首页 > 系统相关> > php shell_exec在后台一次执行多个命令

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

作者:互联网

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

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

问题是,当我从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中运行.
并且不要等待回应.

谢谢

最佳答案:

您应该尝试使用exec而不是shell_exec,并将所有输出重定向到/ dev / null.就像是:

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

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

编辑:并确保您验证$domain_name.没有验证和

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

你有麻烦了…

标签:linux,php,plesk
来源: https://codeday.me/bug/20190515/1108764.html