nodejs 守護進程運行


有四種方法:

1.forever

 forver start  bin/www

2.pm2 

 pm2 strat bin/www

3.node自身進程保護

nohup node /bin/www  > 1.log &

平時在系統終端中執行一個命令后如果想立即的停止它,您可以同時按下系統組合鍵"Ctrl+c",這樣命令的進程將會立即被終止,是生產工作中比較常用的命令行快捷鍵之一。或者有些命令在執行時會不斷的在屏幕上輸出信息,影響到咱們繼續輸入命令了,便可以在執行命令時在命令最后面添加上一個"&"符號,這樣命令從開始執行就默認被放到系統后台了。

4.node寫自身進程保護

/**

*Created by zzl on 2017/1/8.

*/

var fork = require('child_process').fork;

 

//保存被子進程實例數組

var workers = [];

//這里的被子進程理論上可以無限多

var appsPath = ['./app.js'];

var createWorker = function(appPath){

  //保存fork返回的進程實例

  var worker = fork(appPath);

  //監聽子進程exit事件

  worker.on('exit',function(){

    console.log('worker:' + worker.pid + 'exited');

    delete workers[worker.pid];

    createWorker(appPath);

   });

  workers[worker.pid] = worker;

  console.log('Create worker:' + worker.pid);

  };

//啟動所有子進程

for (var i = appsPath.length - 1; i >= 0; i--) {

  createWorker(appsPath[i]);

  }

//父進程退出時殺死所有子進程

process.on('exit',function(){

   for(var pid in workers){

    workers[pid].kill();

  }

});

 

 

總結:相對來說,pm2 和 forever 比較好,對於nodejs項目, 網頁上有錯誤,pm2 也能守護運行,第三種 nohup node /bin/www  > 1.log &  很容易被掛掉。推薦pm2 和 forever ,pm2 和 forever 對比,更加推薦 pm2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM