2017-07-14 9 views
0

pm2モジュールを使用してnodejsサーバーを実行しています。私は、次のコマンドラインをパテで私のサーバーを起動します。pm2モジュールを使用してnodejsサーバーにコマンドを渡します。

pm2 start app.js 

そして、私は、「カスタム」quitなどのサーバーにコマンドを渡すしたいと思います。 save; load

process.stdin.resume(); 
process.stdin.setEncoding('utf8'); 

process.stdin.on('data', function (text) { 
    if (text.trim() === 'quit') { 
     // I do something here 
    } 
    if (text.trim() === 'save') { 
     // I do another thing here 
    } 
    if (text.trim() === 'load') { 
     // I do another thing here 
    } 
}); 

しかし、このコードはPM2モジュールでは動作しません:私はのようなコードを持って、そうするように標準入力を使用しています。 pm2プロセスがstdinプロセスを押しつぶす(これが正しい方法であるかどうかわからない) pm2コマンドだけが聞こえます。

私の質問は:私はどのように私の "カスタム"コマンドをサーバーに渡すことができますか?

答えて

0

PM2は、あなたのアプリケーションを起動するためのサブプロセスを作成し、事前にありがとうございます。このため、pm2の標準はあなたのアプリと同じではありません。だから残念ながら、現在はpm2をstdinで使用することはできません。

これを解決する予定の問題が公開されています。 https://github.com/Unitech/pm2/issues/2968

コードは実装されていますが、現在はマスターにはありません。今すぐこの機能が必要な場合。与えられたコミットに行き、pm2のそのバージョンを使ってこれを行うことができます。

+0

どのようにしてそのバージョンを入手して使用できますか? (初心者の方にはご質問ありがとうございます) –

+0

masterブランチを使用していないということは、完全にテストされておらず、バグがたくさんある可能性があることに注意してください。しかし、続行したい場合は、リポジトリをクローンします。開発ブランチに進み、モジュールをコンパイルして使用します。正直なところ私の意見では、pm2がそれをサポートできるようになるまで、通常のノードを使ってプログラムを実行します。 –

+0

すべての情報ありがとうございました:D –

関連する問題