
hexo长期后台运行
前言
使用hexo s启动博客时,它只能挂在前台上。一旦退出terminal,它就无法使用了。使用hexo s &这个命令,期待它可以跑在后台。但是运行不多久就自动停掉了。经过查询最终使用npm管理web的工具—pm2来长久运行服务。
pm2
pm2是一个管理nodejs process的工具,它可以让我们用简单的指令启动nodejs进程(多为web前端)并管理之。 详情可以参考pm2的官方文档,这里只是用到了start/stop/logs几个常用的命令。
使用步骤
npm install -g pm2
进到博客的根目录,新建一个文件:hexo_run.js
//run
const { exec } = require('child_process')
exec('hexo server',(error, stdout, stderr) => {
if(error){
console.log('exec error: ${error}')
return
}
console.log('stdout: ${stdout}');
console.log('stderr: ${stderr}');
})
启动这个进程服务
pm2 start hexo_run.js
就可以使得hexo常驻后台了。
pm2 常用命令
使用 pm2 start 来启动应用,命令启动的应用,默认支持进程守护,并且可以通过 pm2 进行监控
pm2 start server.js
# ------------------------------重启、重载、停止、删除------------------------
# 停止指定应用,如pm2 stop httpServer;
# 也可以执行他目录下得 pm2-start.sh 脚本里面用. pm2-start.sh 执行输入0就可以关闭在执行得脚本
# (app_name|app_id|all)
pm2 stop [options]
# 重启指定应用,如pm2 restart httpServer;
pm2 reload|restart [options]
# 显示指定应用详情,如pm2 show httpServer;
pm2 show [options]
# 删除指定应用,如pm2 delete httpServer,如果修改应用配置行为,最好先删除应用后,重新启动方才生效,如修改脚本入口文件;
pm2 delete [options]
# 重置 restart 的计时器
pm2 reset all
# 杀掉pm2管理的所有进程;
pm2 kill
# 保存并恢复PM2进程
pm2 update
#----------------------------查看运行状态-------------------------
# 查看所有进程信息(app_name、app_id等)
pm2 [list|ls|status]
# 对应用进行排序查看
pm2 list --sort name:desc
# Or
pm2 list --sort [name|id|pid|memory|cpu|status|uptime][:asc|desc]
# 查看某个应用详情
pm2 describe app_name|app_id
# 查看应用详情信息
pm2 show app_name|app_id
# 清除保存的应用列表
pm2 cleardump
# 保存当前应用列表,以后可以恢复
pm2 save # 同 pm2 dump
# 重新加载之前保存的应用列表
pm2 resurrect
#----------------------------list状态参数-------------------------
运行pm2 list的命令后,可以查看所有 pm2 启动的应用
id:应用 id
name:应用名称
namespace:在配置文件里面可以给应用设置 namespace。设置后可以使用命令行单独启动或停止某个 namespace 的应用
mode: 进程的运行方式。分为 fork 与 cluster
pid:进程id
uptime:运行时间
↺:重启次数(从0开始计数)
status:进程是否在线
cpu:cpu占用率
mem:内存占用大小
#----------------------------show状态参数-------------------------
而pm2 show app_name|app_id查看应用详情信息,除了 pm2 list 命令返回的信息以外,还可以获取几个常用信息
script path:启动入口的文件路径
script args:启动文件的参数
error log path:错误日志的文件路径
out log path:输出日志的文件路径
exec mode:进程的模式
watch&reload:是否开启监听文件变动重启
unstable restarts:不稳定的重启次数
#----------------------------日志与监控-------------------------
# 查看指定应用的日志,即标准输出和标准错误;
pm2 logs [options] [id|name|namespace]
pm2 logs
# 还可以直接进入日志保存的目录查看
# 监控各个应用进程cpu和memory使用情况
pm2 monit
# 查看所有命令
pm2 --help
#or
pm2 -h