『壹』 linux如何後台運行node服務
在你的任意目錄輸入命令: npm install pm2 -g
1.找到全局環境PATH路徑
輸入命令: echo $PATH
回車後: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
你的路徑和我的可能不一樣,但沒關系,你可以選擇任何一個以:隔開的路徑做為系統環境路徑,我通常會選 /usr/local/bin
2:找到pm2的安裝路徑
在上面輸入 npm install pm2 -g 全局安裝時
/usr/sbin/nodejs/bin/pm2 -> /usr/sbin/nodejs/lib/node_moles/pm2/bin/pm2
/usr/sbin/nodejs/bin/pm2 是安裝路徑(你的可能和我的不一樣)
3.好了都找到了,
就重要的一步要開始了,睜大你的雙眼。
命令為: ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ (注意空格)
格式: ln -s 空格 pm2安裝路徑 空格 系統環境路徑
OK,搞定,接下來驗證一把…
[root@iZmwyb7v60px1zZ ~]# pm2 list
回車...
$ pm2 start app.js # 啟動app.js應用程序
$ pm2 start app.js –name=」api」 # 啟動應用程序並命名為 「api」
$ pm2 start app.js –watch # 當文件變化時自動重啟應用
$ pm2 start script.sh # 啟動 bash 腳本
$ pm2 list # 列表 PM2 啟動的所有的應用程序
$ pm2 monit # 顯示每個應用程序的CPU和內存佔用情況
$ pm2 show [app-name] # 顯示應用程序的所有信息
$ pm2 logs # 顯示所有應用程序的日誌
$ pm2 logs [app-name] # 顯示指定應用程序的日誌
$ pm2 stop all # 停止所有的應用程序
$ pm2 stop 0 # 停止 id為 0的指定應用程序
$ pm2 restart all # 重啟所有應用
$ pm2 reload all # 重啟 cluster mode下的所有應用
$ pm2 gracefulReload all # Graceful reload all apps in cluster mode
$ pm2 delete all # 關閉並刪除所有應用
$ pm2 delete 0 # 刪除指定應用 id 0
$ pm2 scale api 10 # 把名字叫api的應用擴展到10個實例
$ pm2 reset [app-name] # 重置重啟數量
$ pm2 startup # 創建開機自啟動命令
$ pm2 save # 保存當前應用列表
$ pm2 resurrect # 重新載入保存的應用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file
『貳』 如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 應用
pm2 是一個 Node.js 應用的進程管理器,它可以讓你的應用程序保持運行,還有一個內建的負載均衡器。它非常簡單而且強大,你可以零間斷重啟或重新載入你的 node 應用,它也允許你為你的 node 應用創建集群。
在這篇博文中,我會向你展示如何安裝和配置 pm2 用於這個簡單的 'Express' 應用,然後配置 Nginx 作為運行在 pm2 下的 node 應用的反向代理。
前提:
Ubuntu 16.04 - 64bit
Root 許可權
第一步 - 安裝 Node.js LTS
在這篇指南中,我們會從零開始我們的實驗。首先,我們需要在伺服器上安裝 Node.js。我會使用 Nodejs LTS 6.x 版本,它能從 nodesource 倉庫中安裝。
從 Ubuntu 倉庫安裝python-software-properties軟體包並添加 「nodesource」 Nodejs 倉庫。
sudo apt-get install -y python-software-properties
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
安裝最新版本的 Nodejs LTS:
sudo apt-get install -y nodejs
安裝完成後,查看 node 和 npm 版本。
node -v
npm -v
nodejs 在 pm2 下開機自啟動
Node 應用在 pm2 中運行並使用 Nginx 作為反向代理。
『叄』 伺服器部署nodejs的幾種方法
由於自身特性的原因。node程序必須保持開啟才能訪問網站,而當我們關閉時這些進程都會被停止。有以下3種方法可以避免這個問題。
screen
Screen,虛擬終端管理器。可以在後台管理終端界面,防止SSH斷開以後任務停止運行。
安裝方法:
sudo apt-get screen(以ubuntu為例)
使用方法:
使用screen -S [任意id]命令進入一個名為id的終端,此時便可以隨意執行操作
例如執行sudo apt-get upgrade,或者其它消耗時間比較長的工作,像編譯內核等等。
按ctrl+a後再按d保存虛擬終端,系統提示deatached即為保存成功
接下來可以斷開SSH終端,虛擬終端仍會執行。
訪問已經創建好的終端
screen -ls列出已經創建的正在後台運行的終端
screen -r xxx進入終端
例如 screen -r terminal1
徹底退出
screen -r進入終端後執行exit即可完全退出
PM2
pm2 是一個帶有負載均衡功能的Node應用的進程管理器.當你要把你的獨立代碼利用全部的伺服器上的所有CPU,並保證進程永遠都活著
安裝方法
npm install -g pm2
使用方法
啟動應用pm2 start -watch app.js
重啟應用pm2 restart app.js
顯示進程列表pm2 list
停止某應用pm2 stop app_name|app_id
停止所有應用pm2 stop all
小白方案
個人目前用的是寶塔Linux面板,可以說是把Linux的各種操作都已比較簡單的形式展現出來了,不需要什麼Linux知識就能掌握寶塔官網了解一下
『肆』 heapUsed正常,但是rss不斷漲,這是我自己的問題,還是nodejs的bug
信息太少了呀... pomelo沒用過, sorry....
不過感覺頻繁而大量的內存請求和回收可能造成類似的現象耶....
似乎內這個工具容可以比較實時的檢測, 而且用起來很簡單就是啟動命令換一下pm start app.js
之後pm2 monit實時監控試試吧
『伍』 如何讓nodejs在linux後台運行
加入 主文件是 index.js
那麼可以用的方法有:
1.用forever 進行管理版
npm install -g forever
forever start index.js
2. 用自帶的服務權nohub
nohup node index.js > myLog.log 2>&1 &