2011-01-10 181 views
5

我有一个用C#编写的程序,使用Mono在Linux上运行。该程序将其PID写入文件。现在我想检查一下启动时是否运行此PID。有没有使用Mono的方法?如果不是,我如何使用标准的Linux函数/工具来完成这个工作?或者我必须检查/ proc/PID/cmdline?如何检查给定PID的过程是否正在运行?

回答

2

标准功能是运行kill -0 PID以查看进程是否正在运行并检查退出代码,0函数是否正在运行。

1

您还可以检查/ proc/$ PID目录是否存在(不需要执行系统命令)。应该在Linux上工作,不知道是否在其他类型的Unix上。

还有:System.Diagnostics.Process.GetProcessById(int id) 如果没有运行给定id的进程,它应该会抛出异常。不知道它是否适用于单声道。