服务 nginx 停止失败,没有任何反馈

服务 nginx 停止失败,没有任何反馈

当我运行 时sudo service nginx stop,nginx 没有停止,屏幕上也没有任何消息打印,并且提示立即返回:

user:/etc/nginx$ sudo service nginx stop
user:/etc/nginx$

我认为通常会有一条消息,但它却不在那里。

以下是我的 ps 结果:

root     28527  0.0  0.2 130368  1484 ?        Ss   02:46   0:00 nginx: master process nginx -c /etc/nginx/nginx.conf
www-data 28528  0.0  0.7 131368  3776 ?        S    02:46   0:00 nginx: worker process

以下是 nginx 状态

sudo service nginx status
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2018-02-23 03:06:51 UTC; 55min ago
  Process: 28519 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=1/FAILURE)
  Process: 28633 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 28629 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 19943 (code=exited, status=0/SUCCESS)

当我使用 -t 检查时,我的 nginx 文件是有效的

答案1

有一个已知问题有时nginx无法使用service nginx stop或停止该进程systemctl stop nginx

在这些罕见的情况下(它偶尔会出现,但不是由于很难重现案例以解决问题,因此您必须采用“老式”的方法来执行此操作。

首先,您必须终止现有nginx进程。

sudo kill $(pidof nginx)

这将终止现有的 NGINX 进程,以便您不再运行任何进程。

从那里,您可以使用sudo service nginx start或类似命令重新启动进程。现在,您还应该能够在重新启动 nginx 进程后停止它们,就像sudo service nginx stop您通常使用的那样。

(我已经研究这个问题两年多了,从来没有重现过这些情况,这是我唯一一次遇到这个问题是我从 1.10.x 升级到 1.12.x 时遇到的一次,所以这是一个不可能重现的问题,因此几乎不可能真正找出如何防止将来再次发生此问题)

相关内容