linux – 检查PID是否正在运行的正确方法是什么?

前端之家收集整理的这篇文章主要介绍了linux – 检查PID是否正在运行的正确方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个.pid文件,我需要检查进程是否正在运行.到目前为止,我找到了两个选择
kill -0 `cat something.pid`

如果pid没有运行,会打印出错误.我知道这可以重定向到/ dev / null,但它让我觉得这不是最好的解决方案.

第二种解决方案是使用ps,然而它也会在STDOUT上打印

ps -ef `cat something.pid`

输出重定向到/ dev / null并使用返回的状态代码是正常的,还是表明我做错了什么,我需要一个不同的命令?

解决方法

对于大多数枚举/ proc / {pid}的Linux发行版来说,这是获取有关正在运行的进程的信息的好方法,通常是像“ps”这样的用户空间命令如何与内核通信.所以例如你可以做;
[ -d "/proc/${kpid}" ] && echo "process exists" || echo "process not exists"

编辑:您应该检查kpid是否已设置,但这更有用,因为它将为未设置的${kpid}返回“not exists”

[ -n "${kpid}" -a -d "/proc/${kpid}" ] && echo "process exists" || echo "process not exists"
原文链接:https://www.f2er.com/linux/401149.html

猜你在找的Linux相关文章