使用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的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
NodeJs测试框架Mocha的安装与使用
Mar 28 NodeJs
nodejs动态创建二维码的方法
Aug 12 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
NodeJS实现一个聊天室功能
Nov 25 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中,文件上传
2006/12/06 PHP
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python2与Python3的区别实例总结
2019/04/17 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
50道外企软件测试面试题
2014/08/18 面试题
EJB的基本架构
2016/09/22 面试题
大学生求职自荐信
2013/12/12 职场文书
寄语十八大感言
2014/02/07 职场文书
大学军训感言800字
2014/02/27 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
追讨欠款律师函
2015/05/27 职场文书
Java实现带图形界面的聊天程序
2022/06/10 Java/Android