使用forever管理nodejs应用教程


Posted in NodeJs onJune 03, 2014

何为forever

forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。
官方的说明是说:

A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
// 一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具

Github地址:https://github.com/nodejitsu/forever

forever用途

forever的用途就是帮我们更好的管理我们node App服务,本质上就是在forever进程之下,创建一个node app的子进程。
比如,你有一个基于express的或者其他的一些个应用那么,它将会很方便你更新和操作你的服务,并且保证你服务能持续运行。
更好的一点就是每次更改文件,它都可以帮你自动重启服务而不需要手动重启。

安装forever

// 记得加-g,forever要求安装到全局环境下
sudo npm install forever -g

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
NodeJs 相关文章推荐
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
nodejs 整合kindEditor实现图片上传
Feb 03 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
nodejs redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
使用upstart把nodejs应用封装为系统服务实例
Jun 01 #NodeJs
nodejs获取本机内网和外网ip地址的实现代码
Jun 01 #NodeJs
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 #NodeJs
Nodejs进程管理模块forever详解
Jun 01 #NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 #NodeJs
跟我学Nodejs(三)--- Node.js模块
May 25 #NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 #NodeJs
You might like
php a simple smtp class
2007/11/26 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
利用php生成验证码
2017/02/23 PHP
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
Python isinstance判断对象类型
2008/09/06 Python
python实现数组插入新元素的方法
2015/05/22 Python
python破解zip加密文件的方法
2018/05/31 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
详解Python高阶函数
2020/08/15 Python
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
优秀干部获奖感言
2014/01/31 职场文书
八年级美术教学反思
2014/02/02 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
新任教师自我鉴定
2014/02/24 职场文书
cf收人广告词
2014/03/14 职场文书
小爸爸观后感
2015/06/15 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers