使用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导出excel的方法
Jun 30 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
NodeJs测试框架Mocha的安装与使用
Mar 28 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
Mac下通过brew安装指定版本的nodejs教程
May 17 NodeJs
Nodejs使用Mongodb存储与提供后端CRD服务详解
Sep 04 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
javascript整除实现代码
2010/11/23 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
Python类的基础入门知识
2008/11/24 Python
Python中is与==判断的区别
2017/03/28 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
python实现一组典型数据格式转换
2018/12/15 Python
Python中调用其他程序的方式详解
2019/08/06 Python
python装饰器练习题及答案
2019/11/01 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
总经理驾驶员岗位职责
2013/12/04 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
大学生在校表现评语
2014/12/31 职场文书
学生病假条范文
2015/08/17 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
使用CSS设置滚动条样式
2022/01/18 HTML / CSS