Shell命令获取服务的进程ID

背景

最近在学习使用Shell脚本做一些有意思的东西,通过写在Shell脚本中的命令,可以快速的实现对服务器的某个操作。
在没有使用Shell脚本的时候,可能我杀死服务器中运行的某个后台服务程序,需要在终端中输入不止一个命令来实现该操作。但是使用Shell脚本就可以很快速的实现这个操作,我们所需要做的只不过是简单执行一下Shell脚本即可,这是因为Shell脚本中已经写入了实现操作所需的命令。


查看服务进程信息

查看服务的进程信息使用下面的命令:

ps -ef | grep 服务名称

例如查看服务器上的mongodb服务进程信息,使用上面的命令后显示如下:

在这里插入图片描述
可以看到出现了两个结果,我们一眼就能看到服务所在的进程信息是第一个所示结果。


过滤 grep 本身

上面的结果中有两个匹配的结果,所以我们需要过滤 grep 本身,从而直观的只显示服务进程信息一条结果。查看 grep 的帮助,如下图示:

在这里插入图片描述

grep 通过携带 -v 选项来过滤 grep 本身,(以mongodb服务为例)使用命令:

ps -ef|grep mongodb|grep -v grep

如下图示:

在这里插入图片描述

扫描二维码关注公众号,回复: 10652349 查看本文章

毫无意外,我们看到了正确的结果显示。


显示服务进程 ID

使用 awk 命令来实现,使用命令如下:

ps -ef|grep mongodb|grep -v grep|awk '{print $2}'

如下图示:

在这里插入图片描述

我们成功的打印了 mongodb 服务的进程 ID


Shell 脚本实现

看一下我脚本里面的内容,如图:

在这里插入图片描述

然后执行脚本,使用命令:

./test.sh

如图:

在这里插入图片描述

打印成功。


小结

这里只给同学们很简单的讲了下服务进程的获取,至于你拿到这个进程号或者是其他的信息,后续想做更多的操作,也都可以在脚本文件中实现,然后一键执行脚本就能很快速高效的完成该操作。

所以学以致用,同学们实践起来并掌握好,真正的运用到实际中去。


A little bit of progress every day!Come on!

发布了132 篇原创文章 · 获赞 217 · 访问量 65万+

猜你喜欢

转载自blog.csdn.net/csdnzouqi/article/details/99991586