使用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开发环境配置与使用
Nov 17 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 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如何得到当前页和上一页的地址?
2006/11/27 PHP
php email邮箱正则
2008/10/08 PHP
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
PHP制作万年历
2015/01/07 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
js word表格动态添加代码
2010/06/07 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
vue实现微信分享功能
2018/11/28 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
EJB的几种类型
2012/08/15 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
演讲比赛策划方案
2014/06/11 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
学校运动会加油词
2015/07/18 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS