使用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的10个性能优化技巧
Jul 15 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
解决nodejs中使用http请求返回值为html时乱码的问题
Feb 18 NodeJs
nodejs批量下载图片的实现方法
May 19 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
基于nodejs实现微信支付功能
Dec 20 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 NodeJs
详解NodeJS模块化
Jun 15 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
简单的页面缓冲技术
2006/10/09 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
Flask框架配置与调试操作示例
2018/07/23 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
销售类个人求职信范文
2013/09/25 职场文书
教师求职信范文分享
2013/12/27 职场文书
会计电算化个人求职信范文
2014/01/24 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
2014年实验室工作总结
2014/12/03 职场文书
教师节大会主持词
2015/07/06 职场文书
如何写新闻稿
2015/07/18 职场文书