无法停止nginx服务

hre*_*ef_ 5 server upstart nginx 12.04 14.04

我花了一段时间才发现,但在最近的一些更新中,我无法在我的任何 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.

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

我尝试更新 Ubuntu,重新启动并在本地测试映像上重新安装我的服务器(我使用 Puppet)。没有任何区别。我也尝试搜索与此相关的错误,但无济于事。

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

akl*_*mie 4

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

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

grep -r nginx /etc/init
Run Code Online (Sandbox Code Playgroud)

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


rub*_*o77 0

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

service stop nginx
Run Code Online (Sandbox Code Playgroud)

几秒钟后它会自动重新启动,因此当涉及到提供我的域 certbot 的证明时,端口 443 已被重新生成的 nginx 使用。

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

while true; do service nginx stop; sleep 2; done
Run Code Online (Sandbox Code Playgroud)

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