国产成人精品999视频&日本一区二区亚洲人妻精品&久久久精品国产99久久精&99热这里只有成人精品国产&精品国产剧情av一区二区&成人亚洲精品久久久久app&国产精品美女高潮抽搐A片

PM2 備忘清單

NPM version Downloads Repo Dependents Github repo

PM2 是一個守護(hù)進(jìn)程管理器,它將幫助您管理和保持您的應(yīng)用程序在線。PM2 入門非常簡單,它以簡單直觀的 CLI 形式提供

入門

安裝

最新的 PM2 版本可通過 NPM 或 Yarn 安裝

$ npm install pm2@latest -g

或者

$ yarn global add pm2

啟動應(yīng)用程序

啟動、守護(hù)進(jìn)程和監(jiān)視應(yīng)用程序的最簡單方法是使用此命令行

$ pm2 start app.js

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

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

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

指定應(yīng)用名稱

--name <app_name>

文件更改時監(jiān)視并重新啟動應(yīng)用程序

--watch

設(shè)置應(yīng)用重新加載的內(nèi)存閾值

--max-memory-restart <200MB>

指定日志文件

--log <log_path>

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

-- arg1 arg2 arg3

自動重啟之間的延遲

--restart-delay <delay in ms>

帶時間的前綴日志

--time

不要自動重啟應(yīng)用程序

--no-autorestart

指定 cron 強制重啟

--cron <cron_pattern>

附加到應(yīng)用程序日志

--no-daemon

管理流程

管理應(yīng)用程序狀態(tài)很簡單,這里是命令

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

你可以傳遞而不是 app_name

  • all 作用于所有進(jìn)程
  • id 作用于特定的進(jìn)程 ID

檢查狀態(tài)、日志、指標(biāo)

現(xiàn)在您已經(jīng)啟動了這個應(yīng)用程序,您可以檢查它的狀態(tài)、日志、指標(biāo),甚至可以使用 pm2.io 獲取在線儀表板

列出PM2管理的所有應(yīng)用的狀態(tài)

$ pm2 [list|ls|status]

實時顯示日志

$ pm2 logs

挖掘舊日志

$ pm2 logs --lines 200

這是一個直接適合您的終端的實時儀表板

$ pm2 monit

基于 Web 的儀表板,具有診斷系統(tǒng)的跨服務(wù)器

$ pm2 plus

集群模式

對于 Node.js 應(yīng)用程序,PM2 包括一個自動負(fù)載均衡器,它將在每個衍生進(jìn)程之間共享所有 HTTP[s]/Websocket/TCP/UDP 連接

以集群模式啟動應(yīng)用程序

$ pm2 start app.js -i max

此處 閱讀有關(guān)集群模式的更多信息

生態(tài)系統(tǒng)文件

您還可以創(chuàng)建一個稱為生態(tài)系統(tǒng)文件的配置文件來管理多個應(yīng)用程序。生成生態(tài)系統(tǒng)文件

$ 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

此處 閱讀有關(guān)應(yīng)用程序聲明的更多信息

設(shè)置啟動腳本

使用您在服務(wù)器啟動/重新啟動時管理的進(jìn)程重新啟動 PM2 至關(guān)重要。為了解決這個問題,只需運行這個命令來生成一個活動的啟動腳本

$ pm2 save

此處 閱讀有關(guān)啟動腳本生成器的更多信息

重新啟動應(yīng)用程序更改

使用 --watch 選項非常簡單

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

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

$ pm2 logs

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

PM2 CheatSheet

以下是一些值得了解的命令。 只需使用示例應(yīng)用程序或開發(fā)機(jī)器上當(dāng)前的 Web 應(yīng)用程序來嘗試它們

PM2 分叉模式

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

PM2 集群模式

$ pm2 start app.js -i 0     # 將根據(jù)可用的 CPU 使用 LB 啟動最大進(jìn)程
$ pm2 start app.js -i max   # 與上面相同,但已棄用。
$ pm2 scale app +3          # 將 `app` 增加 3 名工人
$ pm2 scale app 2           # 將 `app` 向上或向下擴(kuò)展到總共 2 個工人

PM2 清單

$ pm2 list        # 顯示所有進(jìn)程狀態(tài)
$ pm2 jlist       # 以原始 JSON 格式打印進(jìn)程列表
$ pm2 prettylist  # 以美化JSON打印進(jìn)程列表
$ pm2 describe 0  # 顯示有關(guān)特定進(jìn)程的所有信息
$ pm2 monit       # 監(jiān)控所有進(jìn)程

PM2 日志

$ pm2 logs [--raw]  # 在流中顯示所有進(jìn)程日志
$ pm2 flush         # 清空所有日志文件
$ pm2 reloadLogs    # 重新加載所有日志

PM2 動作

$ pm2 stop all     # 停止所有進(jìn)程
$ pm2 restart all  # 重啟所有進(jìn)程
$ pm2 reload all   # 將 0s 停機(jī)時間重新加載(對于 NETWORKED 應(yīng)用程序)
$ pm2 stop 0       # 停止特定進(jìn)程 ID
$ pm2 restart 0    # 重啟特定進(jìn)程id
$ pm2 delete 0     # 將從 pm2 列表中刪除進(jìn)程
$ pm2 delete all   # 將從 pm2 列表中刪除所有進(jìn)程

PM2 雜項

$ pm2 reset <process>    # 重置元數(shù)據(jù)(重啟時間...)
$ pm2 updatePM2          # 更新內(nèi)存 pm2
$ pm2 ping               # 確保 pm2 守護(hù)進(jìn)程已經(jīng)啟動
$ pm2 sendSignal SIGUSR2 my-app # 向腳本發(fā)送系統(tǒng)信號
$ pm2 start app.js --no-daemon
$ pm2 start app.js --no-vizion
$ pm2 start app.js --no-autorestart

更新 PM2

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

$ npm install pm2@latest -g

然后更新內(nèi)存中的PM2

$ pm2 update

另見