PM2启动服务提示:Error: ENOENT: no such file or directory, uv_cwd 解决办法

 Nodejs, pm2  PM2启动服务提示:Error: ENOENT: no such file or directory, uv_cwd 解决办法已关闭评论
3月 232020
 

PM2中重启服务时,出现下面提示:

PM2: path.js:422
PM2: var path = (i >= 0) ? arguments[i] : process.cwd();
PM2: ^
PM2:
PM2: Error: ENOENT: no such file or directory, uv_cwd
PM2: at Error (native)
PM2: at Object.posix.resolve (path.js:422:50)
PM2: at Function.Module._resolveLookupPaths (module.js:248:17)
PM2: at Function.Module._resolveFilename (module.js:326:31)
PM2: at Function.Module._load (module.js:286:25)
PM2: at Module.require (module.js:365:17)
PM2: at require (module.js:384:17)
PM2: at Object.<anonymous> (/usr/local/bin/node_modules/pm2/lib/ProcessContainer.js:12:15)
PM2: at Module._compile (module.js:434:26)
PM2: at Object.Module._extensions..js (module.js:452:10)

 

出现这种情况原因很可能是你不经意间修改了当时启动服务时的目录,比如修改了目录名,移动了目录等, 可以通过下面的方法核实下:

原因:

  1. 通过pm2 list  中找到不能重启的服务的进程号pid
  2. 通过  ls -l /proc/pid(上面1找到的pid)/cwd, 检查下这个目录是不是被删除了?

 

最终解决方案:

  1. ps ax | grep PM2
  2. 找到pm2进程
  3.  kill pid(进程号)
  4.  pm2 list(或是其他的pm2 命令对pm2 进行重启)

 

 

 

 

 

[PM2] Spawning PM2 daemon with pm2_home=/home/ec2-user/.pm2问题排查

 Nodejs, pm2  [PM2] Spawning PM2 daemon with pm2_home=/home/ec2-user/.pm2问题排查已关闭评论
11月 192019
 

新aws机器部署了老nodejs项目,使用pm2 start config.js启动,提示:

[PM2] Spawning PM2 daemon with pm2_home=/home/ec2-user/.pm2

 

没有错误提示,pm2 log  / pm2 status都看不到信息, nodejs项目也没启动。

 

其实可以通过查看~/.pm2/pm2.log 文件获取真正错误信息:

SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/local/lib/nodejs/lib/node_modules/pm2/lib/Watcher.js:6:16)
/home/ec2-user/.pm2/pm2.log (END)
/usr/local/lib/nodejs/lib/node_modules/pm2/node_modules/chokidar/index.js:151
async remove(item) {
^^^^^^

 

以为是chokidar的版本太新了,切换到[email protected],再运行pm2 start config.js还是上面的错误。 由于nodejs使用的是比较老的6.15.1的版本,想到会不会是pm2的版本太新了,因此,将pm2由4.1.2降为3.2.3

npm insall -g [email protected]

 

安装完后果然OK了, 记录下希望对其他也碰到此类问题的有一些帮助。

pm2修改配置文件后,restart未重新加载问题解决

 pm2  pm2修改配置文件后,restart未重新加载问题解决已关闭评论
11月 092019
 

修改了pm2的配置文件,发现使用下面命令都无效,配置就是没更新:

无效命令(Invalid):
pm2 reload config.json
网上也有说用下面的命令,我这边也无效
pm2 startOrReload config.js –update-env

后来只能使用删除项目后再启动方式OK:
以下有效(valid):
pm2 delete all
pm2 restart config.json

pm2 status error 解决

 Nodejs, pm2  pm2 status error 解决已关闭评论
2月 202019
 

今天使用pm2  启动nodejs应用, 发现启动一会儿,pm2 中status状态就从online变成error, 日志也看没有什么记录, 后来发现可以通过下面的步骤解决:  pm2 update

如果彻底些,可以先kill 掉pm2的进程, 再执行pm2 update命令。

查看帮助

$ pm2 update -h

  Usage: update [options]

  (alias) update in-memory PM2 with local PM2

  Options:

    -h, –help  output usage information

通过上面命令查看,估计问题出在本机PM2的内存数据里