linux – 检查PID是否正在运行的正确方法是什么?
发布时间:2020-05-25 00:16:12 所属栏目:Linux 来源:互联网
导读:我有一个.pid文件,我需要检查进程是否正在运行.到目前为止,我找到了两个选择 kill -0 `cat something.pid` 如果pid没有运行,会打印出错误.我知道这可以重定向到/ dev / null,但它让我觉得这不是最好的解决方案. 第二种解决方案是使用ps,然而它也会在STDOUT上
|
我有一个.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" (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – 如何更改gitlab-ci runner构建路径
- 在基于linux的数据中心中检测时间漂移的策略是什么?
- c – Linux makefile中的未定义引用
- linux – 为什么rsync会自行分配?为什么一个这样的分叉过程
- linux – 通过网络转发串口并返回远程主机上的串口字符设备
- 安装Linux桌面快捷方式和图标
- Linux文件系统上卷标的用途是什么?
- Common Linux log files name and usage--reference
- linux – 在raspbian(arm hf)上安装amd_64或i386软件包
- c – 访问静态初始化的__thread变量时出现分段错误
