hexo 長期后台運行


前言

對比wordpress這種重型博客系統,靜態博客相對輕量。所以我也試着去搭了一個玩。

此處我選定的是hexo這個博客系統,它是用nodejs寫成的,可使用npm進行管理。

故障

在使用hexo s啟動博客時,它只能掛在前台上。一旦退出terminal,它就無法使用了。

這時我就使用了hexo s &這個命令,期待它可以跑在后台。但是也失敗了。

於是,我就想起了npm管理web的工具—pm2。

pm2

pm2是一個管理nodejs process的工具,它可以讓我們用簡單的指令啟動nodejs進程(多為web前端)並管理之。
詳情可以參考pm2的官方文檔,這里只是用到了start/stop/logs幾個常用的命令。

pm2官方文檔

使用步驟

  1. 首先,我們需要安裝它。
npm install -g pm2
  1. 進到博客的根目錄,新建一個文件: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}');
})
  1. 啟動這個進程服務
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全局化了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM