1

ec2 linuxインスタンスの画面からapp.js(ノードjsアプリケーション)を実行します。monitrcファイルを構成しようとしていますが、アプリpidfileが必要です。/ var / runにはありません(そして/ var / wwwはありません)

誰かがpidfileがどこにあるか、またはどうすればそれを見つけることができるかについて何か考えがあれば、本当に感謝します。
ありがとう!

4

2 に答える 2

5

アプリでは、現在の pid 番号を process.pid で取得できるので、

var fs = require('fs');
fs.writeFile("/tmp/pidfile", process.pid);

そして、あなたはtmpでpidfileを取得します

于 2012-11-02T19:16:38.970 に答える
3

pid ファイルが作成されていないように見えるので、エラーが発生した場合に app.js スクリプトを再起動するために、forever-monitor を使用しました。動作しているようです。あなたがする必要があるのは npm install forever で、 server.js を書きます:

var forever = require('forever'),
    child = new(forever.Monitor)('app.js', {
        'silent': false,
        'pidFile': '/var/run/app.pid',
        'watch': false,
        'options': ['8383'],  // Additional arguments to pass to the script,
        'sourceDir': '.', // Directory that the source script is in
        'watchDirectory': '.',     // Top-level directory to watch from.
        'watchIgnoreDotFiles': true, // whether to ignore dot files
        'watchIgnorePatterns': [], // array of glob patterns to ignore, merged with contents of watchDirectory + '/.foreverignore' file
        'logFile': 'logs/forever.log', // Path to log output from forever process (when daemonized)
        'outFile': 'logs/forever.out', // Path to log output from child stdout
        'errFile': 'logs/forever.err'
    });
child.start();
forever.startServer(child);

node server.js (~/nodejs ディレクトリから実行します) それでも、/var/run にあるはずの pid ファイルがありません。奇妙なことですが、もう monit は必要ありません。upstart を追加で使用する必要がある理由をまだ理解していません (関連するすべての投稿が提案されているように) とにかく、upstart を実行しようとしても機能しませんでした

于 2012-11-09T11:53:11.583 に答える