Nginx守护进程停止失败

Hub*_* OG 14 ubuntu daemon nginx init.d

我有安装了nginx 1.0.11的Ubuntu 11.04 i386服务器.另外,我正在使用这个init.d脚本,这是我在几个不同的地方找到的唯一脚本.它很好地启动服务器,然而,在停止/重置它说

* Stopping Nginx Server...      [fail]
Run Code Online (Sandbox Code Playgroud)

当然,守护程序不会停止,重新启动时不会重新加载配置.

我该怎么修呢?

pra*_*mar 28

它可能无法杀死这个过程.

打开位于/etc/??.d/nginx中的nginx脚本,找到nginx.pid的位置.它会像"/var/run/nginx.pid".

如果pid文件不存在,请打开nginx.conf并查找pid设置.如果它不匹配 - 将conf值设置为脚本认为它应该是的位置,例如

# pid of nginx process
pid /var/run/nginx.pid;
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,在nginx.conf中是`/ run/nginx.pid`我用`/ var/run/nginx.pid替换了它并且它有效.谢谢! (2认同)

Rom*_*man 13

sudo service nginx restart 会给你这样的东西:

Stopping nginx:                                            [FAILED]
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
Run Code Online (Sandbox Code Playgroud)

然后通过他们的端口手动终止进程:

sudo fuser -k 80/tcp (或使用您正在使用的任何端口)

或者,按其ID杀死进程:

ps -ef |grep nginx
kill <pid>
Run Code Online (Sandbox Code Playgroud)