2016-09-08 29 views
1

我在Debian上使用.NET核心。Debian上的.NET核心服務及其狀態列表

試圖獲得所有服務及其狀態的列表。 (相當於service --status-all

我試過System.ServiceProcess.ServiceController.GetServices(),但它似乎只是Win32。

在.net COREFX庫中有System.Diagnostics.Process.GetProcesses(),它給我列出了所有進程(包括像cron這樣的服務進程)。

如何?

  • 區分哪些進程作爲服務運行。
  • 獲取服務及其狀態列表。

回答

2

在.NET Core中沒有這樣的工具。 Linux/Unix/BSD特定行爲(如服務管理)已轉移到後續版本(如果有的話)。

在傳統的Unix/Linux中,無法確定進程是否爲服務。每個服務使用不同的方式(用戶,進程組,背景,父pid,...)。此外,服務狀態無法確定。這種情況對於systemd來說更加複雜,它可以在某些端口激活時進行即時服務激活。但是,不要指望像Windows服務那樣標準化。

要弄清楚,如何確定哪個進程是服務,最終需要查閱Debian文檔,並且可能會調用命令行實用程序而不是API方法。