使用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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
使用vs code开发Nodejs程序的使用方法
Sep 21 NodeJs
Nodejs连接mysql并实现增、删、改、查操作的方法详解
Jan 04 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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实现上传图片到 zimg 服务器
2016/10/19 PHP
CI框架附属类用法分析
2018/12/26 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
JS验证不重复验证码
2017/02/10 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python同步两个文件夹下的内容
2019/08/29 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
Python实现微信好友的数据分析
2019/12/16 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Python常用数据分析模块原理解析
2020/07/20 Python
python3.5的包存放的具体路径
2020/08/16 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
python中entry用法讲解
2020/12/04 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
普罗米修斯教学反思
2014/02/06 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2015新学期开学寄语
2015/02/26 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
赢在执行观后感
2015/06/16 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
Java实现聊天机器人完善版
2021/07/04 Java/Android