forever是nodejs的模块。主要监听node进程是否存活,如果进程不存在,自动重启

安装

1
2
3
4
5

npm install forever -g
npm install forever-monitor

执行 forever --help 可以查看帮助文档

编写脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var spawn = require('child_process').spawn;
free = spawn('node', ['/opt/tmp/test/node_modules/bin/my-yapi/vendors/server/app.js']);

free.stdout.on('data', function (data) {
console.log('standard output:\n' + data);
});

free.stderr.on('data', function (data) {
console.log('standard error output:\n' + data);
});

free.on('exit', function (code, signal) {
console.log('child process eixt ,exit:' + code);
});

基础命令

1
2
3
4
5
6
7
8
9
$ sudo npm install forever -g   #安装
$ forever start app.js #启动
$ forever stop app.js #关闭
$ forever start -l forever.log -o out.log -e err.log app.js #输出日志和错误


forever --minUptime 10000 --spinSleepTime 26000 start app.js

## minUptime、spinSleepTime可填可不填,不填默认也会有,参数的意思可以直接去forever上查询。

验证

   - 检查forever是否监控进程( forever list )
   - 查看hexo进程号
   - kill 掉Hexo进程( kill -9 pid )
   - 重新查看hexo进程号
  如果两次的pid不一样,表示hexo进程不存在时,会自动重启、