配置文件可用属性

通用属性

字段 类型 示例 描述
name (string) “my-api” 应用程序名称 (默认为脚本名称)
script (string) ”./api/app.js” 相对于 pm2 start 的脚本路径
cwd (string) “/var/www/” 将启动您的应用程序的目录
args (string) “-a 13 -b 12” 包含通过 CLI 传递给脚本的所有参数的字符串
interpreter (string) “/usr/bin/python” 解释器绝对路径(默认为 node )
interpreter_args (string) ”–harmony” 传递给解释器的选项
node_args (string) interpreter_args的别名

高级特性

字段 类型 示例 描述
instances number 4 可多进程同时运行实现负载均衡,值为CPU进程数或max
exec_mode string “cluster” 启动应用程序的模式,可以是“cluster”或“fork”,默认fork
watch boolean or [] true 启用监视和重启功能,如果文件夹或子文件夹中的文件发生更改,您的应用程序将重新加载
ignore_watch list [”[/\]./”, “node_modules”] 通过监视功能忽略某些文件或文件夹名称的正则表达式列表
max_memory_restart string “150M” 如果超过指定的内存量,您的应用程序将重新启动。 人性化的格式:可以是“10M”、“100K”、“2G”等等……
env object {“NODE_ENV”: “development”, “ID”: “42”} env variables which will appear in your app
env_ object {“NODE_ENV”: “production”, “ID”: “89”} 在执行 pm2 restart app.yml --env 时注入
source_map_support boolean true 默认为 true,[启用/禁用源映射文件]
instance_var string “NODE_APP_INSTANCE” 查看文档
filter_env array of string [ “REACT_” ] 排除以“REACT_”开头的全局变量,并且不允许它们渗透到集群中。

日志文件

字段 类型 示例 描述
error_file (string) 指定错误日志文件 (默认 $HOME/.pm2/logs/XXXerr.log)
out_file (string) 指定标准输出日志文件 (默认 $HOME/.pm2/logs/XXXout.log)
pid_file (string) 指定pid进程文件 (默认 $HOME/.pm2/pid/app-pm_id.pid)
merge_logs boolean true 如果设置为 true,则避免使用进程 id 后缀日志文件
log_date_format (string) “YYYY-MM-DD HH:mm Z” 日志时间日期格式

控制流

字段 类型 示例 描述
min_uptime (string) 被视为启动的应用程序的最小正常运行时间
listen_timeout number 8000 如果应用程序未在侦听,则强制重新加载之前的时间(以毫秒为单位)
kill_timeout number 1600 发送最终 SIGKILL 之前的时间(以毫秒为单位)
shutdown_with_message boolean false 使用 process.send(‘shutdown’) 而不是 process.kill(pid, SIGINT) 关闭应用程序
wait_ready boolean false 等待 process.send(‘ready’) 而不是重新加载等待监听事件
max_restarts number 10 在您的应用程序被视为错误并停止重新启动之前,连续不稳定重新启动的次数(小于 1 秒间隔或通过 min_uptime 自定义时间)
restart_delay number 4000 在重新启动崩溃的应用程序之前等待的时间(以毫秒为单位)。 默认为 0。
autorestart boolean false 默认为 true 。 如果为 false,如果应用程序崩溃或和平结束,PM2 将不会重新启动您的应用程序
cron_restart string “1 0 * * *” 使用 cron 模式定时任务来重新启动你的应用程序。 应用程序必须正在运行才能使 cron 功能正常工作
vizion boolean false 默认为真。 如果为 false,PM2 将在没有 vizion 功能的情况下启动(版本控制元数据)
post_update list [“npm install”, “echo launching the app”] 从 Keymetrics 控制面板执行 Pull/Upgrade 操作后将执行的命令列表
force boolean true 默认为 false。 如果为 true,可以多次启动同一个脚本,这通常是 PM2 不允许的

资料

pm2的使用 - 火冰·瓶 - 博客园