有四種方法: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