使用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基础知识
Feb 03 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
nodejs微信开发之授权登录+获取用户信息
Mar 17 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
nodejs处理tcp连接的核心流程
Feb 26 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 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操作SVN版本服务器类代码
2011/11/27 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
php实现的用户查询类实例
2015/06/18 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
详解JavaScript的变量
2019/04/04 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
详解Python中的文件操作
2016/08/28 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
公诉意见书范文
2015/06/05 职场文书
大学新生入学感想
2015/08/07 职场文书