【发布时间】:2013-06-24 15:00:49
【问题描述】:
我使用 popen 和 ssh。
在一个脚本中,我需要使用以下命令重新启动 spamassassin 服务:
$spamassassin = "service spamassassin restart &";
$spamassmilter = "service spamass-milter restart &";
shell_exec($spamassassin);
shell_exec($spamassmilter);
我希望这个进程在后台重新启动,因为我的浏览器等待服务重新启动以停止加载网页。
我试试:
$spamassassin = "service spamassassin restart &";
和
$spamassassin = "service spamassassin restart > exit.txt";
和
$spamassassin = "nohup service spamassassin restart";
但是我的浏览器等待服务重启...
如何在不让浏览器等到所有服务都重新启动的情况下重新启动服务?
我使用 popen、ssh、exec
编辑:
感谢@immullatin 提供此链接,我终于解决了我的问题
Asynchronous shell exec in PHP
我使用:
$spamassassin = "service spamassassin restart &> /dev/null &";
$spamassmilter = "service spamass-milter restart &> /dev/null &";
exec($spamassassin);
exec($spamassmilter);
【问题讨论】:
-
SA 的服务重启需要以 root 身份而不是您的 Web 用户身份完成,并且您不需要 & 或任何“service spamassassin restart”
标签: php exec background-process popen spamassassin