2011-01-10 183 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的進程,它應該會拋出異常。不知道它是否適用於單聲道。