windows中nginx.exe注册为系统服务

1、nginx.exe统计目录创建bin文件夹,放入写好的注册为服务脚本。

Installservice.bat、myconf.conf、myIstall.exe、UninstallService.bat

2、修改myconf.conf,进行配置,若为ngnix注册服务则无需调整,若要注册其他服务则需要配置下服务名及exe名称。

3、双击Installservice.bat后,可以将nginx.exe注册为系统服务。

Installservice.bat内容为:

@echo off



setlocal
:: 当前脚本所在目录
set batHome=%~dp0
cd %batHome%
cd ../
:: exe所在目录
set exeHome=%CD%



:: 从配置文件读取设置的脚本名称、服务名称、待注册服务的exe
for /f "eol=# tokens=1,2 delims==" %%i in (%batHome%myconf.conf) do (
	if /I "%%i"=="batName" set batName=%%j
	if /I "%%i"=="serviceName" set serviceName=%%j
	if /I "%%i"=="exeName" set exeName=%%j
)



:: 复制myInstall.exe到nginx.exe所在目录
copy %batHome%%batName%.exe %exeHome%\%batName%.exe /Y



rem  自动生成注册服务文件xml 
:: 自动生成与myInstall.exe对应的myInstall.xml
echo ^<service^> > ./%batName%.xml
echo	 ^<id^>%serviceName%^</id^>  >> ./%batName%.xml
echo	 ^<name^>%serviceName%^</name^> >> ./%batName%.xml 
echo	 ^<description^>%serviceName%^</description^> >> ./%batName%.xml
echo	 ^<logpath^>%exeHome%\logs\^</logpath^> >> ./%batName%.xml
echo	 ^<logmode^>roll^</logmode^> >> ./%batName%.xml
echo	 ^<executable^>%exeHome%\%exeName%^</executable^> >> ./%batName%.xml
echo	 ^<stopexecutable^>%exeHome%\%exeName% -s stop^</stopexecutable^> >> ./%batName%.xml
echo ^</service^> >> ./%batName%.xml



:: 注册exe为服务
%batName% install
if not errorlevel 1 goto :eof
endlocal
pause

myconf.conf的内容为:

#需要注册服务使用到脚本的名称,如下myInstall.exe和myInstall.xml中的名称myInstall
batName=myInstall
#需要注册服务的名称,如需要注册nginx服务
serviceName=nginx
#exe名称
exeName=nginx.exe

UninstallService.bat内容为:

@echo off


setlocal
:: 当前脚本所在目录
set batHome=%~dp0


:: 从配置文件读取设置的服务名称
for /f "eol=# tokens=1,2 delims==" %%i in (%batHome%myconf.conf) do (
	if /I "%%i"=="serviceName" set serviceName=%%j
)


::删除系统服务exe
sc delete %serviceName%

endlocal
pause

myIstall.exe为注册服务辅助exe,实际是 使用Windows Service Wrapper工具来注册服务的,这里重命名为了 myInstall.exe

发布了98 篇原创文章 · 获赞 39 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/XiaoXiao_RenHe/article/details/103983376