告别Node.js服务崩溃:forever命令全方位指南

告别Node.js服务崩溃:forever命令全方位指南

【免费下载链接】forever A simple CLI tool for ensuring that a given script runs continuously (i.e. forever) 【免费下载链接】forever 项目地址: https://gitcode.com/gh_mirrors/fo/forever

你还在为Node.js应用意外崩溃烦恼吗?还在手动重启服务浪费时间吗?本文将带你掌握forever命令的所有核心用法,让你的Node.js服务7×24小时稳定运行,从此告别半夜起床修复服务的痛苦经历。读完本文后,你将能够:快速启动/停止服务、配置日志管理、监控进程状态、处理异常重启等实用技能。

什么是forever

forever是一个简单的命令行工具(CLI),用于确保给定的脚本持续运行(即"永远")。它可以将Node.js应用程序作为守护进程(Daemon)运行,并在应用崩溃时自动重启,是Node.js服务部署的必备工具。项目核心代码位于lib/forever.js,命令行处理逻辑在lib/forever/cli.js中实现。

安装forever

在开始使用前,需要先安装forever。通过npm(Node.js包管理器)可以轻松安装:

npm install -g forever

核心命令速览

forever提供了丰富的命令集,以下是最常用的几个核心命令:

命令功能描述
forever start以守护进程方式启动脚本
forever stop停止指定的forever进程
forever stopall停止所有forever进程
forever restart重启指定的forever进程
forever list列出所有运行中的forever进程
forever logs查看日志文件或实时日志流

命令工作流程

mermaid

常用场景实战

1. 基本启动命令

以守护进程方式启动Node.js应用:

forever start app.js

如果你需要指定日志文件位置,可以使用:

forever start -l forever.log -o out.log -e err.log app.js

其中:

  • -l 指定forever自身的日志文件
  • -o 指定应用程序标准输出日志文件
  • -e 指定应用程序错误输出日志文件

2. 进程管理

查看当前运行的所有forever进程:

forever list

停止指定进程(可以通过进程ID、名称或脚本路径):

forever stop app.js
# 或者使用进程ID
forever stop 12345

停止所有forever进程:

forever stopall

3. 高级配置选项

forever提供了丰富的配置选项,以满足不同场景需求:

设置进程唯一标识(uid),便于管理多个实例:

forever start --uid "api-server" app.js
# 之后可以通过uid停止进程
forever stop api-server

限制应用重启次数(防止无限重启):

forever start -m 5 app.js  # 最多重启5次

监控文件变化,自动重启应用(开发环境常用):

forever start -w app.js

设置最小运行时间和重启间隔(防止频繁重启):

forever start --minUptime 1000 --spinSleepTime 5000 app.js

上述命令表示:如果应用运行时间少于1000毫秒(1秒)就崩溃,则视为"自旋"状态,此时forever会等待5000毫秒(5秒)后再重启。

4. 日志管理

查看所有日志文件位置:

forever logs

实时查看指定日志(类似tail -f):

forever logs app.js -f
# 或者查看最近10行日志
forever logs app.js -n 10

清理历史日志文件(谨慎使用):

forever cleanlogs

5. 配置文件启动

对于复杂的配置,可以使用JSON配置文件来管理。创建一个配置文件server.json

{
  "script": "app.js",
  "uid": "my-app",
  "logFile": "logs/forever.log",
  "outFile": "logs/out.log",
  "errFile": "logs/err.log",
  "watch": true,
  "minUptime": 1000,
  "spinSleepTime": 5000
}

然后使用配置文件启动:

forever start server.json

项目测试目录中提供了配置文件示例,如test/fixtures/server.jsontest/fixtures/servers.json

高级功能

自定义列显示

forever list命令可以自定义显示的列,满足不同的监控需求:

# 添加"uptime"列
forever columns add uptime

# 移除"pid"列
forever columns rm pid

# 重置为默认列
forever columns reset

支持的列包括:'uid'、'command'、'script'、'forever'、'pid'、'id'、'logfile'、'uptime'。

配置管理

查看当前forever配置:

forever config

设置全局配置(如日志文件路径):

forever set root /var/log/forever

清除配置项:

forever clear root

常见问题解决

问题1:应用启动后立即退出

这通常是因为应用存在错误或依赖问题。可以先直接运行应用查看错误:

node app.js

解决错误后再使用forever启动。如果需要查看forever的调试信息,可以使用:

forever start -d -v app.js

问题2:无法停止forever进程

如果使用forever stop命令无法停止进程,可以尝试通过PID直接停止:

# 先找到进程PID
forever list
# 然后使用PID停止
forever stop 12345

如果仍然无法停止,可以使用系统命令:

kill -9 12345

问题3:日志文件过大

可以通过日志轮转工具(如logrotate)配合forever使用,或者在启动命令中使用--append选项:

forever start -a -l forever.log app.js

-a选项表示追加日志而不是覆盖,结合logrotate可以有效管理日志文件大小。

总结

forever是Node.js应用部署的强大工具,通过本文介绍的命令和配置选项,你可以轻松实现应用的持续运行和可靠管理。无论是开发环境还是生产环境,forever都能为你的Node.js服务提供稳定保障。

主要命令回顾:

  • forever start:启动服务
  • forever stop:停止服务
  • forever list:查看进程列表
  • forever logs:管理日志
  • forever restart:重启服务

通过合理配置forever,你可以显著提高Node.js应用的可用性和稳定性,减少人工干预,让服务真正"永远"运行。

提示:更多详细的命令选项,可以通过forever --help查看,或参考项目源代码lib/forever/cli.js中的完整定义。

【免费下载链接】forever A simple CLI tool for ensuring that a given script runs continuously (i.e. forever) 【免费下载链接】forever 项目地址: https://gitcode.com/gh_mirrors/fo/forever

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值