网络 – 为什么不停止nginx服务器杀死与之关联的进程?

当我在ubuntu 12.04上停止这样的nginx时,我收到以下错误:

$sudo service nginx stop
Stopping nginx: nginx.
$sudo service nginx start
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

我必须使用this来修复它.为什么不停止服务杀死nginx进程?那令人困惑!

最佳答案
默认情况下,start-stop-daemon将SIGTERM发送到nginx进程.它不保证停止过程.
修复:在文件/etc/init.d/nginx中更改“停止”字符串部分

start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \

start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile /var/run/$NAME.pid \

如果SIGTERM不停止进程,该修复发送SIGKILL(kill -9).

请确保,pid文件pid /var/run/nginx.pid的路径;在/etc/nginx/nginx.conf和/etc/init.d/nginx中的路径–pidfile /var/run/$NAME.pid是相同的.

转载注明原文:网络 – 为什么不停止nginx服务器杀死与之关联的进程? - 代码日志