【问题标题】:php restart process in the background spamassassinphp 在后台重启进程 spamassassin
【发布时间】: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);

【问题讨论】:

标签: php exec background-process popen spamassassin


【解决方案1】:

尝试使用 nohup。

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

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

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

【讨论】:

  • 不起作用。服务可以重启,但是耗时太长。
  • 重新启动垃圾邮件刺客确实需要一段时间,如果您想同时运行它,这不是一个即时的工作,然后考虑使用调度程序
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多