前言
对比wordpress这种重型博客系统,静态博客相对轻量。所以我也试着去搭了一个玩。
此处我选定的是hexo这个博客系统,它是用nodejs写成的,可使用npm进行管理。
故障
在使用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常驻后台了。
关于nodejs的模块管理
如果对nodejs不熟的小伙伴,可能会发现pm2并没有全局安装。具体原因我也不太清楚,因为我们的确使用的是npm的全局安装,但事实可能完不成。
这时我们需要做链接,将安装在nodejs的node_modules模块包中的pm2放到全局PATH路径下。
这时,我们可以先找到npm的安装路径:
npm config get prefix
然后进入nodejs的bin目录下,将其链接到全局PATH路径(以我个人为例,我的路径是/usr/local/nodejs)
cd /usr/local/nodejs/bin
ln -s /usr/local/nodejs/bin/pm2 /usr/bin/pm2
即可使得pm2全局化了。
About me: 资深大猪蹄子