pm2 json配置没有正确运行app

时间:2015-05-09 15:47:46

标签: node.js pm2

尝试使用pm2启动并运行nodejs应用程序。

我们使用SASS并使用" node-sass-middleware"重建文件更改时的css文件。这一切都运行良好,直到pm2每次sass中间件重建css文件时都会自动重启应用程序......这就是我们告诉它做的事情:

pm2启动app.js --watch 因此,在阅读了一些文档后,您似乎可以使用json文件配置pm2,并且它有一个选项" ignore_watch"。

因此,按照github上的指南:https://github.com/Unitech/PM2/blob/master/ADVANCED_README.md#json-app-declaration,我们将config json文件设置为如下所示:

{
    "name"        : "ourApp",
    "script"      : "server.js",
    "watch"       : true,
    "ignore_watch" : ["public/css"],
    "env": {
        "NODE_ENV": "development"
    }
}

问题是,只要我们尝试运行它,pm2日志会吐出1000行日志错误,看起来有点像这样:

PM2: 2015-05-09 15:32:00: Error: watch ENOSPC
PM2:     at errnoException (fs.js:1024:11)
PM2:     at FSWatcher.start (fs.js:1056:11)
PM2:     at Object.fs.watch (fs.js:1081:11)
PM2:     at createFsWatchInstance (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:24:15)
PM2:     at setFsWatchListener (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:47:19)
PM2:     at EventEmitter.NodeFsHandler._watchWithNodeFs (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:177:15)
PM2:     at EventEmitter.NodeFsHandler._handleFile (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:201:8)
PM2:     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:353:12)
PM2:     at Object.oncomplete (fs.js:107:15)
PM2: 2015-05-09 15:32:00: Error: watch ENOSPC
PM2:     at errnoException (fs.js:1024:11)
PM2:     at FSWatcher.start (fs.js:1056:11)
PM2:     at Object.fs.watch (fs.js:1081:11)
PM2:     at createFsWatchInstance (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:24:15)
PM2:     at setFsWatchListener (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:47:19)
PM2:     at EventEmitter.NodeFsHandler._watchWithNodeFs (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:177:15)
PM2:     at EventEmitter.NodeFsHandler._handleFile (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:201:8)
PM2:     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:353:12)
PM2:     at Object.oncomplete (fs.js:107:15)
PM2: 2015-05-09 15:32:00: Process with pid 9155 still not killed, retrying...
PM2: 2015-05-09 15:32:00: Process with pid 9155 still alive after 800ms

感谢下面的答案 这似乎是罪魁祸首,显然在Linux世界中ENOSPC意味着没有剩余的磁盘空间......但是在整个开发服务器上只使用2.1gig,总硬盘空间为25gig,这不是问题。

  

PM2:2015-05-09 15:32:00:错误:观看ENOSPC

此外,当我们从顶部提到的cli运行pm2时,一切都完美无缺......

我们确实需要这项工作,因为它会对开发团队造成严重破坏。

还有其他人遇到过这个问题吗?

谢谢, 约翰

1 个答案:

答案 0 :(得分:0)

ENOSPC means no space left on the device.因此,请检查您的某个文件系统是否已满。假设您在Linux或其他类Unix操作系统上,/tmp/var可能是候选人。