可以说我在监督中有两个程序.有没有办法有条件地运行第一个程序(后台进程)而不必将其移动到单独的脚本文件?
[supervisord]
nodaemon=true
logfile=/tmp/supervisord.log
#Need this program to run conditionally - say based off an environment variable being set
[program:prog1]
command=/bin/prog1
[program:prog2]
command=/bin/prog2 -DFOREGROUND
Run Code Online (Sandbox Code Playgroud)
复活旧线程,但@nelson 的答案不完整。也就是说,supervisor 中的环境变量需要格式化才能%(ENV_YOURVARIABLE)s被识别(注意前缀ENV_,%括号之前和s末尾的符号)。此外,您必须在将其发送到 bash 脚本之前将其导出:
[program:prog1]
command=bash -c "export INIT_PROG=%(ENV_INIT_PROG)s && ./conditional-startup.sh"
Run Code Online (Sandbox Code Playgroud)
条件启动.sh:
#!/bin/bash
if [ $INIT_PROG = "some value" ]; then
/bin/prog1
fi
Run Code Online (Sandbox Code Playgroud)
也可以看看:
小智 3
将条件值传递给SERVER1_START并控制流程。
[program:somecommand]
command=bash -c "if [ ${SERVER1_START} = "VALUE-X" ]; then /apps/bin/start.sh
/apps/server.properties; fi"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1257 次 |
| 最近记录: |