一、相關(guān)介紹
1.1 跨平臺設(shè)置使用環(huán)境變量
1.2 應(yīng)用管理
supervisor
一個(gè)客戶端/服務(wù)器系統(tǒng),允許其用戶在類UNIX操作系統(tǒng)上控制許多進(jìn)程
github(star5.2k)node-supervisor
為nodejs開發(fā)的小supervisor,可以運(yùn)行程序并監(jiān)視代碼修改,依次實(shí)現(xiàn)熱加載
github(star3.5k)forever
一個(gè)簡單的CLI工具,確保給定腳本永久運(yùn)行
github(star12k)nodemon
用于開發(fā)中服務(wù)熱加載
github(star17.6k)pm2
github(star28.4k)
具有負(fù)載均衡器的Nodejs 應(yīng)用程序進(jìn)程管理工具(后面重點(diǎn)介紹)一些不太熱門的
node-windows
用于Windows 的nodejs腳本,支持進(jìn)程守護(hù),事件日志,賬戶控制等功能
(node-mac & node-linux)同
二、pm2
優(yōu)點(diǎn)
- 管理,監(jiān)控并保持永久運(yùn)行Node.js 應(yīng)用
- 經(jīng)常接收超過1800次的測試攻擊
- 可以運(yùn)行在Linux 、 macOS 、 Windows平臺
- 支持Node.js 4.X以上的所有版本
- 可以用于Python, Ruby等其他語言的應(yīng)用程序
- 使用簡單
簡單應(yīng)用
首先全局安裝pm2
$ npm install pm2@latest -g
啟動(dòng)應(yīng)用
$ pm2 start app.js
通過配置啟動(dòng)
$ pm2 start process.yml
process.yml(注:yml格式)
apps:
- script : app.js
name : 'app'
instances: 3
exec_mode: cluster
watch: true
其他常用操作具體使用可參考官網(wǎng)文檔
pm2 list
pm2 logs
pm2 start app.js -i max
pm2 restart <id|name>
pm2 show <id|name>
pm2 stop <id|name>
pm2 delete <id|name>
pm2 describe <id|name>
pm2 monit
注:id或name 可替換為all,表所有
開機(jī)自啟動(dòng)
- 保存當(dāng)前進(jìn)程狀態(tài)
$ pm2 save
- 生成開機(jī)自啟動(dòng)腳本
注:自動(dòng)檢測平臺
$ pm2 startup
復(fù)制腳本執(zhí)行
移除啟動(dòng)腳本
$ pm2 unstartup
ps:上述不適合Windows系統(tǒng)
使用其他庫生成自啟動(dòng)腳本
- pm2-windows-service
-
pm2-windows-startup
pm2-windows-startup使用方法
> npm install pm2-windows-startup -g
> pm2-startup install
pm2 將在啟動(dòng)時(shí)恢復(fù)已保存的進(jìn)程
日志分割
-
pm2安裝
pm2 install pm2-logrotate - 配置
max_size文件最大值,默認(rèn)10M
retain循環(huán)數(shù)量,默認(rèn)30
compress是否啟用壓縮,默認(rèn)false
dateFormatYYYY-MM-DD_HH-mm-ss
rotateModule
workerInterval檢查日志大小間隔
rotateInterval
TZ