我有一个存储在.pid文件中的进程ID。pgrep与PID文件完全匹配
我想要pgrep
命令找出该进程是否正在运行。我尝试使用flags pgrep -xF file.pid
,但我仍然得到一个正则表达式匹配(这是我不想要的)。
有什么方法可以获得完全匹配吗?
谢谢。
我有一个存储在.pid文件中的进程ID。pgrep与PID文件完全匹配
我想要pgrep
命令找出该进程是否正在运行。我尝试使用flags pgrep -xF file.pid
,但我仍然得到一个正则表达式匹配(这是我不想要的)。
有什么方法可以获得完全匹配吗?
谢谢。
你做错了。使用kill -0
。
您没有指定您所在的操作系统,但在Linux上,kill -0
的替代方法是检查是否存在名为/proc/<pid>
的目录。这将适用于台式机/笔记本电脑发行版(至少是我曾经使用的所有发行版),但可能不适用于内核中不包含对/proc
文件系统的支持的某些嵌入式平台。
'kill -0 $(cat file.pid)'会为我提供适当的退出代码,以确定进程是否正在运行? – n00b
写这个评论应该比实际检查它少花费你的精力:)。如果退出代码是'0',并且没有任何消息像'kill:kill 1234失败:没有这样的进程' - 进程正在工作。 –