PM2快速入門
本文翻譯自pm2 quick-start,其對應的Github倉庫地址爲:github pm2 - quick-start
歡迎!
歡迎使用PM2快速入門!
PM2是守護進程管理器,可以幫助您管理和保持應用程序在線。 PM2入門非常簡單,它是一個簡單直觀的CLI,可以通過NPM安裝。
安裝
可通過NPM或Yarn安裝最新的PM2版本:
$ npm install pm2@latest -g
# or
$ yarn global add pm2
要安裝Node.js和NPM,可以使用NVM
啓動一個應用
啓動,守護和監視應用程序的最簡單方法是使用以下命令行:
$ pm2 start app.js
或輕鬆啓動任何其他應用程序:
$ pm2 start bashscript.sh
$ pm2 start python-app.py --watch
$ pm2 start binary-file -- --port 1520
可以傳遞給CLI的一些選項:
# Specify an app name
--name <app_name>
# Watch and Restart app when files change
--watch
# Set memory threshold for app reload
--max-memory-restart <200MB>
# Specify log file
--log <log_path>
# Pass extra arguments to the script
-- arg1 arg2 arg3
# Delay between automatic restarts
--restart-delay <delay in ms>
# Prefix logs with time
--time
# Do not auto restart app
--no-autorestart
# Specify cron for forced restart
--cron <cron_pattern>
# Attach to application log
--no-daemon
管理進程
管理應用程序狀態很簡單,以下是命令:
$ pm2 restart app_name
$ pm2 reload app_name
$ pm2 stop app_name
$ pm2 delete app_name
除了app_name外,您可以傳遞:
- all 作用於所有進程
- id 應用於特定的進程id
檢查狀態,日誌,指標
現在,您已經啓動了該應用程序,可以檢查其狀態,日誌,指標,甚至可以通過pm2.io獲取在線儀表板。
列出託管的應用程序
列出由PM2管理的所有應用程序的狀態:
$ pm2 [list|ls|status]
顯示日誌
實時顯示日誌:
$ pm2 logs
要挖掘較舊的日誌,請執行以下操作:
$ pm2 logs --lines 200
基於終端的儀表板
這是一個直接適合您終端的實時儀表板:
$ pm2 monit
pm2.io:監視和診斷Web界面
基於Web的儀表板,帶有診斷系統的跨服務器:
$ pm2 plus
集羣模式
對於Node.js應用程序,PM2包含一個自動負載平衡器,它將在每個衍生進程之間共享所有HTTP [s] / Websocket / TCP / UDP連接。
要以羣集模式啓動應用程序:
$ pm2 start app.js -i max
在此處閱讀有關集羣模式的更多信息。
生態系統文件
您還可以創建一個配置文件,稱爲生態系統文件,以管理多個應用程序。 生成生態系統文件:
$ 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 process.yml
在此處閱讀有關應用程序聲明的更多信息。
設置啓動腳本
使用服務器引導/重新引導中管理的進程重新啓動PM2至關重要。 要解決此問題,只需運行以下命令即可生成活動的啓動腳本:
$ pm2 startup
並保存自動重生的進程列表:
$ pm2 save
在此處閱讀有關啓動腳本生成器的更多信息。
更改後重新啓動應用程序
使用–watch選項非常簡單:
$ cd /path/to/my/app
$ pm2 start env.js --watch --ignore-watch="node_modules"
這將監視並重新啓動應用程序,以解決當前目錄+所有子文件夾中的任何文件更改,並且將忽略node_modules文件夾–ignore-watch =“ node_modules”中的任何更改。
然後,您可以使用pm2日誌來檢查重新啓動的應用程序日誌。
更新PM2
我們簡化了流程,各個版本之間沒有重大變化,過程也很簡單:
npm install pm2@latest -g
然後更新內存中的PM2:
pm2 update
備忘單
以下是一些值得了解的命令。 只需使用示例應用程序或開發計算機上的當前Web應用程序來嘗試它們:
# Fork mode
pm2 start app.js --name my-api # Name process
# Cluster mode
pm2 start app.js -i 0 # Will start maximum processes with LB depending on available CPUs
pm2 start app.js -i max # Same as above, but deprecated.
pm2 scale app +3 # Scales `app` up by 3 workers
pm2 scale app 2 # Scales `app` up or down to 2 workers total
# Listing
pm2 list # Display all processes status
pm2 jlist # Print process list in raw JSON
pm2 prettylist # Print process list in beautified JSON
pm2 describe 0 # Display all informations about a specific process
pm2 monit # Monitor all processes
# Logs
pm2 logs [--raw] # Display all processes logs in streaming
pm2 flush # Empty all log files
pm2 reloadLogs # Reload all logs
# Actions
pm2 stop all # Stop all processes
pm2 restart all # Restart all processes
pm2 reload all # Will 0s downtime reload (for NETWORKED apps)
pm2 stop 0 # Stop specific process id
pm2 restart 0 # Restart specific process id
pm2 delete 0 # Will remove process from pm2 list
pm2 delete all # Will remove all processes from pm2 list
# Misc
pm2 reset <process> # Reset meta data (restarted time...)
pm2 updatePM2 # Update in memory pm2
pm2 ping # Ensure pm2 daemon has been launched
pm2 sendSignal SIGUSR2 my-app # Send system signal to script
pm2 start app.js --no-daemon
pm2 start app.js --no-vizion
pm2 start app.js --no-autorestart
下一步是什麼?
瞭解如何將應用程序的所有行爲選項聲明爲JSON配置文件。
瞭解如何清理停止並重新啓動以提高可靠性。
瞭解如何輕鬆部署和更新生產應用程序。
使用Keymetrics監視您的生產應用程序。
如何更新PM2
安裝最新的pm2版本:
npm install pm2@latest -g
然後更新內存中的PM2:
pm2 update