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 来获取帮助。