现场记录:Nginx重启失败,端口已被使用的可能原因及解决方法

1. 问题

某用户在使用系统时上传了错误文件,并且未意识到该问题,直到流程审批结束,此时已无法修改;运维人员分析了相关接口,将处理好的文件上传到Nginx静态目录下,kill掉进程后重启Nginx,出现了端口占用的提示。

分析了原因后发现,这是由于未完整杀死Nginx进程导致的。Nginx服务是由一个主进程(Master process)和工作进程(Worker process)组成。在运维人员将工作进程终结后,重启Nginx成功。

2. 方法
# 查看进程信息
ps -ef | grep nginx

# 终止Nginx相关进程
kill -9 pid_master pid_worker...

# 重启Nginx,根据系统选择相应的命令
./nginx
3. 小结

该问题主要反应了运维人员经验不足,在问题出现早期,通过搜索发现网络给出的普通方法是使用类似以下命令:

sudo fuser -k 80/tcp

但也有网友反应该此命令无效、导致数据丢失;生产数据是宝贵的,不允许出现疏忽;在自身不懂该命令时,不要随便使用命令,否则后果自负


版权声明:本文为qq_42110985原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。