我在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." &");
Run Code Online (Sandbox Code Playgroud)
但是php会等待回应.
不知怎的,我需要睡觉执行linux命令,所有这一切都必须在bg.中运行,并且不要等待响应.
谢谢
您应该尝试使用exec而不是shell_exec,并将所有输出重定向到/dev/null.就像是:
exec("(sleep 4 && ... --webspace-off ".$domain_name.") > /dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)
(注意()命令周围:你需要捕获两者sleep和你的包装器的输出流.)
编辑:并真正确保您验证$domain_name.没有验证和
$domain_name = "; rm -rf ...";
Run Code Online (Sandbox Code Playgroud)
你有麻烦了...
| 归档时间: |
|
| 查看次数: |
5047 次 |
| 最近记录: |