我在Debian上使用.NET核心。
尝试获取所有服务及其状态的列表。 (相当于service --status-all
)
我尝试了System.ServiceProcess.ServiceController.GetServices()
,但它似乎只是Win32。
.Net COREFX库中有System.Diagnostics.Process.GetProcesses()
,它为我提供了所有进程的列表(包括cron等服务进程)。
如何?
答案 0 :(得分:2)
.NET Core中没有这样的工具。 Linux / Unix / BSD特定行为(如服务管理)已转移到以后的版本(如果有的话)。
在传统的Unix / Linux中,无法确定进程是否为服务。每个服务使用不同的方式(用户,进程组,后台,父pid,......)。此外,无法确定服务状态。 systemd可以在某些端口被激活时进行即时服务激活,这种情况更加复杂。但是,不要指望像Windows服务那样标准化。
要弄清楚,如何确定哪个进程是服务,您需要最终查阅Debian文档,并可能调用命令行实用程序而不是API方法。