2013-07-30 50 views
0

我有一个存储在.pid文件中的进程ID。pgrep与PID文件完全匹配

我想要pgrep命令找出该进程是否正在运行。我尝试使用flags pgrep -xF file.pid,但我仍然得到一个正则表达式匹配(这是我不想要的)。

有什么方法可以获得完全匹配吗?

谢谢。

回答

1

你做错了。使用kill -0

+0

'kill -0 $(cat file.pid)'会为我提供适当的退出代码,以确定进程是否正在运行? – n00b

+1

写这个评论应该比实际检查它少花费你的精力:)。如果退出代码是'0',并且没有任何消息像'kill:kill 1234失败:没有这样的进程' - 进程正在工作。 –

3

您没有指定您所在的操作系统,但在Linux上,kill -0的替代方法是检查是否存在名为/proc/<pid>的目录。这将适用于台式机/笔记本电脑发行版(至少是我曾经使用的所有发行版),但可能不适用于内核中不包含对/proc文件系统的支持的某些嵌入式平台。