无法阻止nginx服务

我花了一段时间才发现,但是最近的一些更新,我无法阻止任何我的Ubuntu 12.04或Ubuntu 14.04服务器上的Nginx。

我运行sudo service nginx stop ,我得到nginx start/running, process 16178

我再次尝试sudo service nginx stop ,我得到nginx start/running, process 16206

请注意进程号如何更改。

/var/log/syslog我可以看到原因:

Jun 11 11:57:51 kernel: [2318556.994508] init: nginx main process ended, respawning

每次运行sudo service nginx stop时,Nginx都会重生。 它永远不会完全停止。

我尝试更新Ubuntu,重启并在本地测试图像上重新安装我的服务器(我使用Puppet)。 没有任何区别。 我也试图寻找与此无关的错误。

有谁知道如何解决这个问题? 我希望能够运行sudo service nginx stop并因此sudo service nginx stop所有nginx进程。

看来你的nginx服务器是由一个暴发的进程处理的。

查看/ etc / init文件夹,检查是否没有处理nginx的文件。

 grep -r nginx /etc/init 

然后编辑此文件,并删除配置文件中的respawn选项。

我有同样的问题,当我想用​​certbot用临时网络服务器更新我的letsencrypt证书时:每次,我都停止了nginx

 service stop nginx 

几秒钟后它会自动重启,所以当提供我的域certbotcertificate时,端口443已经被重新生成的nginx使用了。

我真的急于解决这个问题,所以我开始了一个非常肮脏的解决方法,但它有效:

 while true; do service nginx stop; sleep 2; done 

现在我能够刷新我的证书并稍后了解如何以更正确的方式停止nginx;)

你可以使用sudo nginx -s quit来停止nginx进程

你可以在/etc/init/nginx看到