共计 1076 个字符,预计需要花费 3 分钟才能阅读完成。
很多時候自己寫的一些小工具,希望能透過系統服務來管理並執行,這時候 winsw 就能派上用場,這裡說明下怎麼配置。
winsw(Windows Service Wrapper)一款開源項目,可以快速將可執行程式註冊成系統服務
下載
先到該 位置 下載程式,根據系統安裝的 .net framwork 選擇 .Net2 或 .Net4
Win7 預設只有安裝到 3.5 如果要使用 4 以上版本得進行更新,詳細可以自己到控制台查閱,Win10 就直接選擇 .Net4 吧
配置
這裡以註冊 frp 為系統服務為例子,新增一個 xml 檔案,例如:winsw.xml 內容如下
<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 即可
// 註冊服務
winsw.exe install
// 卸載服務
winsw.exe uninstall
// 啓動服務
winsw.exe start
// 停止服務
winsw.exe stop
// 重啓服務
winsw.exe restart
// 查看狀態
winsw.exe status
權限錯誤
如果不是用管理員權限會出現下述錯誤,AccessDenied
正文完