Debian

更新 nginx 後無法訪問 PID 文件

  • October 6, 2013

在我刪除了 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

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

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

至於如何預防此類問題?要麼通過包做事,要麼從原始碼編譯,但不能兩者兼而有之。或者請注意,這樣做時您需要格外小心,因為事情會破裂。

引用自:https://unix.stackexchange.com/questions/93839