【问题标题】:Argument passing to PM2参数传递给 PM2
【发布时间】:2019-10-02 04:34:51
【问题描述】:

我想投入生产节点服务: 当我使用这样的论点启动我的应用程序时:node ./backend -c "uf4m6fhnh" -s "SPNLGZsUoSpQ=" -o "8696"。一切正常。

现在我想用 PM2 将它投入生产: 我已经尝试了两种方法(CLI 和 JSON 文件):

CLI 版本:

pm2 start backend.js --node-args="-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696" --name MyAppName

还有:

pm2 start backend.js --name MyAppName -- "-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696"

配置文件(JSON):

{
  "apps": [
    {
      "name": "MyAppName ",
      "script": "./backend.js",
      "node_args": [
          "-c",
          "uf4lvm6fhnh",
          "-s",
          "SPNLGZsUoSpQ=",
          "-o",
          "8696"
        ]
    }
  ]
}

然后:pm2 start myConfigJson.json

对于每个可能的解决方案,我的 pm2 logs 中都有相同的错误: Error: Cannot find module '/home/me/Projects/Project/uf4lvm6fhnh' (请注意,未找到的模块是我传递的参数)

有什么想法吗?

【问题讨论】:

    标签: javascript node.js pm2


    【解决方案1】:

    请改用args

    node_argsinterpreter_args 的别名,它将参数传递给节点本身,而不是脚本。因此,您的命令行最终会在节点本身上调用 -c|--check

    http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/#programmatic-apihttps://nodejs.org/api/cli.html#cli_c_check

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 2022-10-02
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多