2017-07-14 33 views
0

我使用PM2模塊運行的服務器的NodeJS到服務器的NodeJS。我開始在我的膩子服務器以下命令行:傳遞命令使用PM2模塊

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過程美眉標準輸入過程(我不知道這是否是說,正確的方式)僅PM2命令聽着。

所以我的問題是:如何可以通過我的「自定義」命令到服務器?

預先感謝您

回答

0

pm2創建一個子流程來啓動您的應用程序。因此,pm2的stdin不等於您的應用程序。所以不幸的是,目前你不能在標準輸入中使用pm2。

然而,有一個問題,開上解決這一計劃。 https://github.com/Unitech/pm2/issues/2968

實現該代碼的,當前未在主。如果你現在想要這個功能。您可以轉到給定的提交併使用該版本的pm2來執行此操作。

+0

我如何獲得和使用該版本? (對於新手問題抱歉) –

+0

請注意,不使用主分支意味着它沒有經過徹底測試,可能有很多錯誤。但是,如果您想繼續操作,請克隆存儲庫。去開發分支,然後編譯模塊並使用它。老實說,在我看來,只是使用普通節點來運行該程序,直到pm2可以支持它。 –

+0

好的,謝謝你提供的所有信息:D –