使用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实现Websocket的数据接收与发送
Nov 19 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 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
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
简单的js表格操作
2016/09/24 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
Python中线程编程之threading模块的使用详解
2015/06/23 Python
简单解决Python文件中文编码问题
2015/11/22 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python实现数据写入excel表格
2018/03/25 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
英语道歉信范文
2014/01/09 职场文书
新任教师自我鉴定
2014/02/24 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书