使用 winsw 將程式註冊為系統服務
很多時候自己寫的一些小工具,希望能透過系統服務來管理並執行,這時候 winsw 就能派上用場,這裡說明下怎麼配置。
winsw (Windows Service Wrapper)一款開源項目,可以快速將可執行程式註冊成系統服務
下載
先到該 位置 下載程式,根據系統安裝的 .net framwork 選擇 .Net2 或 .Net4
Win7 預設只有安裝到 3.5 如果要使用4以上版本得進行更新,詳細可以自己到控制台查閱,Win10就直接選擇 .Net4 吧
配置
這裡以註冊 frp 為系統服務為例子,新增一個 xml 檔案,例如:winsw.xml 內容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<service> <!-- 該服務的唯一標識 --> <id>frp</id> <!-- 該服務的名稱 --> <name>frp0.30.0</name> <!-- 該服務的描述 --> <description>用frp發佈本地電腦服務到外網</description> <!-- 要運行的程序路徑 --> <executable>frpc<executable> <!-- 攜帶的參數 --> <arguments>-c frpc.ini</arguments> <!-- 第一次啟動失敗 60秒重啟 --> <onfailure action="restart" delay="60 sec"/> <!-- 第二次啟動失敗 120秒後重啟 --> <onfailure action="restart" delay="120 sec"/> <!-- 日誌模式 --> <logmode>append</logmode> <!-- 指定日誌文件目錄(相對於executable配置的路徑) --> <logpath>logs</logpath> </service> |
所有的選項可以參考 allOptions.xml
註冊服務
因為我目前只有 FRP 需要註冊為系統服務,所以直接將下載回來的應用放到該目錄底下,如附圖
使用管理員打開命令視窗輸入 install 執行即可,如附圖
根據自己命名的應用程序修改 winsw 即可
1 2 3 4 5 6 7 8 9 10 11 12 |
//註冊服務 winsw.exe install //卸載服務 winsw.exe uninstall //啓動服務 winsw.exe start //停止服務 winsw.exe stop //重啓服務 winsw.exe restart //查看狀態 winsw.exe status |
權限錯誤
如果不是用管理員權限會出現下述錯誤,AccessDenied
相逢就是有緣,留下足跡吧!