Приветствую.
Существует служебный процесс, написанный на NodeJS. По сути он один и тот же, просто запускается несколько копий с разными входными конфигами. Для того, чтобы было удобно управлять и визуально и технически группой настроек, подключается к pm2 это добро с помощью JSON-файла [ srv-pm2.json ] следующего вида:
{
"apps": [
{
"exec_mode": "fork_mode",
"script": "service.js",
"name": "service.1",
"args": "--config config1.json",
"env": { "NODE_ENV": "production" },
"max_memory_restart": "150M"
},
{
"exec_mode": "fork_mode",
"script": "service.js",
"name": "service.2",
"args": "--config config2.json",
"env": { "NODE_ENV": "production" },
"max_memory_restart": "150M"
},
{
"exec_mode": "fork_mode",
"script": "service.js",
"name": "service.3",
"args": "--config config3.json",
"env": { "NODE_ENV": "production" },
"max_memory_restart": "150M"
}
]
}
Соответственно подключение этого конфига в pm2 выполняется командой:
> pm2 start srv-pm2.json
Но вот когда нужно добавить (а иногда и удалить) блок сервиса, то приходится действовать как-то не очень красиво:
> pm2 delete srv-pm2.json
> вносить изменения в JSON
> pm2 start srv-pm2.json
> pm2 save
Получается мало того, что замена идентификаторов задач в pm2, так еще и кратковременное отключение сервисов. Так вот вопрос состоит в следующем. МОЖНО ЛИ? как-то перечитать JSON для pm2 так, чтобы он автоматически удалил из своих задач то, что убрано из "конфига" и запустил то, что добавилось без остановки всего остального? Ну что-то типа:
> pm2 reload srv-pm2.json