2016-01-21 120 views
0

我的Windows服務(C#)有一個巨大的問題。我們在幾臺服務器上進行了系統更改(從Windows 2012R2到Ubuntu),並且爲所有這些服務器編寫了一個監視工具,作爲在Windows服務器上運行的Windows服務。在這個服務中,我檢查了一些在服務器上運行正常的東西。我必須檢查的一件事是如果一些特殊的Windows服務(例如iis)在state = running中。通過Windows服務在Windows服務器上檢查服務狀態在Ubuntu服務器上

所以 - 是否有任何可能從我的監控服務以編程方式檢查Ubuntu服務?我可以在Ubuntu shell上設置命令嗎?或者啓動一個bat文件?

ServiceController sc = new ServiceController("servicename", "ubuntu-IP")) 

使用ServiceController不起作用我猜是因爲Windows!= Ubuntu ?!

它應該是一個「簡單」的方式來做到這一點 - 所以如果它太華麗我不會這樣做。

任何信息將不勝感激。

回答

0

編輯:完全重寫,我誤解了這個問題。

Linux不像Windows那樣使用服務,首先沒有基礎設施來遠程檢查和管理Windows域中的服務。

有兩個選項有:

1 - 連接通過SSH與管理員權限,併發出「服務(服務名)的狀態」的賬戶,如果該服務正在運行或不導向這個屈服。要通過SSH進行連接,服務器必須配置SSH服務器並使用一些用於SSH連接的C#庫(例如:https://sshnet.codeplex.com/

2-創建C#服務並在您的服務器上使用Mono,可以像「ps」一樣在本地執行命令或使用Process.GetProcesses(),那麼您可以按照您最喜歡的方式(例如TCP或UDP)與您的Windows進程交流此進程。

+0

no mono!我認爲單聲道是Linux/Ubuntu服務的C#工具?我的監控服務正在Windows服務器上運行。 –

+0

呃,然後我誤解了這個問題,對不起! – Gusman