记一次node进程无法kill 问题

Posted fsckzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次node进程无法kill 问题相关的知识,希望对你有一定的参考价值。

起因

开发反馈测试环境某 node 进程使用 pm2 log 查看日志提示端口冲突,pm2 restart 重启进程问题依旧,但该服务可正常访问。

处理过程:

访问该服务 URL 业务正常,查看 nginx access.log ,状态码为 200,即后端无异常。
pm2 log xx,查看该服务并未刷新日志。
pm2 restart ,无用。
怀疑该进程已 hang,决定杀进程重启。
lsof -i:port
kill -9 pid
查看杀进程是否成功,再次使用 lsof -i:port ,发现进程还在!只是换了个pid。
重复 lsof -i:port ,kill -9 pid 多次,进程都会自动启动,只是换了个pid。

kill 掉 pm2,该进程终于没了。恢复 pm2 该进程再次出现。
kill -9 杀进程,又回到前面该进程自动重启的状态。

由于是测试环境,我将该项目文件夹移动到其他文件夹,kill 进程后,发现进程未重启。
pm2 list查看,终于发现问题。
开发将该服务加入 pm2 list时,使用了不一致的上下文。
如原来为xx的上下文,加入pm2 管理时,开发设置成了yy。我一直去查xx上下文,当然查不出问题。

以上是关于记一次node进程无法kill 问题的主要内容,如果未能解决你的问题,请参考以下文章

记一次应急响应2

记一次服务器被黑的调查过程

记一次服务器被抓去挖矿事件

记一次WebLogic中病毒事件

记一次Oracle session数过多引起进程数超过processes限制最终导致客户端无法连接的问题

k8s记一次kubelet启动后master无法获取