EasyService是一個可以將常規(guī)程序注冊為系統(tǒng)服務(wù)的工具,能夠讓程序以Windows系統(tǒng)服務(wù)的方式,無窗口運行,體積小巧,可以用于各種Nodejs、Python小工具!
軟件介紹
如果你的 Windows 程序需要在開機后用戶登錄之前就開始運行、且在用戶注銷之后也不停止,那么你需要將程序注冊為一個系統(tǒng)服務(wù)。
然而,在 Windows 下編寫一個可注冊為系統(tǒng)服務(wù)的程序并不是一件簡單的事情。首先,程序必須是二進制的可執(zhí)行程序,這就排除了腳本語言和虛擬機語言;其次,程序必須按系統(tǒng)服務(wù)的格式編寫,編寫過程繁瑣,編寫示例可見:MS 官方文檔 。
EasyService 是一個可以將常規(guī)程序注冊為系統(tǒng)服務(wù)的工具。你可以按常規(guī)的方法編寫程序,然后用 EasyService 注冊為一個系統(tǒng)服務(wù),這樣你的程序就可以在開機后用戶登錄之前自動運行、且在用戶注銷之后也不會停止。
如果你需要在 Windows Server 下部署網(wǎng)站、Api 等服務(wù), EasyService 將是一個很有用的工具。
系統(tǒng)要求
EasyService 需要 .NetFramework 4.0 (大部分 Windows 系統(tǒng)都已自帶)。可嘗試運行 worker/sample-worker.exe ,如果正常運行,則表明系統(tǒng)中已安裝 .NetFramework 4.0 。
使用方法
(1) 編寫、測試你的程序,EasyService 對程序僅有以下兩點要求:
a. 程序應(yīng)持續(xù)運行
b. 當程序的標準輸入接收到 “exit” 后應(yīng)在 10 秒之內(nèi)退出
典型的程序見 worker/index.js (nodejs 版), worker/main.py (python 版) 或 src/SampleWorker.cs (C# 版)。
(2) 下載 源碼及程序,解壓。
(3) 打開 svc.conf 文件,修改配置:
# Windows 系統(tǒng)服務(wù)名稱、不能與系統(tǒng)中已有服務(wù)重名
ServiceName: An Easy Service
# 需要運行的可執(zhí)行程序及命令行參數(shù)
Worker: node index.js
# 程序運行的工作目錄
WorkingDir: worker
# 輸出目錄,程序運行過程的輸出將會寫到這個目錄下面
OutFileDir: outfiles
# 程序輸出的編碼,如果不確定,請設(shè)為空或 none
WorkerEncoding: utf8
(4) 在 svc.exe 所在的目錄下打開命令行窗口:
a. 運行 svc check 命令檢查配置是否合法
b. 運行 svc test-worker 命令測試 Worker 程序是否能正常運行
若測試無誤:
c. 運行 svc install 命令注冊并啟動系統(tǒng)服務(wù),此時你的程序就已經(jīng)開始運行了,即便用戶注銷也不會停止運行,且系統(tǒng)開機后、用戶登錄之前就會自動運行。在服務(wù)管理控制臺中可以查看已注冊的服務(wù)。
d. 運行 svc stop|start|restart|remove 停止、啟動、重啟或刪除本系統(tǒng)服務(wù)。