【问题标题】:How to check wether a process with a given PID is running?如何检查具有给定 PID 的进程是否正在运行?
【发布时间】:2011-06-06 13:08:24
【问题描述】:

我有一个用 C# 编写的程序,使用 Mono 在 Linux 上运行。程序将其 PID 写入文件。现在我想检查具有此 PID 的进程在启动时是否正在运行。有没有使用 Mono 的方法?如果没有,我怎样才能使用标准的 Linux 功能/工具来完成这项工作?还是我必须检查 /proc/PID/cmdline?

【问题讨论】:

    标签: .net linux process mono pid


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-09-24
        • 2010-10-08
        • 2014-03-06
        • 2012-02-27
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多