我们在centos 6上使用nginx,从这里使用init.d脚本: https : //gist.github.com/sairam/5892520/raw/b8195a71e944d46271c8a49f2717f70bcd04bf1a/etc-init.d-nginx
这一切“有用”
Nginx运行等
但是,在某些情况下,通过ssh使用这个init.d脚本之后,通过ssh和作为控制台的root脚本,这个脚本看起来只能工作。
例如
service nginx stop [OK]
但是nginx仍在运行….
service nginx restart [OK]
但服务运行相同的PID,并没有退出。
重新启动框似乎是正确获取服务停止和重新启动的唯一方法。
完整的步骤和问题如下所示。
我如何解决这个问题?
在这里,我以sysadmin身份login,然后运行命令:

在这里,我只是以root用户身份login。 同样的问题:

回答:“如何解决这个问题”的答案是使用ps命令:
ps -eaf | grep nginx
这表明,在发出停止或重新加载之后,一个或多个nginx工作进程永远停留在“进程正在closures”
因此,nginx永远不会退出,并且整个情况都会被解决,直到你杀死了pid或者发出了nginx -s stop(这基本上杀死了pid,但是因为你不需要进行pid查找而更容易)。
这似乎与上游检查模块或用于networking套接字有关。
更具体的问题发布在这里: nginx 1.7.9:反向代理Web套接字:挂起服务停止/服务重启,从不退出