forever介绍
forever是一个nodejs守护进程,完全由命令行操控。forever会监控nodejs服务,并在服务挂掉后进行重启。
forever安装
npm install -g forever
forever使用
forever start index.js //index.js是你要启动的js文件
forever list //会列出forever正在运行的服务脚本
forever stop index.js //停止服务运行
查看帮助信息:
forever --help
forever使用说明
// 1. 简单的启动forever start app.js// 2. 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.logforever 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默认是不能覆盖上次的启动日志,// 所以如果第二次启动不加-a,则会不让运行forever start -l forever.log -a app.js// 5. 监听当前文件夹下的所有文件改动forever start -w app.js
forever list
// 1. 监听当前文件夹下的所有文件改动(不太建议这样) forever start -w app.js
// 1. 停止所有运行的node App forever stopall // 2. 停止其中一个node App forever stop app.js // 当然还可以这样 // forever list 找到对应的id,然后: forever stop [id]
重启操作跟停止操作保持一致。
// 1. 启动所有forever restartall
开发和线上建议配置
// 开发环境下NODE_ENV=development forever start -l forever.log -e err.log -a app.js// 线上环境下NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
上面加上NODE_ENV为了让app.js辨认当前是什么环境用的。不加它可能就不知道哦?
这个时候需要注意配置好环境变量。
SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
我们要让Forever自动运行,先在/etc/init.d目录创建一个文件node,内容如下:
stop)
forever stop --pidFile $PID $DEAMON ;;
stopall)
forever stopall --pidFile $PID ;;
restartall)
forever restartall --pidFile $PID ;;
reload|restart)
forever restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $DEAMON ;;
list)
forever list
;;
*)
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
exit 1
;;esacexit 0