Q在 Linux 上,Nginx 运行时怎么安全停止服务?如果我想在不影响太多现有连接的情况下停掉 Nginx,应该用什么方式操作才更稳妥?
A使用平滑停止命令
可以执行 sudo nginx -s quit 来让 Nginx 平滑退出。这个方式会让 Nginx 先处理完当前正在进行的请求,再关闭进程,适合希望尽量减少业务中断的场景。
Q系统里 Nginx 卡住了,怎么强制结束进程?如果常规停止命令没有反应,或者 Nginx 无法正常退出,我该怎样处理?
A通过进程号强制终止
可以先用 ps -ef | grep nginx 查找 Nginx 进程,再使用 sudo kill -TERM 进程号 尝试结束。如果仍然无效,可以使用 sudo kill -KILL 进程号 强制终止,但这种方式可能会中断正在处理的请求。
Q我用的是 systemd 管理 Nginx,该怎么停止服务?在 CentOS、Ubuntu 这类使用 systemd 的 Linux 发行版中,停止 Nginx 的标准命令是什么?
A使用 systemctl 停止服务
可以执行 sudo systemctl stop nginx。这个命令会通过 systemd 停止 Nginx 服务,适合大多数使用服务管理器的 Linux 系统,也便于配合开机自启和状态查看一起管理。
Q停止 Nginx 之后,怎么确认它真的已经退出了?我执行了停止命令,但不确定服务有没有完全关闭,有什么检查方法?
A查看服务状态或进程
可以使用 sudo systemctl status nginx 查看服务状态,或运行 ps -ef | grep nginx 检查是否还有相关进程存在。如果状态显示为 inactive,且没有 Nginx 主进程,说明服务已经停止。