簡(jiǎn)述
今天測(cè)試環(huán)境的node服務(wù)啟動(dòng)報(bào)錯(cuò),如下圖

從Make sure you have the latest version of node.js and npm install.可以看出是沒有找到node.js??戳讼耼ode.js安裝目錄,which node。最后看了下node環(huán)境變量(/etc/profile),發(fā)現(xiàn)環(huán)境變量和node.js的安裝目錄不一致,改完環(huán)境變量,source下。再次啟動(dòng),還是報(bào)錯(cuò),如下圖

啟動(dòng)是用pm2管理,所以就用pm2的查看log命令看了下日志,pm2 logs如下圖

解決辦法
看到Error:spawn node ENOENT,猜想是不是node.js有問題,查看官方文檔發(fā)現(xiàn)新版本已經(jīng)解決node.js路勁不一致的bug(https://github.com/Unitech/pm2/commit/1df38b6117a47bdb50d795c71d947288703844f2)。在執(zhí)行pm2 start? index.js還是報(bào)錯(cuò)。
從日志是分析不出來什么問題了,就想想直接用node去跑服務(wù)看看能不能執(zhí)行,結(jié)果成功了,所以就猜想是不是pm2本身的問題。
執(zhí)行了下面的命令將所有node.js和pm2進(jìn)程都?xì)⒌袅?/p>
ps -ux | grep pm2? ? ? ? (ps -ux | grep node)
找到對(duì)應(yīng)的pid,然后
kill -9 pid
然后在執(zhí)行 pm2 start index.js就成功啟動(dòng)了