pm2でnodejsアプリを起動して実行しようとしています。
SASS を使用し、「node-sass-middleware」でファイル変更時に css ファイルに再構築します。sass ミドルウェアが css ファイルを再構築するたびに pm2 がアプリの自動再起動を開始するまで、すべてが完全に機能します...
pm2 start app.js --watch したがって、ドキュメントを読んだ後、json ファイルを使用して pm2 を構成できるように意図されているようで、「ignore_watch」のオプションがあります。
したがって、github のガイド: https://github.com/Unitech/PM2/blob/master/ADVANCED_README.md#json-app-declarationに従って、構成 json ファイルを次のように設定します。
{
"name" : "ourApp",
"script" : "server.js",
"watch" : true,
"ignore_watch" : ["public/css"],
"env": {
"NODE_ENV": "development"
}
}
問題は、実行しようとするとすぐに、pm2 ログが数千行のログ エラーを吐き出し、すべて次のように見えることです。
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 しか使用されておらず、合計 HDD 容量が 25gig であるため、これは問題になることはありません。
PM2: 2015-05-09 15:32:00: エラー: ENOSPC を監視
さらに、上記のように cli から pm2 を実行すると、すべてが完全に機能します...
開発チームに大混乱を引き起こしているため、これが機能することが本当に必要です。
他の誰かがこの問題にぶつかりましたか?
ありがとう、ジョン