我无法在 Debian 上启动我的 nginx (1.6.2),service nginx start.
没有错误,只有FAIL
消息。
我使用检查了我的配置nginx -c /etc/nginx/nginx.conf -t
并且成功了。
我已经从源代码构建了 nginx,并且安装了 pagespeed 模块。
看来我在这里遇到了同样的错误:https://stackoverflow.com/questions/24961066/cant-start-nginx-no-errors-anywhere
但检查后发现,两个文件都在寻找/run/nginx.pid.
这个文件似乎是空的,这有问题吗?
ls -al /run/*.pid
给我吗 :
-rw-r--r-- 1 root root 0 nov. 26 09:32 /run/nginx.pid
当我使用时ps -A
,我有 2 个 nginx,它们有 2 个不同的 pid。这是问题吗?
还有一件奇怪的事情,当我在 Web 浏览器中访问我的 IP 时,我会看到“欢迎使用 Ningx”消息。但是,service nginx status
返回失败。
答案1
拥有多个 nginx 进程可能是正常的……也可能不是。如果您只有 2 个进程,那么您可能有一个主进程和一个工作进程,这就是 nginx 的工作方式。拥有多个主进程,除非这是您想要的,否则可能预示着麻烦。
如果您的 PID 文件为空,那肯定是个问题:管理服务会使用它来识别要检查哪个进程并向其发送信号。空的 PID 文件 = 服务将尝试向空文件发送信号...
使用
ps -ef|grep -E "(PID|nginx)"|grep -v grep
,尝试识别主进程(即 PPID 为 1 且在描述中称自己为“master”的进程)。然后向其发送 TERM、KILL 或 QUIT 信号。手动删除 PID 文件
检查你的服务文件(如果你使用 init,很可能是
/etc/init.d/nginx
)中的 PID 文件名,并将其与你提供的位置进行比较确保没有 PID 文件,没有 nginx 进程再运行,并正常使用您的服务再次启动/停止/重新加载/检查状态。
那就可以了。
现在,空的 PID 文件从何而来是一个有趣的问题,你可以问自己...你玩过它吗? nginx 的多个实例不适用于它,你应该在那里找到一些东西!