亚洲成A人片在线观看网站_成年网站免费视频A在线双飞_日日日日做夜夜夜夜无码_久久夜色撩人精品国产小说

PM2 備忘清單

是一個守護進程管理器,它(ta)將幫(bang)助(zhu)您管理和保持您的應用程序(xu)在線(xian)。PM2 入門非常簡(jian)單(dan),它(ta)以簡(jian)單(dan)直(zhi)觀的 CLI 形式提供

入門

安裝

最(zui)新的 PM2 版(ban)本可(ke)通過 NPM 或 Yarn 安裝

$ npm install pm2@latest -g

或者

$ yarn global add pm2

啟動應用程序

啟(qi)動、守(shou)護進程(cheng)(cheng)和(he)監視應用程(cheng)(cheng)序的最簡單(dan)方(fang)法是使用此(ci)命令(ling)行

$ pm2 start app.js

或者輕松啟動任(ren)何其他應用程序

$ pm2 start bashscript.sh
$ pm2 start python-app.py --watch
$ pm2 start binary-file -- --port 1520

您可以傳遞給 CLI 的一些選項

指定應用名稱

--name <app_name>

文件更改時監視并(bing)重新啟動(dong)應用程序(xu)

--watch

設(she)置應用重新加(jia)載的(de)內存閾值(zhi)

--max-memory-restart <200MB>

指定日志文件

--log <log_path>

將額外的參數傳遞(di)給腳本

-- arg1 arg2 arg3

自動重啟之間的延遲

--restart-delay <delay in ms>

帶時間的前綴日志

--time

不要自動重啟應用程序

--no-autorestart

指定 cron 強制(zhi)重啟

--cron <cron_pattern>

附加到應用程序日志

--no-daemon

管理流程

管(guan)理應用程序狀態很簡單,這里是(shi)命令

$ pm2 restart app_name
$ pm2 reload app_name
$ pm2 stop app_name
$ pm2 delete app_name

你可以傳遞而不是 app_name

  • all 作用于所有進程
  • id 作用于特定的進程 ID

檢查狀態、日志、指標

現在您(nin)已(yi)經啟動了這個應用程(cheng)序(xu),您(nin)可以檢查它的狀態、日志、指標,甚至可以使用 獲取在線儀(yi)表板

列出PM2管理的所(suo)有應用的狀態

$ pm2 [list|ls|status]

實時顯示日志

$ pm2 logs

挖掘舊日志

$ pm2 logs --lines 200

這是一個直接適合您的終(zhong)端的實(shi)時儀(yi)表板

$ pm2 monit

基(ji)于 Web 的儀(yi)表板(ban),具(ju)有(you)診斷系統的跨服務(wu)器

$ pm2 plus

集群模式

對于 Node.js 應用程(cheng)序,PM2 包(bao)括一個自動(dong)負載均衡器,它將在每個衍生進程(cheng)之(zhi)間(jian)共享所有 HTTP[s]/Websocket/TCP/UDP 連接(jie)

以集群模(mo)式啟(qi)動應用(yong)程序

$ pm2 start app.js -i max

在(zai) 閱讀有關集(ji)群模式的更多信息

生態系統文件

您還可以創建一個(ge)稱為生態(tai)系(xi)(xi)統(tong)文件的配置文件來管理多個(ge)應(ying)用程序。生成生態(tai)系(xi)(xi)統(tong)文件

$ pm2 ecosystem

這將生成一個 ecosystem.config.js 文件

module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }, {
     name: 'worker',
     script: 'worker.js'
  }]
}

并輕松啟動

$ pm2 start ecosystem.config.js

在(zai) 閱讀有關應用程序聲明的更多信息

設置啟動腳本

使用您在服務器(qi)啟動/重(zhong)新(xin)啟動時(shi)管理的(de)進程重(zhong)新(xin)啟動 PM2 至關重(zhong)要。為了解決這個問題,只(zhi)需運行這個命令(ling)來生成一個活動的(de)啟動腳(jiao)本

$ pm2 save

在 閱讀有關啟(qi)動(dong)腳本(ben)生成器的更多(duo)信息

重新啟動應用程序更改

使用 --watch 選項非常簡單

$ cd /path/to/my/app
$ pm2 start env.js --watch --ignore-watch="node_modules"

這將在當前目錄 + 所有子文件夾中的任何文件更改時監視并重新啟動應用程序,并且它將忽略 node_modules 文件夾中的任何更改 --ignore-watch="node_modules"

$ pm2 logs

然后,您可以(yi)使用(yong)上面命令來檢查重新啟動(dong)的應用(yong)程序日志。

PM2 CheatSheet

以下(xia)是一些值得(de)了解的命(ming)令。 只需使用示例(li)應用程序或(huo)開(kai)發機器(qi)上當前的 Web 應用程序來(lai)嘗試它(ta)們

PM2 分叉模式

$ pm2 start app.js --name my-api # 名稱進(jin)程

PM2 集群模式

$ pm2 start app.js -i 0     # 將根據可用(yong)的 CPU 使用(yong) LB 啟(qi)動最大(da)進程(cheng)
$ pm2 start app.js -i max   # 與(yu)上面相同,但(dan)已(yi)棄用。
$ pm2 scale app +3          # 將 `app` 增加 3 名工人
$ pm2 scale app 2           # 將 `app` 向上(shang)或向下擴展(zhan)到總(zong)共 2 個工(gong)人

PM2 清單

$ pm2 list        # 顯(xian)示所有進(jin)程狀態
$ pm2 jlist       # 以原始 JSON 格(ge)式打印(yin)進(jin)程列表
$ pm2 prettylist  # 以美化JSON打印進(jin)程列表
$ pm2 describe 0  # 顯示(shi)有關特定(ding)進程的(de)所有信息(xi)
$ pm2 monit       # 監控所(suo)有進程

PM2 日志

$ pm2 logs [--raw]  # 在(zai)流中顯示所有進程(cheng)日(ri)志
$ pm2 flush         # 清(qing)空所有日志文件
$ pm2 reloadLogs    # 重(zhong)新加(jia)載所(suo)有日(ri)志

PM2 動作

$ pm2 stop all     # 停止(zhi)所有進(jin)程
$ pm2 restart all  # 重(zhong)啟所有進程
$ pm2 reload all   # 將 0s 停機(ji)時間(jian)重(zhong)新加(jia)載(對(dui)于 NETWORKED 應用程序)
$ pm2 stop 0       # 停止特定(ding)進程 ID
$ pm2 restart 0    # 重啟特定進程(cheng)id
$ pm2 delete 0     # 將從 pm2 列表(biao)中刪(shan)除進程
$ pm2 delete all   # 將從 pm2 列表中刪除所有進程(cheng)

PM2 雜項

$ pm2 reset <process>    # 重(zhong)置元數據(ju)(重(zhong)啟時間...)
$ pm2 updatePM2          # 更新內存 pm2
$ pm2 ping               # 確保 pm2 守護(hu)進程已經(jing)啟動(dong)
$ pm2 sendSignal SIGUSR2 my-app # 向腳本發(fa)送系統信號
$ pm2 start app.js --no-daemon
$ pm2 start app.js --no-vizion
$ pm2 start app.js --no-autorestart

更新 PM2

我(wo)們讓它變得簡單(dan),版本之間沒有重大變化,過程很(hen)簡單(dan)

$ npm install pm2@latest -g

然后更新內存中的PM2

$ pm2 update

另見

  • (pm2.keymetrics.io)