1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - Linux系统 - 正文

君子好学,自强不息!

可能大家还对“linux怎么用pid查看进程是否存在 linux根据pid查看进程名”有些不明白,下面由1818ip小编来为大家解答一下,现在我们来一起看看吧!

本教程操作环境:linux7.3系统、Dell G3电脑。

linux怎么用pid查看进程是否存在

假设我们现在要监测某进程是否存活,每分钟检查一次,用上面的办法就要每分钟运行一次ps命令并且做一次grep正则查找。这点开销在服务器上似乎不算什么,然而如果我们要在同一节点上同时监测数十个、数百个这样的进程又如何呢?所以,我们有必要从性能的角度出发,发掘一些更好的办法。

对于daemon进程,通常都会有自己的pid或者lock文件,我们可以检查这些文件是否存在来判断进程是否存在。然而有些异常情况下,pid文件存在进程却并不存在。因此并不能依赖进程的pid文件来检测进程是否存活。

一种可靠的方法是使用”kill -0 pid”,kill -0不会向进程发送任何信号,但是会进行错误检查。如果进程存在,命令返回0,如果不存在返回1。

10.png

但是,这种方法对于普通用户来说只能用于检查自己的进程,因为向其它用户的进程发送信号会因为没有权限而出错,返回值也是1。

[sw@gentoo ~]$ kill 2993
-bash: kill: (2993) - Operation not permitted
[sw@gentoo ~]$ echo $?
1
[sw@gentoo ~]$

当然,如果你用特权用户执行kill命令的话,就没有权限问题啦。

另一方面,我们知道内核会通过/proc虚拟文件系统导出系统中正在运行的进程信息,每个进程都有一个/proc/目录。因此我们可以将检测进程是否存在转换为检测/proc/目录是否存在,这样就简单多了。

以上就是“linux怎么用pid查看进程是否存在 linux根据pid查看进程名”的详细内容,更多请关注1818ip网其它相关文章!

本文来源:1818IP

本文地址:https://www.1818ip.com/post/3859.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。