当我们接手一个新系统后,经常会需要查看里面有哪些服务,服务的文件路径是什么。那么,Centos下有没有这样的命令,能够直接查出某个服务的进程在哪个目录下?
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll命令即可查看。下面我们以Mysql服务为例,来演示如何查看它的文件路径。
从上图中我们可以看到,mysqld的PID进程编号为2046。我们输入ll指令查看proc下的进程数据。
ll /proc/2046
查询结果如下。
上图中,我们可以看到查询结果,其中部分文件定义如下:
cwd符号链接的是进程运行目录; exe符号连接就是执行程序的绝对路径; cmdline就是程序运行时输入的命令行命令; environ记录了进程运行时的环境变量; fd目录下是进程打开或使用的文件的符号连接
我们尝试使用cat指令获取cmdline数据,看看执行mysqld的指令是什么样的。
因为mysqld启动方式我们其实知道,只是为了验证结果。现在我们来验证下是否和实际一致。
从上图中可以看到,和实际启动指令基本一致。