pm2用法以及参数解释及其用法示例
PM2(Process Manager 2)是一个进程管理工具,它广泛应用于Node.js的生产环境中。PM2可以帮助你在后台启动、监控和维护应用程序,并且能够实现负载均衡以及自动重启应用。
pm2 start
: 启动应用程序
--name
: 给进程指定名称-i <number/max>
: 启动指定数量的实例,如果值为max
则根据CPU核数来启动--watch
: 监听文件变化自动重启应用-l --log <path>
: 指定日志文件的路径--merge-logs
: 多实例合并日志--time
: 在日志中添加时间戳pm2 list
: 列出所有由PM2管理的进程
pm2 stop <app_name/app_id>
: 停止指定的应用程序
pm2 restart <app_name/app_id>
: 重启指定的应用程序
pm2 delete <app_name/app_id>
: 删除指定的进程
pm2 show <app_name/app_id>
: 显示应用程序的详细信息
pm2 monit
: 监控每个节点的CPU和内存使用情况
pm2 logs <app_name/app_id>
: 查看应用程序的输出日志
pm2 reload <app_name/app_id>
: 热重载(0秒停机时间)指定的应用程序
pm2 scale <app_name> <number>
: 扩展/缩减应用程序的实例数量
pm2 update
: 更新PM2内部的所有进程和配置
pm2 save
: 保存当前的进程列表,PM2重启时会用这个列表恢复进程
pm2 resurrect
: 恢复之前通过pm2 save
保存的进程列表
启动一个简单的Node.js应用程序:
pm2 start app.js
启动应用并指定应用名称:
pm2 start app.js --name my-app
启动4个应用实例以充分利用四核CPU:
pm2 start app.js -i 4
实时监控文件变化并自动重启应用:
pm2 start app.js --watch
启动时合并日志并添加时间戳:
pm2 start app.js --merge-logs --time
列出全部PM2管理的应用:
pm2 list
停止某个应用:
pm2 stop my-app
重启某个应用:
pm2 restart my-app
删除某个应用:
pm2 delete my-app
查看实时监控面板:
pm2 monit
请注意,上述命令只提供了基础和常见的用法,PM2还有很多其他高级特性和选项可供使用。更多详细信息可以通过pm2 --help
来获取,或者访问PM2的官方文档。
pm2 start的所有相关参数都列出来解释
pm2 start
命令用于启动应用程序,并且接受多个参数来控制应用的行为。以下是部分 pm2 start
可用的参数列表及其解释:
-n, --name <name>
: 设置进程名称。-i, --instances <number>
: 启动多少个实例,可以是具体数字或者max
来表示根据CPU核心数确定实例数。--silent
: 静默模式,PM2日志中不显示启动的详细信息。--watch [paths]
: 监视文件变化,可指定监视特定路径(默认为当前目录)。-f, --force
: 强制启动一个新的应用实例,即使同名的应用已经存在。--node-args "<node_args>"
: 传递给node的参数,如 --node-args="--harmony --max_old_space_size=1024"
。-x, --execute-command
: 强制执行解释器脚本,无论脚本后缀如何。--max-memory-restart <memory>
: 当内存超过此值时重启应用,例如:--max-memory-restart 100M
。--restart-delay <delay>
: 在应用重启之间等待指定毫秒数。--env <environment_name>
: 指定环境变量配置文件,如 --env production
。--log-date-format <format>
: 指定日志日期格式,如ISO8601。-l, --log <path>
: 指定日志文件路径。-o, --output <path>
: 指定标准输出日志文件路径。-e, --error <path>
: 指定错误输出日志文件路径。--pid <path>
: 指定pid文件路径。-a, --update-env
: 更新环境变量,通常用在重新载入进程时。-u, --user <username>
: 定义启动进程的用户(需要相应权限)。-g, --group <groupname>
: 定义启动进程的用户组(需要相应权限)。-c, --cron <cron_pattern>
: 定义重启任务的Cron模式。--interpreter <interpreter>
: 指定应用的解释器,比如 /usr/bin/python
。--interpreter-args "<arguments>"
: 传递给解释器的参数,用空格隔开。使用示例:
# 以最大化实例启动app.js并命名为“my-api”
pm2 start app.js --name "my-api" -i max
# 使用特定Node参数启动
pm2 start app.js --node-args="--max-old-space-size=2048"
# 监听文件变化并重启应用
pm2 start script.sh --watch
# 限制最大内存并自动重启
pm2 start big-array.js --max-memory-restart 20M
# 设置特定的日志文件和日期格式
pm2 start server.js --log-date-format "DD-MM HH:mm:ss.SSS" --log "/var/log/pm2/my-app.log"
# 自定义解释器和解释器参数
pm2 start my-bash-script.sh --interpreter bash --interpreter-args "-x"
请注意,pm2 start
的参数非常多,上面列出的只是其中一部分。具体使用时可以根据你的需求选择合适的参数,更多详情可以通过查看官方文档或通过 pm2 start --help
来获取帮助。