有四种方法:

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

nodejs 守护进程运行的更多相关文章

  1. linux crontab 保证php守护进程运行

    写好php脚本.建议定期检测内存占用,核心逻辑就不写了.这个跟业务有关. if(memory_get_usage()>100*1024*1024){ exit(0);//大于100M内存退出程序 ...

  2. Linux下tomcat作为守护进程运行(开机启动、以指定的用户运行、解决非root身份不能绑定1024以下端口的问题)的配置方法

    如题. 参考资料: http://www.jdiy.org/read.jd?id=y0haaynq1w http://blog.csdn.net/shw2004/article/details/578 ...

  3. nodejs - 守护进程 supervisor

    1. 安装   npm -g install supervisor   2. 如果使用了expres框架   需要修改启动方式 到 package.json中的   "scripts&quo ...

  4. 用PHP实现守护进程任务后台运行与多线程(php-resque使用说明)

    消息队列处理后台任务带来的问题 项目中经常会有后台运行任务的需求,比如发送邮件时,因为要连接邮件服务器,往往需要5-10秒甚至更长时间,如果能先给用户一个成功的提示信息,然后在后台慢慢处理发送邮件的操 ...

  5. Linux守护进程

    什么是守护进程? 守护进程是生存期长的一种进程,它们常常在系统引导装入时启动,仅在系统关闭时在终止.它们没有控制终端并且在后台运行.Linux 系统中有很多守护进程用以执行系统的日常事物,而且服务器程 ...

  6. Unix网络编程代码 第13章 守护进程和inetd超级服务器

    1. 概述 守护进程是在后台运行且不与任何控制终端关联的进程.unix系统通常有很多守护进程在后台运行,执行不同的管理任务.    守护进程没有控制终端通常源于它们由系统初始化脚本启动.然而守护进程也 ...

  7. 以守护进程的方式部署flask

    1.文件目录 创建一个简单的flask 项目... application = Flask(__name__) application.debug = True 2.安装wsgi pip instal ...

  8. Docker命令行与守护进程如何交互?

    译者按: Docker是典型的C/S架构,其守护进程(daemon)与命令行(CLI)是通过REST API进行交互的. 原文: Understanding how the Docker Daemon ...

  9. PHP7 网络编程(二)daemon守护进程

    前言 在一个多任务的计算机操作系统中,守护进程(英语:daemon,/ˈdiːmən/或/ˈdeɪmən/)是一种在后台执行的计算机程序.此类程序会被以进程的形式初始化.守护进程程序的名称通常以字母“ ...

随机推荐

  1. easyUI datagarid单元格动态合并

    第二列根据第一列合并,第三列根据第二列合并.层级关系. /* * tableID表格的id * colList要合并的字段例如:"overcount,totalcount" */ ...

  2. js中的json操作

    js中的json操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScr ...

  3. hdu 2032 一维数组实现杨辉三角

    杨辉三角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. Mosquito的优化——epoll优化(七)

    本文由逍遥子撰写,转发请标注原址: http://blog.csdn.net/houjixin/article/details/46413583 或 http://houjixin.blog.163. ...

  5. error[No partition metadata for topic test-1 due to kafka.common.LeaderNotAvailableException]

    http://stackoverflow.com/questions/23228222/running-into-leadernotavailableexception-when-using-kafk ...

  6. JAVA设计模式之【职责链模式】

    职责链模式 专门处理请求链式传递的模式 角色 Handler抽象处理者 ConcreteHandler具体处理者 在职责链模式中,很多对象由每一个对象对其下家的引用而连接成一条链,请求在这条链上传递, ...

  7. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  8. Ubuntu 18.04 关闭GUI

    在安装显卡驱动时, 可能需要关闭GUI, 在终端中输入: sudo service gdm3 stop

  9. mybatis与spring整合配置

    mybatis与spring整合配置: 第一种方式:(此处配置扫描的包路径.注解.每个mapper类上面需要加@Repository才能纳入spring的bean管理器中) <!-- 自动扫描m ...

  10. C#小代码

    1.创建随机ID: Id = Guid.NewGuid().ToString("N"); 2.创建随机时间: CreationTime = DateTime.Now: int st ...