Debian 上的服务列表及其状态 .NET Core

List of services and their status .NET Core on Debian

我在 Debian 上使用 .NET 核心。

正在尝试获取所有服务及其状态的列表。 (相当于service --status-all

我试过System.ServiceProcess.ServiceController.GetServices(),但似乎只有 Win32。

.Net COREFX 库中有 System.Diagnostics.Process.GetProcesses(),它为我提供了所有进程的列表(包括 cron 等服务进程)。

怎么办?

.NET Core 中没有这样的工具。 Linux/Unix/BSD 特定行为(如服务管理)已转移到更高版本(如果有的话)。

在经典 Unix/Linux 中,无法确定进程是否为服务。每个服务使用不同的方式(用户、进程组、后台、父 pid,...)。也无法确定服务状态。这种情况对于 systemd 来说更加复杂,它可以在某些端口被激活时进行即时服务激活。但是,不要指望像 Windows 服务那样标准化的东西。

要弄清楚如何确定哪个进程是服务,您最终需要查阅 Debian 文档,并且可以调用命令行实用程序而不是 API 方法。