NodeJs服务器管理

本文介绍了如何使用NodeJS的forever模块进行服务器管理,包括安装、使用及常见命令,阐述了forever如何确保应用在宕机时自动重启,以及如何模拟服务器宕机进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器管理是系统上线后需要面对的问题。最好有一个软件可以提供整套的服务器运行解决方案:要求运行稳定,启动/停止命令简单,支持热部署,宕机重启,监控日志,集群环境等。NodeJs服务器管理模块有forever、pm2等。

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

系统环境:win7 64bit, node v0.10.32, npm v1.4.28
执行 npm install forever命令,一般安装在全局node_modules下,如本机的全局NodeJs路径是D:\NodeJS\node_modules(需配置环境变量)。

1.测试forever是否安装成功:执行forever命令,这时会可能会出现:’forever’不是内部或外部命令,也不是可运行的程序或批处理文件。
解决办法:找到NodeJS安装目录,如D:\NodeJS。然后你会发现nodejs模块的启动都是靠一个*.cmd文件启动的,打开npm.cmd文件,这时你会发现如下代码:
这里写图片描述

其实它执行的是node_modules\npm\bin\npm-cli.js这个文件。So,你只需要在D:\NodeJS目录下建一个forever.cmd文件,添加如下内容:这里写图片描述

再次执行forever 命令
这里写图片描述

2. forever命令行的解释:

子命令actions:

start:启动守护进程
stop:停止守护进程
stopall:停止所有的forever进程
restart:重启守护进程
restartall:重启所有的foever进程
list:列表显示forever进程
config:列出所有的用户配置项
set : 设置用户配置项
clear : 清楚用户配置项
logs: 列出所有forever进程的日志
logs <script|index>: 显示最新的日志
columns add : 自定义指标到forever list
columns rm : 删除forever list的指标
columns set: 设置所有的指标到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: 命令行帮助信息

3.forever服务器管理:假定现在有一个NodeJS项目,项目名称为bms,放在F:\WebStromWorkspace目录下。cmd进入到项目目录下,执行forever start app.js 如下:
这里写图片描述

4. 模拟服务器宕机:两种测试方案
1) 在任务管理器中直接kill node进程。
在执行forever start app.js命令后,打开windows任务管理器,可以看到有两个node.exe进程,下图中上面的那个是NodeJS应用进程,另外那个则是NodeJS的守护进程(forever)。
这里写图片描述

这时在任务管理器中kill NodeJS应用进程,可以看到forever会立即重新启动一个NodeJs应用进程(如果先将守护进程kill,再将NodeJs应用进程kill,那么NodeJs应用进程不会重启)。

2) 在NodeJS应用中,模拟异常退出。
修改app.js(也可以是其他文件)文件。应用在启动10秒后抛出错误,模拟程序挂掉。
这里写图片描述

首先通过node命令启动:
这里写图片描述

10秒钟后,由于程序内部错误, node进程挂掉了。

通过forever命令启动:
这里写图片描述

10秒钟后,观察F:\WebStromWorkspace\bms\logs\access.log文件或windows任务管理器可以看到NodeJS应用进程每隔10秒钟,由于程序内部错误而挂掉,然后被forever重启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值