NodeJs进程守护工具forever使用

nodejs是单进程的,如果应用中发生未捕获的异常,进程就会退出,一个比较笨的办法在系统中使用计划任务检查进程是否存在,如果不存在启动该程序,但是该方式会造成系统资源的浪费。

好在NodeJs活跃的社区给开发者提供了一个选择“forever”,该包就是用来解决以上状况的。

使用

使用很简单,只有两条命令。

npm install forever -g
forever start app.js

就可以执行应用了。如果应用挂掉会自动重启。

查看受监控的进程列表

forever list

forever管理nodejs方法

forever使用说明

启动相关

// 1. 简单的启动
forever start app.js

// 2. 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log
forever start -l forever.log app.js

// 3. 指定app.js中的日志信息和错误日志输出文件,
//  -o 就是console.log输出的信息,-e 就是console.error输出的信息
forever start -o out.log -e err.log app.js

// 4. 追加日志,forever默认是不能覆盖上次的启动日志,
//  所以如果第二次启动不加-a,则会不让运行
forever start -l forever.log -a app.js

// 5. 监听当前文件夹下的所有文件改动
forever start -w app.js

文件改动监听并自动重启

// 1. 监听当前文件夹下的所有文件改动(不太建议这样)
forever start -w app.js
显示所有运行的服务

forever list
停止操作

// 1. 停止所有运行的node App
forever stopall

// 2. 停止其中一个node App
forever stop app.js
// 当然还可以这样
// forever list 找到对应的id,然后:
forever stop [id]

重启操作

重启操作跟停止操作保持一致。
// 1. 启动所有
forever restartall
开发和线上建议配置

 

// 开发环境下
NODE_ENV=development forever start -l forever.log -e err.log -a app.js
// 线上环境下
NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
上面加上NODE_ENV为了让app.js辨认当前是什么环境用的。不加它可能就不知道哦?

一些注意点

有可能你需要使用unix下的crontab(定时任务)
这个时候需要注意配置好环境变量。

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

时间: 2024-11-29 08:37:53

NodeJs进程守护工具forever使用的相关文章

Nodejs进程管理模块forever详解_node.js

接下来,就让我们看看forever能不能实现目标. 一.forever介绍 forever是一个简单的命令式nodejs的守护进程,能够启动,停止,重启App应用.forever完全基于命令行操作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行. 二. forever安装 全局安装forever 复制代码 代码如下: ~ D:\workspace\javascri

linux进程管理工具htop安装教程

htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令. htop官网:http://hisham.hm/htop/ 系统环境:CentOS release 5.8 (Final) 安装htop需要ncurses支持,请确保已安装: [root@localhost ~]# yum install ncurses ncurses-devel 安装htop # wget http://hisham.hm/htop/releases/1.0/htop-1.0.tar

基于Python 的进程管理工具supervisor使用指南_python

Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2.4 以上版本,但是还无法运行在 Python 3 上,不过已经有一个 Python 3 的移植版 supervisor-py3k. 什么情况下我们需要进程管理呢?就是执行一些需要以守护进程方式执行的程序,比如一个后台任务,我最常用的是用来启动和管理基于 Tornado 写的 Web 程序. 除此之

ps-pgrep 是通过程序的名字来查询进程的工具,它所指的"程序的名字"到底是什么

问题描述 pgrep 是通过程序的名字来查询进程的工具,它所指的"程序的名字"到底是什么 如题:linux命令pgrep中百度百科中说pgrep 是通过程序的名字来查询进程的工具,它所指的""程序的名字""到底是什么我用ps -ef比如得到的一条信息是:root 1768 1 0 21:47 ? 00:00:00 python Store_ma.py这条信息中的Store_ma.py是不是就是pgrep中的""程序的名字&qu

windows2000秘密武器之任务进程终止工具

3.任务与进程的中止工具 上篇介绍的任务与进程显示工具tlist,其主要作用是为管理任务和进程提供信息.所谓"管理",不外乎是中止某个任务或进程,或改变它们的优先权.命令行形式的任务与进程管理工具,只有中止进程功能,没有改变优先权的功能.程序名是Kill.EXE.kill的意思为杀死!即可以用它来"杀死"一个现存的任务或进程!听起来是不是有点恐怖啊?为了不致觉得吓人,我改用"中止"这个名称.中止也好杀死也罢,都有一个惟谁试问拿谁开刀的问题:你要中止哪个任务或哪个进程?它的名字如何得到?从什么地方

python进程管理工具supervisor使用实例_python

平时我们写个脚本,要放到后台执行去,我们怎么做呢? 复制代码 代码如下: nohup python example.py 2>&1 /dev/null & 用tumx或者screen? 但是用着可能都不爽,今天就看看python里面的一个进程管理工具supervisor: 官方说:Supervisor: A Process Control System 说白了他就是一个demon程序,他来帮助我们完成对我们想要托管的脚本也好程序也好,好好的照料: 1.安装 python的东西就是好安

windows下bat curl实现tomcat进程守护

朋友公司的 tomcat运行在windows平台下,其提到tomcat不是很稳定,老是挂,有没有什么好的办法.其中给他的建议里有一条,让其开一个tomcat的守护进程.由于windows下不像linux(Linux平台下各种命令.各种语法.各种顺手),win平台下bat感觉既弱又难理解.不过这里还是找了下之前写过的tomcat进程守护脚本,改了下写了一个. 同一个思种, 获取某个URL的状态码,对比HTTP状态码是否为200,如果不是200,将该主机的某个特定tomcat进行重启(针对单台主机上

Android开发中双进程守护的尝试与分析实例

最近在做一个Android的项目,其包含一个消息推送的后台服务.由于该服务可能会有重要的信息推送,因此并不希望当APP程序退出.APP程序被一键清理.APP被强制停止等用户操作发生时,这个后台服务也随之被杀死.这个问题也就是所谓的"内存永驻".关于这个问题,网上有很多说法,如调用startforehand函数以提高service的优先级.在service中创建一个不能被删掉的notification(或者产生一个其他的与用户界面交互的UI控件).在service的onDestroy函数

进程守护系统,你懂吗?

1.什么是进程守护系统? 进程守护系统,用于监控指定的进程,当发现目标进程不再正常工作时,就关闭该进程,并重启它. 在什么情况下使用进程守护系统了?比如说,我们的某个服务器软件,在上线后出现一个严重的bug,该bug虽然很难出现,但是只要一出现,整个服务都会停掉(进程没有崩溃,只是不再提供服务).此时,重启服务软件,又会开始正常工作. 对于这样严重的bug,必须要查清楚并解决掉的.但是,基于以下两个原因: (1)系统已经对用户开放,服务不能停.不可能说系统先下线,直到bug被解决掉后再重新上线.