使用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 相关文章推荐
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
CentOS 安装NodeJS V8.0.0的方法
Jun 15 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
监控Nodejs的性能实例代码
Jul 02 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
E路文章系统PHP
2006/12/11 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
php多进程应用场景实例详解
2019/07/22 PHP
php依赖注入知识点详解
2019/09/23 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
js切换div css注意的细节
2012/12/10 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
tensorflow多维张量计算实例
2020/02/11 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
路政管理专业个人自荐信范文
2013/11/30 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
群众路线党课主持词
2014/04/01 职场文书
战略合作协议书范本
2014/04/18 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
聘任书范文大全
2015/09/21 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书