syncthing注册为系统服务开机自启动

syncthing注册为系统服务实现开机自启动

    • 注册为系统服务

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

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

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

3、双击Installservice.bat后,可以将syncthing.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到syncthing.exe所在目录
copy %batHome%%batName%.exe %exeHome%\%batName%.exe /Y
 
 
 
rem  自动生成注册服务文件xml 
:: 自动生成与myInstall.exe对应的myInstall.xml
echo ^ > ./%batName%.xml
echo	 ^%serviceName%^  >> ./%batName%.xml
echo	 ^%serviceName%^ >> ./%batName%.xml 
echo	 ^%serviceName%^ >> ./%batName%.xml
echo	 ^%exeHome%\logs\^ >> ./%batName%.xml
echo	 ^roll^ >> ./%batName%.xml
echo	 ^%exeHome%\%exeName%^ >> ./%batName%.xml
echo	 ^%exeHome%\%exeName% -s stop^ >> ./%batName%.xml
echo ^ >> ./%batName%.xml
 
 
 
:: 注册exe为服务
%batName% install
if not errorlevel 1 goto :eof
endlocal
pause

myconf.conf的内容为【不可修改该文件名称】:

#需要注册服务使用到脚本的名称,如下myInstall.exe和myInstall.xml中的名称myInstall
batName=myInstall
#需要注册服务的名称,如需要注册syncthing服务
serviceName=syncthing
#exe名称
exeName=syncthing.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

注册为系统服务

  1. syncthing.exe注册为系统服务
  2. nginx.exe注册为系统服务 https://blog.csdn.net/XiaoXiao_RenHe/article/details/103983376

你可能感兴趣的:(问题及示例,Windows相关)