使用pm2部署Nodejs

最近用node寫了一個小型的項目,項目完成後到了部署的階段,纔開始考慮怎樣才能更好的監控項目。在node的開發過程當中有不少痛點,最讓人忍受不了的就是文件修改後服務的重啓,須要不斷的關閉進程,啓動進程,後來研究了一下,發現能夠用nodemon自動重啓服務,方便了不少,可是項目須要上線的時候,發現nodemon不能後臺運行,因而本身用python寫了一個自動啓停的腳本,能夠實現後臺運行,代碼以下,html

#!/bin/bash
node_status(){
   pids=`ps aux|grep node|grep www|awk '{print $2}'`
   if [ ${pids} ]
    then
        return 1
    else
        return 2
    fi
}
node_start(){
    node_status
    if [ $? == 2 ]
    then
            nohup node /home/web/claire/bin/www >> /tmp/node/shell.log 2>&1 &
    fi
}
node_stop(){
    node_status
    if [ $? == 1 ]
    then
            kill -9 ${pids} >> /tmp/node/shell.log 2>&1
    fi
}
node_restart(){
    node_stop
    sleep 5
    node_start
}
node_defend(){
    while true
    do
    node_status
    if [ $? == 2 ]
    then
            node_start
    fi
    sleep 5
    done
}
ACTION=$1
case $ACTION in
    start)
            node_start
    ;;
    stop)
            node_stop
    ;;
    restart)
            node_restart
    ;;
    defend)
            node_defend
    ;;

寫python腳本的時候,若是用編輯器,須要將編碼格式轉成unix格式,要不會報錯,我用的nodepad++,修改方式爲右鍵點擊選擇unix格式便可。
圖片描述node

後來發現Nodejs有一個高大上的管理工具PM2,是能夠用於生產環境的Nodejs的進程管理工具,而且它內置一個負載均衡。它不只能夠保證服務不會中斷一直在線,而且提供0秒reload功能,還有其餘一系列進程管理、監控功能。而且使用起來很是簡單,趕快上手試試吧。python

Nodejs安裝

以前nodejs安裝,是去官方網站上下載安裝包而後安裝的,在使用pm2的過程當中,瞭解到,nvm利器,能夠方便切換nodejs版本,推薦用這個方法安裝node。
刪除以前安裝的node,查詢全局安裝的模塊而後刪除git

npm list -g --depth 0

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

執行curl過程當中報錯curl: (35) SSL connect error,執行github

yum update nss

最後執行web

source ~/.bashrc
nvm--version             //查看nvm是否安裝成功
nvm install stable       //安裝最新穩定版本

PM2安裝

安裝環境shell

  • Linux x86_64
  • node v10.8.0
  • npm 6.2.0

全局安裝npm

npm install pm2 -g

安裝成功後可直接啓動bash

pm2 start bin/www

圖片描述

pm2參考地址: https://www.cnblogs.com/zzsdr...
相關文章
相關標籤/搜索