Windows 服務設定工具 WinSW 使用教程

寒爵發表於2024-09-03

在 Windows 系統中,有時我們需要將 jar、exe 等檔案作為 Windows 服務執行。本文將介紹如何使用 WinSW 工具來實現這一目的。

一、工具介紹

WinSW 是一個強大的工具,可以將各種程式檔案設定為 Windows 服務。如果使用 sc.exe、nssm 等工具時,程式檔案不符合 Windows 服務要求導致服務無法啟動,那麼 WinSW 可能是你的最佳選擇。

二、工具獲取

WinSW 可從 https://github.com/winsw/winsw/releases 下載。下載後可以根據需要將其命名為“WinSW.exe”(不改名也可,但前後配置需保持一致)。

三、相關檔案說明

1. install.bat 檔案

此檔案用於安裝後臺服務。執行時會顯示提示資訊“請按任意鍵開始安裝後臺服務...”,按下任意鍵後,程式會切換到當前目錄,執行WinSW.exe install命令進行服務安裝,然後啟動指定的服務,最後提示“請按任意鍵退出...”。需要注意的是,此檔案需以管理員身份執行。

@echo on
:color 2f
chcp 65001
mode con: cols=80 lines=25
@echo 請按任意鍵開始安裝後臺服務...&pause>nul

cd /d %~dp0
WinSW.exe install
net start helloword

@echo 請按任意鍵退出...&pause>nul

2. uninstall.bat 檔案

用於解除安裝後臺服務。執行時會提示“請按任意鍵開始解除安裝後臺服務...”,按下任意鍵後,先停止指定的服務,再執行WinSW.exe uninstall命令進行服務解除安裝,最後提示“請按任意鍵退出...”。

@echo on
:color 2f
chcp 65001
mode con: cols=80 lines=25
@echo 請按任意鍵開始解除安裝後臺服務...&pause>nul

cd /d %~dp0
net stop helloword
WinSW.exe uninstall

@echo 請按任意鍵退出...&pause>nul

3. WinSW.xml 檔案

這是 WinSW 的配置檔案,採用 XML 格式,遵循 MIT 許可證。配置檔案中包含了服務的各種配置資訊,如服務 ID、顯示名稱、描述、可執行檔案路徑及引數、啟動模式和日誌路徑等。

例如:

<service>
  <id>helloword</id>
  <name>helloword</name>
  <description>helloword</description>
  <executable>%BASE%\helloword.exe</executable>
  <arguments>server "%BASE%\data"</arguments>
  <startmode>Automatic</startmode>
  <logpath>%BASE%\logs</logpath>
  <log mode="append">rotate</log>
</service>

其中,<id>定義服務唯一 ID;<name><description>分別設定服務顯示名稱和描述;<executable>指定要執行的可執行檔案路徑;<arguments>為可執行檔案傳遞引數;<startmode>設定服務啟動模式為自動;<logpath>定義日誌儲存路徑;<log mode="append">rotate</log>設定日誌記錄模式為rotate(基於大小)。

四、部署步驟

  1. 將需要設定為服務的 jar 或 exe 檔案放到當前目錄,並根據實際情況改名為“xxx.jar”或“xxx.exe”。在實際專案配置中,注意替換相關內容中的“helloword”。
  2. 雙擊install.bat檔案進行服務安裝。在執行過程中,會出現提示“按任意鍵繼續...”,按下任意鍵繼續操作,最終會提示安裝成功。
  3. 若服務已安裝且需要更新 jar 或 exe 檔案,可先雙擊uninstall.bat進行服務解除安裝,然後重複步驟 1 和 2。

透過以上步驟,你就可以使用 WinSW 工具將你的程式檔案輕鬆設定為 Windows 服務,方便快捷地進行管理和執行。

相關文章