1

我有两个相关的问题。

1)我有一个包含以下内容的批处理文件:

net stop wampapache
net start wampapache

它试图停止并启动我的 wamp 服务器。当我双击stop.bat上面的文件时,它可以成功运行。当我尝试从我的 PHP 脚本运行它时,它会停止服务器但没有完全启动它,我猜这是因为 Apache 正在等待那个 PHP 进程退出?

function php_kill(){

    exec('stop.bat', $output = array(), $return);

    return $return;

}

2)有没有办法重新启动我的网络服务器(apache),同时保持 PHP 需要的会话变​​量可用?

谢谢大家

4

2 回答 2

4

PHP 进程正在杀死一个进程,而该进程又会杀死 PHP 进程。这就像回到过去,在你生下你之前谋杀你的父母。我不明白它是如何工作的。

人们不得不问为什么这个功能是必要的。如果您必须这样做,您应该考虑从脚本安排服务重新启动。我不知道这是否可以通过 PHP 和 Windows 实现。

于 2010-04-30T14:44:46.467 回答
1

问题与等待进程结束的事实有关exec,但该进程实际上杀死了 PHP,所以整个事情都卡住了。

stop.bat作为后台进程运行应该可以修复它。(这里如何在 Windows 上运行后台进程

于 2010-04-30T16:09:02.847 回答