【问题标题】:List of services and their status .NET Core on DebianDebian 上的 .NET Core 服务列表及其状态
【发布时间】:2017-01-15 23:14:28
【问题描述】:
我在 Debian 上使用 .NET 核心。
尝试获取所有服务及其状态的列表。 (相当于service --status-all)
我试过System.ServiceProcess.ServiceController.GetServices(),但似乎只有Win32。
.Net COREFX 库中有 System.Diagnostics.Process.GetProcesses(),它为我提供了所有进程的列表(包括 cron 等服务进程)。
怎么做?
- 区分哪些进程作为服务运行。
- 仅获取服务列表及其状态。
【问题讨论】:
标签:
linux
debian
.net-core
【解决方案1】:
.NET Core 中没有这样的工具。 Linux/Unix/BSD 特定行为(如服务管理)已转移到更高版本(如果有的话)。
在经典的 Unix/Linux 中,无法确定进程是否为服务。每个服务使用不同的方式(用户、进程组、后台、父 pid,...)。也无法确定服务状态。这种情况对于 systemd 来说更加复杂,它可以在某些端口被激活时进行即时服务激活。但是,不要期望任何标准化的东西,如 Windows 服务。
要弄清楚如何确定哪个进程是服务,您最终需要查阅 Debian 文档,并且可能会调用命令行实用程序而不是 API 方法。