pm2 启动node服务报错解决

今天测试环境的node服务启动报错,如下图

从Make sure you have the latest version of node.js and npm install.可以看出是没有找到node.js。看了下node.js安装目录,which node。最后看了下node环境变量(/etc/profile),发现环境变量和node.js的安装目录不一致,改完环境变量,source下。再次启动,还是报错,如下图

启动是用pm2管理,所以就用pm2的查看log命令看了下日志,pm2 logs如下图





### 解决办法
- 看到Error:spawn node ENOENT,猜想是不是node.js有问题,查看官方文档发现新版本已经解决node.js路劲不一致的bug(https://github.com/Unitech/pm...)。在执行pm2 start index.js还是报错。

- 从日志是分析不出来什么问题了,就想想直接用node去跑服务看看能不能执行,结果成功了,所以就猜想是不是pm2本身的问题。

- 执行了下面的命令将所有node.js和pm2进程都杀掉了

1
2
3
ps -ux | grep pm2        (ps -ux | grep node)

找到对应的pid,然后
1
2
kill -9 pid  (kill -9 19363)
然后在执行 pm2 start index.js就成功启动了