0

我使用 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 提供了这个链接

PHP中的异步shell exec

我用 :

$spamassassin = "service spamassassin restart &> /dev/null &";
$spamassmilter = "service spamass-milter restart &> /dev/null &";

exec($spamassassin);
exec($spamassmilter);
4

1 回答 1

0

尝试使用 nohup。

http://en.wikipedia.org/wiki/Nohup

<?php
// Note the backticks!
`nohup service spamassassin restart &`
?>

此外,请确保运行 apache 的用户有足够的权限来重新启动此服务。

于 2013-06-24T15:13:53.880 回答