有四种方法:node
1.forever数组
forver start bin/wwwapp
2.pm2 ui
pm2 strat bin/wwwspa
3.node自身进程保护命令行
nohup node /bin/www > 1.log &进程
平时在系统终端中执行一个命令后若是想当即的中止它,您能够同时按下系统组合键"Ctrl+c",这样命令的进程将会当即被终止,是生产工做中比较经常使用的命令行快捷键之一。或者有些命令在执行时会不断的在屏幕上输出信息,影响到我们继续输入命令了,即可以在执行命令时在命令最后面添加上一个"&"符号,这样命令从开始执行就默认被放到系统后台了。事件
4.node写自身进程保护string
/** pm2
*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