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 方法。
我在 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 方法。