記一次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上下文,當然查不出問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM