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