[英]Run batch file as a Windows service
為了運行一個應用程序,必須啟動一個批處理文件(執行啟動 Jetty、顯示實時日志等操作)。 僅當此批處理文件正在運行時,該應用程序才能工作。 因此,我被迫運行此批處理文件,而不是從 Windows 服務器注銷。
這個批處理文件可以作為服務運行嗎? 我正在嘗試來自類似問題的建議之一。
NSSM是完全免費且超級簡單的,以管理員身份運行命令提示符/終端:
nssm install "YourCoolServiceNameLabel"
然后會出現一個對話框,您可以選擇要運行的文件在哪里。
卸載
nssm remove "YourCoolServiceNameLabel"
為什么不簡單地將其設置為計划在啟動時運行的計划任務?
有一個內置的 windows cmd 可以做到這一點: sc create 。 不像nssm那么花哨,但您不必下載額外的軟件。
sc create "ServiceName" start= demand displayname= "DisplayName" binpath= [path to .bat file]
筆記
=
之后需要空格在 Windows 2019 Server 上,您可以使用以下命令運行 Minecraft java 服務器:
sc create minecraft-server DisplayName= "minecraft-server" binpath= "cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk" type= own start= auto
.lnk 文件是批處理文件的標准 Windows 快捷方式。
--- .bat 文件開始 ---
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
--- .bat 文件結束 ---
這一切都是因為:
服務不知道如何在文件夾中啟動,
cmd.exe 不知道如何在文件夾中啟動
啟動服務會產生“及時”錯誤,但日志文件顯示服務器正在運行。
如果你需要關閉服務器,進入任務管理器,在后台進程中找到服務器java並結束它,或者在游戲中使用/stop命令終止服務器,或者對於其他程序/服務器,使用方法與服務器相關。
無需額外的軟件。 使用任務調度器 -> 創建任務 -> 隱藏。 隱藏的復選框位於左下角。 將任務設置為在登錄時觸發(或您喜歡的任何條件),然后在操作選項卡中選擇任務。 隱藏運行可確保任務像服務一樣在后台靜默運行。
請注意,您還必須將程序設置為“無論用戶是否登錄”都運行,否則程序仍將在前台運行。
正如 Doug Currie 所說,使用 RunAsService。
根據我過去的經驗,您必須記住,您生成的服務將
不確定最后一個是否仍然適用……這是我前段時間從事的一個項目中的一個大噩夢。
雖然它不是免費的(但 39 美元),但FireDaemon對我來說效果很好,我不得不推薦它。 它將運行您的批處理文件,但具有許多額外且非常有用的功能,例如調度、服務監控、基於 GUI 或 XML 的服務安裝、依賴項、環境變量和日志管理。
我開始使用 FireDaemon 來啟動 JBoss 應用程序服務器 ( run.bat ),但不久之后我意識到 FireDaemon 配置能力的豐富性使我能夠放棄批處理文件並在 FireDaemon 服務定義中重新創建其命令的意圖。
還有一個名為 Trinity 的 SUPER FireDaemon,如果您有大量 Windows 服務器來管理此服務(或從技術上講,任何服務),您可能想要查看它。
由於 NSSM 不再維護,您可以考慮使用WinSW 。 它有可以使用或不使用 .Net 的二進制文件。
基本上,您創建一個 XML 文件,然后安裝它。 這是一個最小 XML 的示例:
<service>
<!-- ID of the service. It should be unique across the Windows system-->
<id>myapp</id>
<!-- Path to the executable, which should be started -->
<!-- CAUTION: Don't put arguments here. Use <arguments> instead. -->
<executable>%BASE%\myExecutable.exe</executable>
</service>
然后你可以安裝並啟動它:
winsw install myapp.xml
winsw start myapp.xml
安裝 NSSM 並將 .bat 文件作為 Windows 服務運行。 按預期工作
AlwaysUp可以輕松地將批處理文件作為服務運行。 它類似於FireDaemon(如上所述)並且不是免費的,但您可能會發現豐富的功能集在專業環境中是一種資產。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.