使用forever管理NodeJs应用

1. forever介绍

forever是一个简单的命令式nodejs的守护进程,能够启动,停止,重启App应用。forever完全基于命令行操作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。

Github地址:https://github.com/nodejitsu/forever

用途:

forever的用途就是帮我们更好的管理我们node App服务,本质上就是在forever进程之下,创建一个node app的子进程。比如,你有一个基于express的或者其他的一些个应用那么,它将会很方便你更新和操作你的服务,并且保证你服务能持续运行。

更好的一点就是每次更改文件,它都可以帮你自动重启服务而不需要手动重启。

2. forever安装

forever需要安装到全局环境下

[sudo] npm install forever -g

3. forever使用

  1. 简单的启动 forever app.js #前台进程 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默认是不能覆盖上次的启动日志 forever start -l forever.log -a app.js
  5. 监听当前文件夹下的所有文件改动 forever start -w app.js
  6. 文件改动监听并自动重启,监听当前文件夹下的所有文件改动(不太建议这样) forever start -w app.js
  7. 显示所有运行的服务 forever list
  8. 停止、重启操作
  9. 停止所有运行的node App forever stopall
  10. 停止其中一个node App

forever stop app.js

  • forever list 找到对应的id,然后:

forever stop [id]

  • 启动所有

forever restartall

4. forever命令行的中文解释

子命令actions

start :启动守护进程 stop:停止守护进程 stopall:停止所有的forever进程 restart:重启守护进程 restartall:重启所有的foever进程 list:列表显示forever进程 config:列出所有的用户配置项 set <key> <val>: 设置用户配置项 clear <key>: 清楚用户配置项 logs: 列出所有forever进程的日志 logs <script|index>: 显示最新的日志 columns add <col>: 自定义指标到forever list columns rm <col>: 删除forever list的指标 columns set<cols>: 设置所有的指标到forever list cleanlogs: 删除所有的forever历史日志

配置参数options:

-m MAX: 运行指定脚本的次数 -l LOGFILE: 输出日志到LOGFILE -o OUTFILE: 输出控制台信息到OUTFILE -e ERRFILE: 输出控制台错误在ERRFILE -p PATH: 根目录 -c COMMAND: 执行命令,默认是node -a, –append: 合并日志 -f, –fifo: 流式日志输出 -n, –number: 日志打印行数 –pidFile: pid文件 –sourceDir: 源代码目录 –minUptime: 最小spinn更新时间(ms) –spinSleepTime: 两次spin间隔时间 –colors: 控制台输出着色 –plain: –no-colors的别名,控制台输出无色 -d, –debug: debug模式 -v, –verbose: 打印详细输出 -s, –silent: 不打印日志和错误信息 -w, –watch: 监控文件改变 –watchDirectory: 监控顶级目录 –watchIgnore: 通过模式匹配忽略监控 -h, –help: 命令行帮助信息

欢迎订阅「K叔区块链」 - 专注于区块链技术学习

博客地址:http://www.jouypub.com

简书主页:https://www.jianshu.com/u/756c9c8ae984

segmentfault主页:https://segmentfault.com/blog/jouypub

腾讯云主页:https://cloud.tencent.com/developer/column/72548

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏电光石火

python3和python2共存

特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。

2386
来自专栏Pythonista

Linux之文档与目录结构

Linux目录结构的组织形式和Windows有很大的不同。首先Linux没有“盘(C盘、D盘、E盘)”的概念。已经建立文件系统的硬盘分区被挂载到某一个目录下,用...

1573
来自专栏鸿的学习笔记

日志采集技术笔记

使用Linux的rename机制保证文件写入要么成功,要么失败,绝对不能出现写了一半的情况。

3685
来自专栏Python中文社区

Linux进程监控工具Supervisor简易使用教程

專 欄 ❈ gw1770df,Python中文社区专栏作者,从事Python开发工作,全栈工程师。 博客: https://word.gw1770df.cc ...

3756
来自专栏Java学习123

Linux NFS服务器的安装与配置

5237
来自专栏电光石火

python3和python2共存

特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。 使用python开发,环境有Python2和 py...

2338
来自专栏Java3y

Linux进程管理

每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(process ID),每个进程的进程号是唯一的。

3510
来自专栏C/C++基础

GitHub Desktop常见用法

这里记录我使用git的点滴,以需要完成的功能为切入点来讲解需要使用的命令,供日后参考,当然再结合“git命令大全”这类较全面的git命令介绍的文章,会更好的熟悉...

2473
来自专栏北京马哥教育

Nginx的安装和多域名配置

作者:白夜船长 来源:http://blog.csdn.net/zzq900503/article/details/70049348 Nginx安装 cento...

4665
来自专栏jouypub

使用wagon-maven-plugin部署Java项目到远程服务器

在项目开发过程中,经常需要部署代码到开发环境,每天可能有好多次,每次都需要mvn clean install,然后上传到服务器。实际上这些繁琐的步骤可以通过一个...

3214

扫码关注云+社区

领取腾讯云代金券