有四种方法:

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事件 
'exit',function(){ 
'worker:' + worker.pid + 'exited'); 
delete workers[worker.pid]; 
    createWorker(appPath);
   }); 
  workers[worker.pid] = worker; 
'Create worker:' + worker.pid); 
  }; 
//启动所有子进程 
for (var i = appsPath.length - 1; i >= 0; i--) { 
  createWorker(appsPath[i]); 
  } 
//父进程退出时杀死所有子进程
'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

极乐鸟