Nodejs进程管理模块forever详解

接下来,就让我们看看forever能不能实现目标。
一、forever介绍

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

二、 forever安装

全局安装forever

~ D:\workspace\javascript>npm install -g forever

D:\toolkit\nodejs\forever -> D:\toolkit\nodejs\node_modules\forever\bin\forever

D:\toolkit\nodejs\foreverd -> D:\toolkit\nodejs\node_modules\forever\bin\foreverd


查看forever帮助

~ D:\workspace\javascript>forever -h

help: usage: forever [action] [options] SCRIPT [script-options]

help:

help: Monitors the script specified in the current process or as a daemon

help:

help: actions:

help: start Start SCRIPT as a daemon

help: stop Stop the daemon SCRIPT

help: stopall Stop all running forever scripts

help: restart Restart the daemon SCRIPT

help: restartall Restart all running forever scripts

help: list List all running forever scripts

help: config Lists all forever user configuration

help: set <key> <val> Sets the specified forever config <key>

help: clear <key> Clears the specified forever config <key>

help: logs Lists log files for all forever processes

help: logs <script|index> Tails the logs for <script|index>

help: columns add <col> Adds the specified column to the output in `forever list`

help: columns rm <col> Removed the specified column from the output in `forever list`

help: columns set <cols> Set all columns for the output in `forever list`

help: cleanlogs [CAREFUL] Deletes all historical forever log files

help:

help: options:

help: -m MAX Only run the specified script MAX times

help: -l LOGFILE Logs the forever output to LOGFILE

help: -o OUTFILE Logs stdout from child script to OUTFILE

help: -e ERRFILE Logs stderr from child script to ERRFILE

help: -p PATH Base path for all forever related files (pid files, etc.)

help: -c COMMAND COMMAND to execute (defaults to node)

help: -a, --append Append logs

help: -f, --fifo Stream logs to stdout

help: -n, --number Number of log lines to print

help: --pidFile The pid file

help: --sourceDir The source directory for which SCRIPT is relative to

help: --minUptime Minimum uptime (millis) for a script to not be considered "spinning"

help: --spinSleepTime Time to wait (millis) between launches of a spinning script.

help: --colors --no-colors will disable output coloring

help: --plain alias of --no-colors

help: -d, --debug Forces forever to log debug output

help: -v, --verbose Turns on the verbose messages from Forever

help: -s, --silent Run the child script silencing stdout and stderr

help: -w, --watch Watch for file changes

help: --watchDirectory Top-level directory to watch from

help: --watchIgnore To ignore pattern when watch is enabled (multiple option is allowed)

help: -h, --help You're staring at it

help:

help: [Long Running Process]

help: The forever process will continue to run outputting log messages to the console.

help: ex. forever -o out.log -e err.log my-script.js

help:

help: [Daemon]

help: The forever process will run as a daemon which will make the target process start

help: in the background. This is extremely useful for remote starting simple node.js scripts

help: without using nohup. It is recommended to run start with -o -l, & -e.

help: ex. forever start -l forever.log -o out.log -e err.log my-daemon.js

help: forever stop my-daemon.js

help:

我们看到forever支持的命令和配置项确实不少,应该是偏命令行的管理工具。

三、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: 命令行帮助信息


四、forever服务器管理

创建一个web项目(express3+ejs),使用forever管理服务器。

安装express3

~ D:\workspace\javascript>express -e nodejs-forever

~ D:\workspace\javascript>cd nodejs-forever && npm install


通过forever启动应用

~ D:\workspace\javascript\nodejs-forever>forever start app.js

warn:    --minUptime not set. Defaulting to: 1000ms

warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms

info:    Forever processing file: app.js

打开浏览器: http://localhost:3000,可以看到web界面

在win下面查看forever状态

~ D:\workspace\javascript\nodejs-forever>forever list

info:    No forever processes running

~ D:\workspace\javascript\nodejs-forever>forever stop app.js

error:   Forever cannot find process with index: app.js

以上是 Nodejs进程管理模块forever详解 的全部内容, 来源链接: utcz.com/z/326168.html

回到顶部