結合 Shell 對 Koa 應用執行環境檢查

2021-09-13 00:25:04 字數 1553 閱讀 7625

在開發環境中,啟動乙個koa 應用服務,通常還需要同時啟動資料庫。比如。mongodb、mysql 等

如果一直開著資料庫服務,在不使用的話,電腦會佔一定的效能。然而如果每次手動去啟動服務,效率又不高。因此如果我們在執行npm run start啟動 koa 應用時,如果可以提前把需要的服務啟動起來,那麼就會效率高很多。

簡單來說就是把我們平時執行的命令寫成指令碼,在啟動時執行即可。

這裡以mongodb 為例說明這個過程。

一、mongodb 啟動指令碼

我們在應用目錄下新建指令碼檔案

/post-process/sh/mongodb.sh

#!/usr/bin/sh

dbpath=$home/documents/database/mongo-db

#start up mongod service

# 這裡把mongodb 服務後台執行,錯誤輸出重定向到 ./logs/mongod.log

mongod --dbpath $ > ./logs/mongod.log &

二、利用child-process執行shell 指令碼

結合nodejs 的child_process模組,寫乙個執行指令碼的方法:

// post-process/index.js

const = require('child_process');

/** * 執行乙個 shell 指令碼

* @param shell

*/const excecshell = (shell) => `, (err, stdout, stderr) => else

})}/**

* 檢查依賴,其實就是執行一系列指令碼

*/const dependencycheck = (shellarray) => else

}module.exports =

三、把檢查過程寫到config.js 中

還可以把我的執行檢查寫道config.js 中:

// config/index.js

const fs = require('fs')

const path = require('path')

let scriptpath = path.resolve(path.join('./post-process/sh'))

// 省略

...config = /mongodb.sh`],}

return config

}

const koa = require('koa')

// 省略...

// 環境檢查指令碼

const prechecktool = require('./post-process')

// 需要檢查的指令碼陣列

prechecktool.dependencycheck(checkscripts)

// ...

python指令碼與shell指令碼的結合應用

獲取命令執行的結果,但是沒有命令的執行狀態,這樣可以將獲取的結果儲存起來放到list中。os.popen 廢棄 popen2.廢棄 commands.廢棄,3.x中被移除 例子 執行命令,返回狀態碼 命令正常執行返回0,報錯則返回1 2 check call 執行命令,如果執行成功則返回狀態碼0,否...

Oracle游標 for loop if結合應用

什麼時候會用到oracle游標,以及其中的for loop if呢?先看這樣乙個需求 有一張學生授課表t teaching,每個學生都有數門課程 主鍵id 自增 課程號course id 學號user id101 201501202 201501303 201501401 201502501 201...

shell與expect結合使用

摘自 在linux作業系統下,使用指令碼自動化,一般由兩種方案,方案一 telnet ftp,方案二 ssh scp expect。以下主要使用ssh scp expect為例進行說明使用方式。第一步 安裝expect yum y install expect 第二步 驗證,執行expect是否正確...