2010-07-26 279 views
1

我已經編寫了一個在命令行上運行的工具。
我可以在我的機器上的命令行上測試它,它工作正常。
然後我遠程進入目標服務器機器並在那裏的命令行上運行它,它仍然有效。

但是 ...該工具需要保持運行(其監測工具)。
我不能讓我的遠程會話打開太久,因爲其他人需要使用它,當我關閉遠程會話時,該命令行工具結束。

我不知道如何去,也想避免需要寫一個windows服務,但基本上我需要這個功能。我需要幾乎將我的命令行工具與可以在目標機器上保持運行的Windows服務封裝,同時斷開連接。如何在遠程服務器上運行命令行程序

任何人都可以提供任何見解/戰略如何做到這一點?

編輯:
以下兩篇文章都很有幫助。

回答

5

如果是Windows Server 2003或更早,您可以使用SRVANY.EXE運行任何應用程序作爲服務。詳情請參閱here

如果它是Windows Server 2008,SrvAny不是官方支持的,但是您可以通過從Win2003資源工具包或更早版本中複製它,然後將其與托馬斯答案中的說明以某種方式結合使用。

但是,編寫一個正確的Windows服務真的很簡單,它是確保它與其他一切愉快並存的最佳方式。

只需在Visual Studio中創建一個Windows Service項目。在OnStart中,創建一個運行代碼的線程。在OnStop中,您使用標誌來停止服務。然後你可以在以後做得更好。

1

一種替代的解決方案是使用PsExec到遠程機器上啓動你的監測工具在分離的模式,即:

PsExec.exe \\remote_machine -d C:\...\monitoring_tool.exe 

PsExec.exe啓動monitoring_tool.exe在遠程計算機上,然後終止本身。它不會等待monitoring_tool.exe終止。

相關問題