使用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 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
Mar 28 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
详解Windows下安装Nodejs步骤
May 18 NodeJs
CentOS 安装NodeJS V8.0.0的方法
Jun 15 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs实现大文件(在线视频)的读取
Oct 16 NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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
9个PHP开发常用功能函数小结
2011/07/15 PHP
smarty内置函数section的用法
2015/01/22 PHP
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
Python中使用dom模块生成XML文件示例
2015/04/05 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python中表示字符串的三种方法
2017/09/06 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
安全资料员岗位职责
2013/12/14 职场文书
厂长助理岗位职责
2013/12/27 职场文书
机械制造专业个人的自我评价
2013/12/28 职场文书
员工晚婚的请假条
2014/02/08 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
幼儿园安全责任书
2014/04/14 职场文书
先进工作者个人总结
2015/02/15 职场文书
婚宴致辞
2015/07/28 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏