Windows系統(tǒng)服務(wù)自動(dòng)注冊(cè)程序工具WinSW
概述
在現(xiàn)實(shí)生活中,使用Windows系統(tǒng)的電腦的時(shí)候,可能會(huì)遇到這么一種情況:想把一些應(yīng)用程序添加為開機(jī)啟動(dòng)項(xiàng)。對(duì)于有圖形界面的應(yīng)用程序,一般不存在問題。但是如果想運(yùn)行命令行應(yīng)用程序,就不是那么方便了。一種笨辦法就是寫個(gè)bat,放到啟動(dòng)文件夾里,就可以開機(jī)啟動(dòng)了。開機(jī)之后,你就會(huì)發(fā)現(xiàn),這樣會(huì)一直顯示著一個(gè)CMD窗口,而且這個(gè)窗口不能關(guān),關(guān)了程序就停了。
其實(shí)Windows系統(tǒng)自帶后臺(tái)程序管理的功能,也就是我們經(jīng)常用到的服務(wù)。但是Windows的服務(wù)只有程序的開發(fā)者在寫程序的時(shí)候引用到這個(gè)功能,才能利用服務(wù)來控制程序的啟動(dòng)和關(guān)閉。對(duì)于一般的命令行程序來說,沒辦法利用服務(wù)。
今天我們要介紹的WinSW,它就是一個(gè)可以將Windows上的任何一個(gè)程序注冊(cè)為服務(wù)的工具。同樣也可以進(jìn)行卸載該服務(wù)。
安裝
首先要下載winsw。它是一個(gè)單個(gè)的可執(zhí)行文件,我們到Github release這里就可以下載winsw了。一般來說當(dāng)然是下載最新的。winsw可以運(yùn)行在.NET2和.NET4兩個(gè)版本上,當(dāng)然如果使用Win10等比較新的系統(tǒng)。
下載地址:https://github.com/winsw/winsw/releases
這里我們下載v2.12.0版本,下載鏈接地址
https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe
配置文件
這里我們將WinSW.exe放到E:\service目錄下,然后在WinSW.exe同級(jí)的目錄下,新建winsw.xml文件,輸入以下內(nèi)容。
winsw.xml文件內(nèi)容
<?xml version="1.0" encoding="UTF-8" ?>
<service>
<id>TinywanFrpServer0.54.0</id>
<name>Tinywan Frp Server 0.54.0 </name>
<description>This service runs frp reverse proxy.</description>
<executable>E:\frp_0.54.0_windows_amd64\frpc.exe</executable>
<arguments>-c E:\frp_0.54.0_windows_amd64\frpc.toml</arguments>
<logmode>reset</logmode>
</service>
最終E:\service目錄下配置和可執(zhí)行文件
WinSW.exe winsw.xml
注冊(cè)服務(wù)
配置文件編寫完之后,將配置文件與WinSW.exe放在同一目錄中。注意對(duì)應(yīng)WinSW.exe的配置文件名稱應(yīng)該是WinSW.xml。此時(shí),WinSW.exe、WinSW.xml以及你的應(yīng)用程序應(yīng)該都是在同一目錄中。然后用管理員權(quán)限打開一個(gè)命令提示符窗口,cd進(jìn)入到應(yīng)用程序所在目錄,可以通過輸入下面的命令來進(jìn)行控制應(yīng)用程序?qū)?yīng)的服務(wù):
然后打開管理員權(quán)限命令提示符,使用下面的命令安裝。
$ ./WinSW.exe install
2024-08-29 14:56:43,604 INFO - Installing service 'Tinywan Frp Server 0.54.0 (TinywanFrpServer0.54.0)'...
2024-08-29 14:56:43,648 INFO - Service 'Tinywan Frp Server (frp)' was installed successfully.
啟動(dòng)服務(wù)
$ ./WinSW.exe start
2024-08-29 15:11:40,418 INFO - Starting service 'Tinywan Frp Server 0.54.0 (TinywanFrpServer0.54.0)'...
2024-08-29 15:11:40,976 INFO - Service 'Tinywan Frp Server 0.54.0 (TinywanFrpServer0.54.0)' started successfully.
安裝服務(wù)命令執(zhí)行后,如果返回值為0,就表示服務(wù)已經(jīng)安裝成功。此時(shí)在windows服務(wù)的窗口,就能看到你剛才安裝的服務(wù)了
如果服務(wù)啟動(dòng)有問題,可以通過錯(cuò)誤日志文件WinSW.wrapper.log查看詳情
2024-08-29 14:58:46,486 ERROR - Failed to start service.
System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'E:\frp_0.54.0_windows_amd64\frpc.exe' with working directory 'E:\service'. 系統(tǒng)找不到指定的文件。
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo )
at System.Diagnostics.Process.StartCore(ProcessStartInfo )
at System.Diagnostics.Process.Start()
at WinSW.Util.ProcessHelper.StartProcessAndCallbackForExit(Process processToStart, String executable, String arguments, Dictionary`2 envVars, String workingDirectory, Nullable`1 priority, ProcessCompletionCallback callback, LogHandler logHandler, Boolean hideWindow)
at WinSW.WrapperService.StartProcess(Process processToStart, String arguments, String executable, LogHandler logHandler)
at WinSW.WrapperService.DoStart()
at WinSW.WrapperService.OnStart(String[] args)
Nacos注冊(cè)為Windows服務(wù)
下載Nacos
二進(jìn)制包下載地址:https://nacos.io/download/nacos-server
nacos-service.xml配置文件
<service>
<!-- 唯一服務(wù)ID -->
<id>NacosServer</id>
<!-- 顯示服務(wù)的名稱 -->
<name>Nacos Server 2.4.2 </name>
<!-- 服務(wù)描述 -->
<description>This service runs Nacos Server </description>
<!-- 日志路徑 -->
<logpath>你的nacos路徑\nacos\bin\logs\</logpath>
<!-- 日志模式 -->
<logmode>roll</logmode>
<!-- 可執(zhí)行文件的命令 -->
<executable>E:\service\nacos\nacos\bin\startup.cmd</executable>
<!-- 停止可執(zhí)行文件的命令 -->
<stopexecutable>E:\service\nacos\nacos\bin\shutdown.cmd</stopexecutable>
</service>
安裝Nacos Service服務(wù)
nacos-service.exe install
2024-09-05 19:46:32,748 INFO - Installing service 'Nacos Server 2.4.2 (NacosServer)'...
2024-09-05 19:46:32,805 INFO - Service 'Nacos Server 2.4.2 (NacosServer)' was installed successfully.
開啟服務(wù)
nacos-service.exe start
2024-09-05 19:48:48,307 INFO - Starting service 'Nacos Server 2.4.2 (NacosServer)'...
2024-09-05 19:48:48,331 INFO - Service 'Nacos Server 2.4.2 (NacosServer)' has already started.
查看Nacos Service服務(wù)
圖片
常用命令
winsw install 安裝服務(wù)
winsw uninstall 卸載服務(wù)
winsw start 開啟服務(wù)
winsw stop 停止服務(wù)
winsw restart 重新啟動(dòng)服務(wù)
winsw status 檢查服務(wù)的當(dāng)前狀態(tài)