pm2

pm2

是什么?

github.com/Unitech/pm2

具有内置负载均衡的的Node.js应用进程管理器。

做什么?

使用hexo时,hexo进程总会无辜挂掉(可能是服务器内存不够),所以就需要一个能监控hexo挂掉,就自动重启的小工具。

增删查

$ pm2 start --name hexo /opt/hexo/auto-start-hexo.js
$ delete|del <name|id|namespace|script|all|json|stdin...>
  • 查询
$ pm2 list|ls|l|ps|status
$ pm2 logs
$ pm2 monit
$ pm2 describe <id|app_name>

$ pm2 stop     <app_name|namespace|id|'all'|json_conf>
$ pm2 restart  <app_name|namespace|id|'all'|json_conf>
$ pm2 delete   <app_name|namespace|id|'all'|json_conf>

其他 (自动启动hexo脚本)

var exec = require('child_process').exec;
var cmd = 'cd /opt/hexo/hexoui && nohup hexo s &';

exec(cmd, function(error, stdout, stderr) {

  if(stdout){
      console.log('stdout: ' + stdout);
  }
  if(stderr){
      console.log('stderr: ' + stderr);
  }

  if(error) {
    console.info('start error!', error);
    process.exit(0);
  } else {
    console.info('start hexo-js success!')
    // process.exit(0);
  }
});