最近用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安裝,是去官方網站上下載安裝包而後安裝的,在使用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 //安裝最新穩定版本
安裝環境shell
全局安裝npm
npm install pm2 -g
安裝成功後可直接啓動bash
pm2 start bin/www
pm2參考地址: https://www.cnblogs.com/zzsdr...