【发布时间】:2011-06-06 13:08:24
【问题描述】:
我有一个用 C# 编写的程序,使用 Mono 在 Linux 上运行。程序将其 PID 写入文件。现在我想检查具有此 PID 的进程在启动时是否正在运行。有没有使用 Mono 的方法?如果没有,我怎样才能使用标准的 Linux 功能/工具来完成这项工作?还是我必须检查 /proc/PID/cmdline?
【问题讨论】:
标签: .net linux process mono pid
我有一个用 C# 编写的程序,使用 Mono 在 Linux 上运行。程序将其 PID 写入文件。现在我想检查具有此 PID 的进程在启动时是否正在运行。有没有使用 Mono 的方法?如果没有,我怎样才能使用标准的 Linux 功能/工具来完成这项工作?还是我必须检查 /proc/PID/cmdline?
【问题讨论】:
标签: .net linux process mono pid
标准功能是运行kill -0 PID 以查看进程是否正在运行并检查退出代码,0 函数正在运行。
【讨论】:
您还可以检查目录 /proc/$PID 是否存在(无需执行系统命令)。应该可以在 Linux 上运行,不知道是否可以在其他版本的 Unix 上运行。
还有:System.Diagnostics.Process.GetProcessById(int id)
如果具有给定 id 的进程未运行,则应该抛出异常。不知道它是否适用于 Mono。
【讨论】: