You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pm2执行文件时如何添加传入运行参数?

PM2 向启动脚本传递自定义参数解决方案

你之前的写法存在两个核心问题:

  1. pm2 start "cluster.js 0 1"会将整段字符串识别为要执行的脚本文件名,找不到对应文件自然报错
  2. node-args是用来向Node.js runtime传递参数的(比如--max-old-space-size这类运行时配置),不是用来向业务脚本传递自定义参数的

可用的三种解决方法如下:

  • 方法1:直接使用--分隔符传递脚本参数(最简便)
    --之后的所有内容会被PM2直接透传给业务脚本,执行命令如下:
    pm2 start cluster.js -- 0 1
    该写法效果和本地直接执行node cluster.js 0 1完全一致。

  • 方法2:通过配置文件声明参数(适合长期运行、多参数场景)
    新建ecosystem.config.js配置文件,内容如下:

    module.exports = {
      apps : [{
        name: "cluster-service",
        script: "cluster.js",
        args: "0 1"
      }]
    }
    

    配置完成后执行pm2 start ecosystem.config.js启动即可,后续重启、重载服务都不需要重新输入参数,更便于管理。

  • 方法3:完整命令透传执行
    将完整运行命令作为执行内容,同时添加--interpreter none参数告知PM2不需要额外追加Node.js解析逻辑,命令如下:
    pm2 start "node cluster.js 0 1" --interpreter none

启动完成后可在cluster.js开头添加console.log(process.argv)代码,执行pm2 logs查看输出,确认参数是否正常传入。

内容的提问来源于stack exchange,提问作者Dugom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:06:03