查看运行进程的启动目录

我们使用yum安装程序时,发行版都有默认的安装目录。即使不知道默认的安装目录,也可以使用一下命令(centos下)来查看程序安装时创建了哪些文件。

rpm -ql nginx    # 以nginx为例

但如果我们接手了一台编译安装的服务的服务器,且不知道安装位置,服务挂掉想重启时就头大了。更有甚时,一台服务上编译安装了N个版本的程序,即使找到了这些程序的安装目录,也找不知道启动的是哪一个(千万不要以为启动的一定是最新版本的哦

那么有没有办法查出来运行进程的启动目录呢,当然是有的。本文就以我遇到的在CentOS7下查看运行的nginx的启动目录为例,来进行演示。

背景知识:所有运行中的进程,都会在/proc目录创建一个以自己进程号命名的目录

今天我们接手了一台web服务器,只知道是使用nginx启动的,经排查(我用find查找的),发现服务器上有

1、yum安装的1.14版本的nginx

2、/data/目录有个1.10版本的nginx

3、/usr/local/目录下还有个1.12版本的nginx

以下几步即可找出实际启动的是哪个

# 查找出nginx的主进程id
[root@gaszf-web1-new nginx]# ps -ef | grep nginx
root      50564      1  0 2月01 ?       00:00:01 nginx: master process ./nginx
nobody   114944  50564  0 00:01 ?        00:02:23 nginx: worker process
nobody   114945  50564  0 00:01 ?        00:03:30 nginx: worker process
nobody   114946  50564  0 00:01 ?        00:02:43 nginx: worker process
nobody   114947  50564  0 00:01 ?        00:04:44 nginx: worker process
root     142904 140953  0 19:36 pts/0    00:00:00 grep --color=auto nginx
# 查看其运行目录下的cwd
[root@gaszf-web1-new nginx]# ls -l /proc/50564/cwd
lrwxrwxrwx 1 root root 0 4月  26 19:36 /proc/50564/cwd -> /usr/local/nginx/sbin

对,没错,就是这个cwd,cwd是一个符号链接,指向进程当前的工作目录。

所以咯,我们使用的是/usr/local/下的1.12版本的nginx,有了工作目录,就简单了,各种配置都可以找到了

猜你喜欢

转载自blog.csdn.net/CHEndorid/article/details/105775330