[supervisord] nodaemon=true loglevel=info [group:litellm] programs=main,health [program:main] command=sh -c 'if [ "$USE_DDTRACE" = "true" ]; then export DD_TRACE_OPENAI_ENABLED="False"; exec ddtrace-run python -m litellm.proxy.proxy_cli --host 0.0.0.0 --port=4000 $LITELLM_ARGS; else exec python -m litellm.proxy.proxy_cli --host 0.0.0.0 --port=4000 $LITELLM_ARGS; fi' autostart=true autorestart=true startretries=3 priority=1 exitcodes=0 stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stderr_logfile=/dev/stderr stdout_logfile_maxbytes = 0 stderr_logfile_maxbytes = 0 environment=PYTHONUNBUFFERED=true [program:health] command=sh -c '[ "$SEPARATE_HEALTH_APP" = "1" ] && exec uvicorn litellm.proxy.health_endpoints.health_app_factory:build_health_app --factory --host 0.0.0.0 --port=${SEPARATE_HEALTH_PORT:-4001} || exit 0' autostart=true autorestart=true startretries=3 priority=2 exitcodes=0 stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stderr_logfile=/dev/stderr stdout_logfile_maxbytes = 0 stderr_logfile_maxbytes = 0 environment=PYTHONUNBUFFERED=true [eventlistener:process_monitor] command=python -c "from supervisor import childutils; import os, signal; [os.kill(os.getppid(), signal.SIGTERM) for h,p in iter(lambda: childutils.listener.wait(), None) if h['eventname'] in ['PROCESS_STATE_FATAL', 'PROCESS_STATE_EXITED'] and dict([x.split(':') for x in p.split(' ')])['processname'] in ['main', 'health'] or childutils.listener.ok()]" events=PROCESS_STATE_EXITED,PROCESS_STATE_FATAL autostart=true autorestart=true