如何将PHP脚本设置为Windows服务?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我需要设置一个PHP脚本作为Windows服务。

我需要它运行,无论哪个用户登录,并在系统启动 - 这听起来像一个Windows服务是最好的。

(这个脚本持续运行,它不是“每5分钟运行一次”,我可以使用Scheduled Task Manager进行。)

提问于
用户回答回答于

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

你将创建一个包含php your-script.phpsrvany.exe和voila 的bat ,并在机器加载服务后启动该脚本。

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

你甚至可以定义对其他服务的依赖关系(比如某些数据库或其他服务)。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\THENAMEOFYOURSERVICE]
"DependOnService"="DEPENDONTHIS"

替换THENAMEOFYOURSERVICE为你提供服务DEPENDONTHIS的名称以及取决于服务的名称(例如“Postgres9.0”或其他)。将该文件保存dependency.reg并加载regedit /s dependency.reg。(或者在资源管理器中双击它...)

用户回答回答于

扫码关注云+社区