【发布时间】:2010-04-30 14:36:39
【问题描述】:
我有两个相关的问题。
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 需要的会话变量可用?
谢谢大家
【问题讨论】:
-
不确定但猜测:如果它等待结束,你能不能在你的函数结束时
exit($return)?或将变量存储在数据库中,一旦需要它们就检查索引以查看特定条目是否存在。 -
我也不确定,但我认为这是因为 'exec' 等待进程结束,但进程实际上杀死了 PHP,所以整个事情都卡住了!想法:将“stop.bat”作为后台进程运行?
-
Davide - 这是个好主意,也许我可以在执行 Apache 的停止/启动之前添加两秒钟的暂停。
-
Abs,我不知道在 Windows 上运行后台进程的方法,但我找到了这个链接 somacon.com/p395.php 希望对您有所帮助。
-
Davide - 我正在使用您的解决方案。您认为您可以概述它然后添加该链接,以便我可以选择正确答案,以便其他人可以受益。谢谢。
标签: php apache batch-file wampserver