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 ^<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
#需要註冊服務的名稱,如需要註冊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
註冊爲系統服務
- syncthing.exe註冊爲系統服務
- nginx.exe註冊微系統服務 https://blog.csdn.net/XiaoXiao_RenHe/article/details/103983376