Nodejs linux環境下啓動運行腳本

linux上部署Nodesjs服務,通常需要一些必要的工具,如node、pm2。線上運行需要預先檢查好這些工具然後運行服務。下面以一個簡單例子介紹基本流程,其它語言項目思路都是類似的。

以前以centos爲例,通過pm2 cluster模式部署node,首先需要檢查node安裝情況。

node安裝檢查

echo 'start to check node env:'
   if ! type node 2>/dev/null || [[ `node -v` != 'v9.5.0' ]] ; then
     echo 'node 環境不匹配,開始構建:'
     curl -Ls -o- nvm地址 | bash
     source ~/.bashrc
     nvm install v9.5.0
     nvm alias default v9.5.0
   fi
echo ‘end'

通過type命令檢查node是否安裝,並檢查版本。type node 會返回命令類型,如果不存在則會產生錯誤輸出,此時將錯誤重定向到/dev/null。如果檢測到存在該命令,那麼返回類型。當出錯時! type node 2>/dev/null 返回false。

當檢測到node未安裝,則下載nvm,並通過nvm安裝指定版本的node。

安裝依賴

安裝相關依賴

echo 'npm install'
npm i --registry=地址 --production
echo 'success'

pm2的安裝檢查

同理檢查pm2與node的檢查方式類型,不存在則先進行安裝。

echo 'check pm2'
   if ! type pm2 2>/dev/null || [[ `pm2 -v` != '2.1.5' ]] ; then
      echo '全局下不存在 pm2 開始,開始安裝 pm2:'
     npm install pm2@2.1.5 -g --registry=倉庫地址
     echo 'success!'
   fi
echo '檢查全局 pm2 完成'

通過pm2啓動項目

採用 –no-daemon 模式啓動防止與 daemontools 可能在部署中可能產生的錯誤。
檢查 pm2;需要注意的是,執行 pm2 -v 命令也會實例化 God Daemon

echo 'pm2 startOrGracefulReload..'
pm2 kill
exec pm2 startOrGracefulReload process.json --only travelCisSpiderScriptEngine --no-daemon
echo 'success'

上述4部分組成在一起最終構成node啓動運行腳本,同理其它語言的啓動服務都是類似的。確定一個服務啓動需要哪些東西,按步驟完成即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章