【发布时间】:2023-03-28 17:45:01
【问题描述】:
改用supervisod 作为过程控制系统。
我有一个 LONG 并在我的 supervisord.conf 中重复环境配置,为很多进程设置了很多环境变量。我需要在一个地方定义它并重用它,以保持配置干燥和可维护。主管可以做到吗?如何做?
编辑:非干式配置示例
[program:node-app1]
command=node /home/ubuntu/server/node-app1/app.js
directory=/home/ubuntu/server/node-app1
autostart=true
autorestart=true
stderr_logfile=/home/ubuntu/supervisor/node_app1/err.log
stdout_logfile=/home/ubuntu/supervisor/node_app1/out.log
user=ubuntu
priority=998
startretries=20
ENVIRONMENT=BROKER_URL="amqp://user:password@path.to.rabbit:5672",
NODE_ENV=envName,
MONGO_URL="mongodb://path.to.mongo:27017",
BASE_PUBLIC_API="http:path.to.api",
REDIS_URL="redis://path.to.redis:6379",
BACKEND_URL="https://path.to.backend",
CHARTS_URL="https://path.to.charts"
[program:node-app2]
command=node /home/ubuntu/server/node-app2/app.js
directory=/home/ubuntu/server/node-app2
autostart=true
autorestart=true
stderr_logfile=/home/ubuntu/supervisor/node_app2/err.log
stdout_logfile=/home/ubuntu/supervisor/node_app2/out.log
user=ubuntu
priority=20
startretries=20
ENVIRONMENT=BROKER_URL="amqp://user:password@path.to.rabbit:5672",
NODE_ENV=envName,
MONGO_URL="mongodb://path.to.mongo:27017",
BASE_PUBLIC_API="http:path.to.api",
REDIS_URL="redis://path.to.redis:6379",
BACKEND_URL="https://path.to.backend",
CHARTS_URL="https://path.to.charts"
可以共享的内容:ENVIRONMENT,日志的基本目录(每个应用程序只有结尾会改变),常用变量,如 startsecs。等等
【问题讨论】:
-
不确定主管,但您尝试过PM2 吗?
-
我知道下午2点。但是我们切换到主管是因为在使用另一个 node.js“扮演你自己的”过程控制系统在生产中出现奇怪且不可接受的故障之后,我们移动了如此经过实战证明的监督。因此问题
-
supervisord下所有进程在全局环境中设置重用变量是否有问题,能否提供2个子进程的非DRY配置示例?
-
@lossleader 添加了一个非 DRY 示例
标签: supervisord