如何检查给定PID的进程是否正在运行?

5

我有一个用C#编写的程序,使用Mono在Linux上运行。该程序将其PID写入文件中。现在我想在启动时检查是否存在具有此PID的进程。是否可以使用Mono实现?如果不行,如何使用标准的Linux函数/工具来完成这个任务?或者我必须检查/proc/PID/cmdline吗?

2个回答

2

标准的功能是运行 kill -0 PID 命令来查看进程是否正在运行,并检查退出码,0 表示该功能正在运行。


1
你还可以检查目录/proc/$PID是否存在(无需执行系统命令)。应该适用于Linux,不知道其他Unix版本是否适用。
还有一个方法:System.Diagnostics.Process.GetProcessById(int id),如果给定ID的进程未运行,则应抛出异常。不知道它在Mono上是否可用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接