PM2在JSON文件中对所有进程的通用设置。

问题描述 投票:1回答:1

我目前正在使用以下方法启动多个Node.js进程 pm2. 这些进程定义在JSON文件中,由运行的

pm2 start pm2.json

从下面的JSON文件中可以看到,有很多重复的地方。例如,对 error_file 的位置或设置变量 timetrue 涉及到大量的重复,在JSON文件中定义10-20个这样的脚本会很乏味。

是否可以将JSON文件简单化,通过设置 time 变量只在文件中出现一次,并让它适用于所有进程?

另外,是否可以使用模板来定义 error_fileout_file诸如 "../logs/${name}-error.log"?

示例 pm2.json

{
    "apps": [
      {
        "name": "foo-a",
        "script": "./foo/a.js",
        "args": "-e apple",
        "error_file": "../logs/foo-a-error.log",
        "out_file": "../logs/foo-a-out.log",
        "time": true
      },
      {
        "name": "foo-b",
        "script": "./foo/b.js",
        "args": "-e banana",
        "error_file": "../logs/foo-b-error.log",
        "out_file": "../logs/foo-b-out.log",
        "time": true
      },      {
        "name": "bar-c",
        "script": "./bar/c.js",
        "args": "-e cranberry",
        "error_file": "../logs/bar-c-error.log",
        "out_file": "../logs/bar-c-out.log",
        "time": true
      },

      ...
javascript node.js npm node-modules pm2
1个回答
2
投票

你可以使用 js 文件 json 文件,它将允许您创建和使用通用的变量函数,以满足您的需求。repetition part.

const time = true

module.exports = {
    "apps": [
      {
        "name": "foo-a",
        "script": "./foo/a.js",
        "args": "-e apple",
        "error_file": "../logs/foo-a-error.log",
        "out_file": "../logs/foo-a-out.log",
        "time": time
      },
      {
        "name": "foo-b",
        "script": "./foo/b.js",
        "args": "-e banana",
        "error_file": "../logs/foo-a-error.log",
        "out_file": "../logs/foo-a-out.log",
        "time": time
      },      {
        "name": "bar-c",
        "script": "./bar/c.js",
        "args": "-e cranberry",
        "error_file": "../logs/bar-c-error.log",
        "out_file": "../logs/bar-c-out.log",
        "time": time
      },

      ...
© www.soinside.com 2019 - 2024. All rights reserved.