通过forever来管理nodejs程序,对nodejs的运行进行检测,常用的就是后台运行nodejs程序和nodejs程序崩溃重启。

什么是forever

A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
即一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具。

forever可以帮助我们更好的管理Node服务,原理就是在forever进程之下,创建一个Node程序的子进程。它还有一点就是在我们每次修改程序源代码时,它都可以自动重启服务而不需要手动重启。

安装forever

记得加入-g全局参数

1
npm install forever -g

命令示例

启动程序

1
forever start app.js

启动程序并指定日志文件

1
2
3
4
5
forever start -l forever.log -o app_debug.log -e app_error.log app.js

# -l 表示forever自身输出的日志文件
# -o 表示app.js输出的非错误日志文件(console.log)
# -e 表示app.js输出的错误日志文件(console.error)

监听程序改动

1
2
3
forever start -w app.js

# 监听程序改动,并自动重启服务

列出正在运行的程序

1
forever list

终止程序

1
2
3
4
5
# 通过程序名终止程序
forever stop app.js

# 通过程序ID终止程序
forever stop [id]

重启所有服务

1
forever restartall

启动示例

1
2
3
4
5
6
7
8
9
10
11
forever start -a -l /root/wallet/log/server_forever.log -o /root/wallet/log/server_debug.log -e /root/wallet/log/server_error.log server.js

forever start -a -l /root/wallet/log/deposit_forever.log -o /root/wallet/log/deposit_debug.log -e /root/wallet/log/deposit_error.log deposit.js

forever start -a -l /root/wallet/log/notify_forever.log -o /root/wallet/log/notify_debug.log -e /root/wallet/log/notify_error.log notify.js

forever start -a -l /root/wallet/log/withdraw_forever.log -o /root/wallet/log/withdraw_debug.log -e /root/wallet/log/withdraw_error.log withdraw.js

forever start -a -l /root/wallet/log/confirm_forever.log -o /root/wallet/log/confirm_debug.log -e /root/wallet/log/confirm_error.log confirm.js

forever start -a -l /root/wallet/log/move_forever.log -o /root/wallet/log/move_debug.log -e /root/wallet/log/move_error.log move.js