PM2 – 带有内置负载均衡器的Node.js Production Process Manager

程序简介

PM2是具有内置负载平衡器的Node.js应用程序的生产过程管理器。它使您可以使应用程序永远保持活动状态,无需停机即可重新加载它们,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

程序安装

全局安装,简直不能更简单,可通过npm或者yarn一键安装

$ npm install pm2@latest -g
# or
$ yarn global add pm2

启用应用

启动,守护和监视应用程序的最简单方法是使用以下命令行:

pm2 start app.js

或轻松启动任何其他应用程序:

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

引用参数

可以传递给CLI的一些选项:

# 指定应用程序名称
--name <app_name>

# 文件更改时监视并重新启动应用程序
--watch

# 设置应用程序重新加载的内存阈值
--max-memory-restart <200MB>

# 指定日志文件
--log <log_path>

# 向脚本传递额外的参数
-- arg1 arg2 arg3

# 自动重新启动之间的延迟
--restart-delay <delay in ms>

# 为日志添加时间前缀
--time

# 不要自动重启应用
--no-autorestart

# 指定cron以强制重启
--cron <cron_pattern>

# 附加到应用程序日志
--no-daemon

如您所见,许多选项可用于通过PM2管理您的应用程序。您将根据用例发现它们。

应用管理

管理应用程序状态很简单,以下是命令:

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

代替app_name您可以通过:

  • all 在所有过程中采取行动

  • id 根据特定的进程ID采取行动

应用检查

现在,您已经启动了该应用程序,可以检查其状态,日志,指标,甚至可以使用pm2.io获取在线仪表板。

列出托管的应用程序

pm2 list

或者

pm2 ls

或者

pm2 status

可列出由PM2管理的所有应用程序的状态,如:

file

显示日志

pm2 logs

要挖掘较旧的日志,请执行以下操作:

$ pm2 logs --lines 200

终端仪表板

pm2 monit

file

监视和诊断Web界面

基于Web的仪表板,带有诊断系统的跨服务器:

pm2 plus

file

引用更新

我们简化了流程,各个版本之间没有重大变化,过程也很简单:

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

相关网址

Github: https://github.com/Unitech/pm2

官网:https://pm2.keymetrics.io/

文档:https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇