解决未关闭pm2管理的node项目,导致端口占用/杀死端口仍提示端口被占用的问题

输入node app.js命令运行项目,提示88端口被占用。

image.png

走坑历程->出坑

采用根据端口查看进程的方式,pidlsof -i:88来结束该进程,

image.png

然后通过输入sudo kill -9 3846命令,来结束88端口所在的进程,结果再次查看,还能查看88端口所在的进程
image.png

仔细分析之后,发现我之前运行项目,使用的是pm2 start app.js vue_ecommerce_server命令运行的,因此我输入pm2 list命令来查看pm2下所管理的项目,结果却是发现有一个id为0的项目
image.png

然后输入pm2 stop 0停止id为0的项目(最好是使用pm2 delete 0删除掉它)
image.png

然后再次输入pidlsof -i:88查看88端口所在的进程,结果为空,因此可以得知确实是pm2下管理的项目没有关闭,才导致的88端口被占用的问题
image.png

通过node app.js再次运行node项目,不会提示端口被占用了,问题解决
image.png

问题总结

如果之前通过pm2管理node项目,本次又想通过node app.js的方式来管理node项目的话,得先把之前的pm2管理node项目关闭掉,否则就会提示端口被占用,而且通过sudo kill -9 pid的方式也无法关闭端口

pm2主要命令

使用pm2管理应用主要命令
①在服务器中安装pm2: npmi pm2 -g
②启动项目: pm2 start 脚本 自定义名称/id
③查看运行项目: pm2 list
④重启项目: pm2 restart 自定义名称/id
⑤停止项目: pm2 stop 自定义名称/id
⑥删除项目: pm2 delete 自定义名称/id
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。