尝试使用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时,一切都完美无缺......
我们确实需要这项工作,因为它会对开发团队造成严重破坏。
还有其他人遇到过这个问题吗?
谢谢, 约翰
答案 0 :(得分:0)
ENOSPC
means no space left on the device.因此,请检查您的某个文件系统是否已满。假设您在Linux或其他类Unix操作系统上,/tmp
和/var
可能是候选人。