使用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 后缀名判断限制代码
Mar 31 NodeJs
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
nodejs批量修改文件编码格式
Jan 22 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 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 IPV6正则表达式验证代码
2010/02/16 PHP
php中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
关于redux-saga中take使用方法详解
2018/02/27 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python中的列表知识点汇总
2015/04/14 Python
Python实现随机漫步功能
2018/07/09 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python 求定积分和不定积分示例
2019/11/20 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
大学生作弊检讨书
2014/02/19 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
国培远程培训感言
2014/03/08 职场文书
经典安踏广告词
2014/03/21 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
Python打包为exe详细教程
2021/05/18 Python
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS