使用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命令行参数处理模块commander使用实例
Sep 17 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
nodejs初始化init的示例代码
Oct 10 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
详解nodejs内置模块
May 06 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
怎么使 Mysql 数据同步
2006/10/09 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
Javascript & DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
Python中的类与对象之描述符详解
2015/03/27 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
为什么要用EJB
2014/04/17 面试题
工程部主管岗位职责
2013/11/17 职场文书
个人自我鉴定总结
2014/03/25 职场文书
学习交流会主持词
2014/04/01 职场文书
单位委托函范文
2015/01/29 职场文书
矛盾论读书笔记
2015/06/29 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
Python数组变形的几种实现方法
2022/05/30 Python