在Linux中,怎么根据一个服务名查找一个进程?又怎么看这个服务所在的目录呢?

top -c可以。寻找/proc的进程文件夹也可以。

但是有个超简单的命令,pwdx pid,就可以直接展示进程路径。

pid怎么查找出来的,在这篇文章【Linux简单实用小命令011】4种方法告诉你,怎么查看端口占用情况!中,已经告诉了你好几种方法,但是基本都是基于端口号的。

那不知道端口,怎么简单地用服务名查看一个进程呢?

就是ps -ef|grep 服务名这个命令了。毫不夸张地说,这也是运维、开发、测试等等使用Linux的同学在服务器上最常用的一个命令了。

ps的相关命令太多了,我们今天只说这个最简单的命令。

ps -ef|grep halo

找到启动命令中含有halo的服务。

实例:

[root@yaomm ~]# ps -ef|grep halo
root     17713 17669  0 22:16 pts/1    00:00:00 grep --color=auto halo
root     28086     1  0 Apr27 ?        00:29:00 java -jar halo.maven-1.3.4.jar --spring.profiles.active=prod --server.port=9999

查找到进程28086。

然后让我们来看看pwdx怎么用的。

实例:

[root@yaomm ~]# pwdx 28086
28086: /home/halo

找到服务对应进程28086,找到它的服务所在目录。

pwdx是不是跟pwd很像,不光名字像,功能也很像,后者是查找当前所在全路径,而前者是查找进程所在全路径。