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 版本。

至于如何预防此类问题的发生呢?要么通过包做事,要么从源代码编译,但不能两者兼而有之。或者请注意,这样做时您需要格外小心,因为事情可能会损坏。

相关内容