workman集成为windows的系统服务

windows环境下,workerman不具备进程守护能力,最简单的解决方案是将workerman封装成windows service来实现进程守护。

主要是每次打开很麻烦。。

封装工具:instsrv.exe, srvany.exe,由microsoft的Windows Server 2003 Resource Kit Tools包所提供。

下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17657

下载到的Windows Server 2003 Resource Kit Tools包是一个自解压文件rktools.exe,运行后从解压出来的文件中,找到instsrv.exe, srvany.exe这2个文件,然后将它们复制到workerman安装目录下,再在该目录下创建4个空白的txt文件,修改txt文件的扩展名为.bat:

  install.bat:用于将workerman程序封装成windows service

  uninstall.bat:用于删除 install.bat所安装的所有windows service

  startAll.bat:用于启动 install.bat所安装的所有windows service

  stopAll.bat:用于停止 install.bat所安装的所有windows service


选中install.bat-->右键-->编辑,添加以下内容:

注意:

1:set phpDir=D:\wamp64\bin\php\php7.0.10\(改为你的PHP安装目录)

2:set regDir=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\



--------以下为install.bat文件内容---------------------------------------------

REM: install.bat for workerman-chat-for-win

@echo off

set cxDir=%~dp0

set wraper=%cxDir%srvany.exe

set appDir=%cxDir%Applications\chat\

set regDir=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\

set phpDir=D:\wamp64\bin\php\php7.0.10\

set cxPHP=%phpDir%php.exe

REM ########install workman_register ########

set cxSrv=workman_register

set cxApp=%appDir%start_register.php

set cxReg=%regDir%%cxSrv%\Parameters\

instsrv %cxSrv% %wraper%

reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f

reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 

reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

REM ######## install workman_webServer ########

set cxSrv=workman_webServer

set cxApp=%appDir%start_web.php

set cxReg=%regDir%%cxSrv%\Parameters\

instsrv %cxSrv% %wraper%

reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f

reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 

reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

REM ######## install workman_gateway ########

set cxSrv=workman_gateway

set cxApp=%appDir%start_gateway.php

set cxReg=%regDir%%cxSrv%\Parameters\

instsrv %cxSrv% %wraper%

reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f

reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 

reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

REM ######## install workman_business ########

set cxSrv=workman_business

set cxApp=%appDir%start_businessworker.php

set cxReg=%regDir%%cxSrv%\Parameters\

instsrv %cxSrv% %wraper%

reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f

reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 

reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

选中uninstall.bat-->右键-->编辑,添加以下内容:

注意:

写完才发现,貌似reg delete语句不是必须的,需验证,不想折腾了。

--------以下为uninstall.bat文件内容---------------------------------------------

REM: install.bat for workerman-chat-for-win

@echo off

set regDir=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\

reg delete %regDir%workman_register\Parameters

instsrv.exe workman_register remove

reg delete %regDir%workman_webServer\Parameters

instsrv.exe workman_webServer remove

reg delete %regDir%workman_gateway\Parameters

instsrv.exe workman_gateway remove

reg delete %regDir%workman_business\Parameters

instsrv.exe workman_business remove

选中startAll.bat-->右键-->编辑,添加以下内容:

--------以下为uninstall.bat文件内容---------------------------------------------

@echo off

sc start workman_register

sc start workman_webServer

sc start workman_gateway

sc start workman_business

选中stopAll.bat-->右键-->编辑,添加以下内容:

--------以下为stopAll.bat文件内容---------------------------------------------

@echo off

sc stop workman_business

sc stop workman_gateway

sc stop workman_webServer

sc stop workman_register

选中install.bat-->右键-->以管理员身份运行(A);

选中startAll.bat-->右键-->以管理员身份运行(A);

此电脑-->右键-->管理-->服务和应用程序\服务,在右侧窗口可以看到刚才安装好的四个服务

你可能感兴趣的:(workman集成为windows的系统服务)