将PHP脚本设置为Windows服务

Jam*_*mes 18 php windows windows-services

我需要将PHP脚本设置为Windows服务.

我需要它运行,无论登录哪个用户,并在系统启动 - 所以它听起来像一个Windows服务是最好的,但我很高兴听到其他建议.

(这个脚本连续运行,它不是"每5分钟运行一次"的事情,我可以使用预定任务管理器.)

http://support.microsoft.com/kb/251192介绍了如何使用sc.exe程序安装您的服务.

但是根据我的阅读,我需要在PHP脚本周围有一个包装器来接受来自Windows服务管理器的特殊命令.有人能帮忙吗?

rod*_*ehm 13

也许资源工具包工具(特别是srvany.exe)可以在这里帮助你.MSDN:如何创建用户定义的服务,可能这个2008 Server的提示应该可以帮助您将任何可执行文件设置为服务.(我已成功在Windows 2003 Server,Windows 2008 Server和Windows XP Professional [其他资源工具包]上使用此功能)

你创建了一个bat,包含php your-script.php,用srvany.exe包装,瞧,一旦机器加载服务,脚本就会启动.

srvany.exe应该处理那些你期望守护进程执行的启动/停止/重启调用.它会在启动时加载你的可执行文件,在停止时终止进程,在重启时执行这两个操作.所以你不必担心这部分.您可能想要检查register_shutdown_function()是否可以帮助确定服务进程何时被终止.

您甚至可以定义与其他服务(例如某些数据库或某些服务)的依赖关系.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\THENAMEOFYOURSERVICE]
"DependOnService"="DEPENDONTHIS"
Run Code Online (Sandbox Code Playgroud)

替换THENAMEOFYOURSERVICE为您提供服务DEPENDONTHIS的名称以及要依赖的服务名称(例如"Postgres9.0"或其他内容).将该文件保存到dependency.reg并加载它regedit /s dependency.reg.(或者在资源管理器中双击它...)