如何監控應用程序是否在 Windows Server 2008 上執行?
我們主要是一家 Linux 商店,但我們有一台執行 Windows Server 2008 的列印伺服器,並使用名為 Print Helper 的應用程序來列印發票。我需要找到一種方法來檢查此應用程序是否正在執行,如果沒有則自動重新啟動它。
在 Linux 上,我可能會使用一個小的 shell 腳本和一個 cron 作業來完成此操作,但我不確定如何在 Windows Server 上完成此操作。我相當有信心我可以使用 Proc::Background 在 Perl 中做到這一點,但我不願意只為一個腳本安裝 Perl,雖然我確信它可以使用 PowerShell 之類的東西來完成,但這並不值得利用我的時間為一項小任務學習 PowerShell。Tasklist 似乎做了我想做的一些事情,它可以讓您知道某個特定程序是否正在執行,但我不確定如果應用程序崩潰,我該如何從那裡自動重新啟動應用程序。
任何幫助都感激不盡!
哇。我剛剛回答了一個不同的問題。
您應該做的是使用sc.exe或srvany.exe(我認為已被貶值)“守護”列印助手程序。然後,您可以利用內置服務“恢復”選項來處理故障事件(我相信包括執行腳本、發送 snmp 陷阱、發送電子郵件,當然還有重新啟動服務)。
如給定的:
sc create printhelper binpath= "c:\program files\Print Helper\phelper.exe" start= auto depend= Spooler/lanmanserver DisplayName= "Print Helper"
這將創建一個名為 的服務
printerhelper
,顯示名稱為Print Helper
,"c:\program files\Print Helper\phelper.exe"
自動執行,具有 Print Spooler 和 SMB/CIFS 伺服器服務的依賴項,以NT AUTHORITY\SYSTEM
內置使用者身份執行。