处理预期的 supervisord 退出代码

Mul*_*ave 3 centos supervisord

supervisord在 Docker 容器内使用来管理我正在运行的进程,并且还想使用它来触发某些命令 - 运行它们一次并期望它们以0.

下面是一个例子:

[program:central-seed-posts]
command = /usr/bin/php /var/www/app/artisan post
autostart = false
autorestart = false
startsecs = 3
startretries = 0
exitcodes = 0
stderr_logfile=/tmp/central/posts-stderr-supervisor.log
stdout_logfile=/tmp/central/posts-stdout-supervisor.log
Run Code Online (Sandbox Code Playgroud)

我正在使用nsenter 的 docker-enterwithsupervisorctl start central-seed-posts来触发它,但我也想处理成功退出而不是主管告诉我ERROR (abnormal termination)

它与主管事件有关吗?

Jak*_*sic 5

您遇到的问题似乎与您使用的以下选项有关:

startsecs = 3
Run Code Online (Sandbox Code Playgroud)

如果你阅读了 supervisord 的手册,你可以看到 startsecs 设置了启动后进程必须保持多长时间才能让 Supervisord 认为启动成功。您的进程可能在 3 秒前退出,这表明主管未成功启动。

尝试将其降低到 0,除非您有真正的理由将其保持 3 秒。