[supervisord] nodaemon=true user=root logfile=/dev/null logfile_maxbytes=0 pidfile=/tmp/supervisord.pid [unix_http_server] file=/tmp/supervisor.sock [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; ---------- 虚拟桌面 ---------- [program:xvfb] command=/usr/bin/Xvfb %(ENV_DISPLAY)s -screen 0 %(ENV_SCREEN_RES)s -ac -nolisten tcp priority=10 autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 redirect_stderr=true [program:fluxbox] command=/usr/bin/fluxbox priority=20 autorestart=true startretries=10 stdout_logfile=/dev/null stdout_logfile_maxbytes=0 redirect_stderr=true ; ---------- VNC / noVNC ---------- [program:x11vnc] command=/usr/bin/x11vnc -display %(ENV_DISPLAY)s -rfbauth /root/.vncpass -rfbport 5900 -forever -shared -noxdamage -quiet priority=30 autorestart=true startretries=10 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 redirect_stderr=true [program:novnc] command=/usr/bin/websockify --web /usr/share/novnc 6080 localhost:5900 priority=40 autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 redirect_stderr=true ; ---------- 业务进程 ---------- ; autorestart=true:进程任何形式退出都会被拉起, ; 配合 API 的 POST /api/restart(SIGTERM 优雅停机)实现"保存配置后重启"。 [program:app] command=/app/.venv/bin/python -m src.main directory=/app priority=50 autorestart=true startretries=3 stopsignal=TERM stopwaitsecs=120 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 redirect_stderr=true