nginx更新後無法存取PID文件

nginx更新後無法存取PID文件

在刪除了 Debian 標準套件提供的 0.7.x 版本後,我透過原始程式碼安裝了 nginx 1.4.1 版本。

可以啟動 nginx,service nginx start當我執行 netstat 時,我看到 nginx 正在保留連接埠 80。

netstat -apn | grep nginx輸出:

tcp      0    0 0.0.0.0:80            0.0.0.0:*             LISTEN    3115/nginx 

問題是,當我這樣做service nginx statusservice nginx stop收到此訊息時:

無法存取 nginx 的 PID 檔案...失敗!

我可以找誰來解決這個問題?我該如何防止這個問題?

編輯:解決方案

  1. remove nginx
  2. 然後去源頭./configure --pid-path=/var/run/nginx.pid
  3. make
  4. checkinstall make install

答案1

Debian 可能為其軟體包配置/修補了 nginx,以將 pid 檔案放在預設情況下不執行的特定位置。當您透過從原始程式碼編譯的內容替換它時,它與服務基礎架構的期望不符。

我會查看 debian 人員完成了哪些補丁和配置選項,並使用將 pid 檔案放在相同位置的選項重新編譯您的 1.4.x 版本。

至於如何預防此類問題的發生呢?要么透過套件做事,要么從原始碼編譯,但不能兩者兼而有之。或者請注意,這樣做時需要格外小心,因為事情可能會損壞。

相關內容