5

当我尝试使用 sudo /etc/init.d/nginx restart 重新启动 nginx 时,我收到了来自主题的消息。

我发现原因很可能是脚本不知道如何停止守护进程,因为启动时未创建 pid 文件(/var/run/nginx.pid)。

我在两台不同的服务器上安装了两个...一个是从源代码编译的,另一个是带有 phusion 乘客的。

我试过这个命令:

start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /usr/sbin/nginx -- -c /etc/nginx/nginx.conf

在两台机器上,在一台机器上创建 pid 文件,而在另一台机器上则没有 - 在那台机器上,路径有点不同(但我认为这不相关):

start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid --exec /opt/nginx/sbin/nginx -- -c /opt/nginx/conf/nginx.conf

该过程开始并且没有写入pid......

我在Debian...

有什么建议么?

4

3 回答 3

5

解决方法是在 nginx.conf 中取消注释这一行:

pid        /var/run/nginx.pid;

看起来不同的安装方式不同,但正确的做法是取消注释。

于 2013-04-13T01:08:31.713 回答
2

我可以通过运行以下 fuser 命令来解决此问题

$ sudo fuser -k 80/tcp

这会杀死正在使用端口 80 的任何进程。希望没有搞砸其他任何事情。

这归功于: https ://goo.gl/6oc0xD

于 2015-05-13T23:15:08.033 回答
0
$ sudo nginx -t 

要查看所有进程,有时您没有完全权限

于 2017-02-14T06:20:04.770 回答