Nginx守护进程停止失败
我已经安装了Ubuntu 11.04 i386服务器并安装了nginx 1.0.11。另外,我正在使用this init.d script,这是我在几个不同的地方发现的唯一一个。它很好地启动服务器,但是,在停/复它说Nginx守护进程停止失败
* Stopping Nginx Server... [fail]
当然,守护进程没有停止,并且在重新启动时的配置不再被重新装入。
我该如何修复?
它很可能无法杀死进程。
打开位于/etc/??.d/nginx中的nginx脚本,并找到nginx.pid被认为是的位置。它会像“/var/run/nginx.pid”。
如果pid文件不存在,请打开nginx.conf并查找pid设置。如果它不匹配 - 将conf值设置为脚本认为应该在的位置,例如, (任何端口,你正在使用或使用)
sudo fuser -k 80/tcp
或者:
# pid of nginx process
pid /var/run/nginx.pid;
这里是与许多基于Debian的发行版,包括Ubuntu 11.04的作品Nginx上的init脚本,我修改(基于过时的offical init script):
https://github.com/hulihanapplications/nginx-init-debian
这工作得很好,在我的Ubuntu服务器。希望这可以帮助。
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()
然后通过他们的口手工杀掉该进程,通过他们的ID杀死进程:
ps -ef |grep nginx
kill <pid>
我曾遇到过类似的问题。
通常我使用apache/apache2。
以下可以帮助你:
sudo nginx -s stop | ps -ef | grep nginx | awk {'print $2'} | xargs sudo kill -9 | sudo service apache2 start
对于文档请参考本Github Gist
它为我工作。感谢分享。 – 2016-05-11 04:23:35
试试这个命令:
sudo fuser -k 80/tcp
对我来说,这是'/运行/ nginx.pid'在nginx.conf中,我用'/ var/run/nginx.pid'取代了它,并且它工作正常。谢谢!我的问题中的 – 2016-02-25 14:06:29
是该路径的引号 – 2016-05-04 11:38:53
谢谢 - 我看到两个dirs中的pid文件,但将init和nginx.conf更改为指向'var'dir,而是解决了与停止/重新启动脚本相同的问题。 – Scott 2018-03-06 22:08:39