一、node安裝
軟件地址:https://nodejs.org/en/download/
#1、下載軟件包 [root@node ~]# mkdir /app [root@node ~]# cd /app/ [root@node app]# wget https://nodejs.org/dist/v12.13.1/node-v12.13.1-linux-x64.tar.xz [root@node app]# ll total 13740 -rw-r--r-- 1 root root 14067172 Nov 19 16:39 node-v12.13.1-linux-x64.tar.xz #2.解壓縮 [root@node app]# tar xf node-v12.13.1-linux-x64.tar.xz -C /usr/local/ [root@node app]# cd /usr/local/ [root@node local]# ls bin etc games include lib lib64 libexec node-v12.13.1-linux-x64 sbin share src [root@node local]# mv node-v12.13.1-linux-x64/ node [root@node local]# ls bin etc games include lib lib64 libexec node sbin share src #3、配置環境變量 [root@node local]# vim /etc/profile export PATH=/usr/local/node/bin:$PATH [root@node local]# source /etc/profile #4、查看是否安裝成功 [root@node local]# node -v v12.13.1
二、pm2安裝及使用
2.1、簡介
1)PM2是node進程管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監控、自動重啟、負載均衡等,而且使用非常簡單。
2)PM2的運行需要Node 環境和Npm的支持
2.2、安裝
[root@node local]# npm install -g pm2 /usr/local/node/bin/pm2 -> /usr/local/node/lib/node_modules/pm2/bin/pm2 /usr/local/node/bin/pm2-dev -> /usr/local/node/lib/node_modules/pm2/bin/pm2-dev /usr/local/node/bin/pm2-docker -> /usr/local/node/lib/node_modules/pm2/bin/pm2-docker /usr/local/node/bin/pm2-runtime -> /usr/local/node/lib/node_modules/pm2/bin/pm2-runtime npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/pm2/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) + pm2@4.2.0 added 206 packages from 202 contributors in 48.781s #如果存在網絡問題,可以參考如下文章 https://cnodejs.org/topic/4f9904f9407edba21468f31e
2.3、常用命令
#從svn拉取測試代碼 [root@node ~]# svn checkout svn://admin@xx.xx.xx.xx/dc_h5_20180606/dc_h5 [root@node ~]# ll drwxr-xr-x 14 root root 4096 Dec 6 14:12 dc_h5 #生成module [root@node dc_h5]# npm install [root@node dc_h5]# npm run build #啟動 [root@node dc_h5]# pm2 start pm2.config.json --env 83 [PM2][WARN] Applications dc_h5 not running, starting... [PM2] App [dc_h5] launched (2 instances) ┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ dc_h5 │ default │ 2.4.3 │ cluster │ 125235 │ 0s │ 0 │ online │ 0% │ 20.9mb │ root │ disabled │ │ 1 │ dc_h5 │ default │ 2.4.3 │ cluster │ 125242 │ 0s │ 0 │ online │ 0% │ 17.1mb │ root │ disabled │ └─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘ [root@node dc_h5]# pm2 status ┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ dc_h5 │ default │ 2.4.3 │ cluster │ 125235 │ 22s │ 0 │ online │ 0% │ 90.1mb │ root │ disabled │ │ 1 │ dc_h5 │ default │ 2.4.3 │ cluster │ 125242 │ 22s │ 0 │ online │ 0% │ 87.6mb │ root │ disabled │ └─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
其他常用命令:
pm2 list #查看所用已啟動項目 pm2 restart XXX #重啟 pm2 stop XXX #停止 pm2 delete XXX #刪除 pm2 monit #監視每個node進程的CPU和內存的使用情況 pm2 logs #顯示所有進程日志 pm2 stop all #停止所有進程 pm2 restart all #重啟所有進程 pm2 reload all #0秒停機重載進程 (用於 NETWORKED 進程) pm2 stop 0 #停止指定的進程 pm2 restart 0 #重啟指定的進程 pm2 startup #產生 init 腳本 保持進程活着 pm2 web #運行健壯的 computer API endpoint (http://localhost:9615) pm2 delete 0 #殺死指定的進程 pm2 delete all #殺死全部進程 運行進程的不同方式: pm2 start app.js -i max #根據有效CPU數目啟動最大進程數目 pm2 start app.js -i 3 #啟動3個進程 pm2 start app.js -x #用fork模式啟動 app.js 而不是使用 cluster pm2 start app.js -x -- -a 23 #用fork模式啟動 app.js 並且傳遞參數 (-a 23) pm2 start app.js --name serverone #啟動一個進程並把它命名為 serverone pm2 stop serverone #停止 serverone 進程 pm2 start app.json #啟動進程, 在 app.json里設置選項 pm2 start app.js -i max -- -a 23 #在--之后給 app.js 傳遞參數 pm2 start app.js -i max -e err.log -o out.log #啟動並生成一個配置文件
參考文檔: