使用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的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
轻松创建nodejs服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
Nodejs从有门道无门菜鸟起飞必看教程
Jul 20 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 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和ACCESS写聊天室(三)
2006/10/09 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
php桥接模式应用案例分析
2019/10/23 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Python for循环生成列表的实例
2018/06/15 Python
Python实现常见的回文字符串算法
2018/11/14 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
pymysql的简单封装代码实例
2020/01/08 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
师德师风个人反思
2014/04/28 职场文书
活动总结新闻稿
2014/08/30 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
SQL注入的实现以及防范示例详解
2021/06/02 MySQL