查看運行進程的啓動目錄

我們使用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,有了工作目錄,就簡單了,各種配置都可以找到了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章