| set -eu | |
| nginx -t | |
| LISTEN_ADDR="127.0.0.1:8080" /usr/local/bin/claude2api & | |
| upstream_pid=$! | |
| nginx -g 'daemon off;' & | |
| nginx_pid=$! | |
| terminate() { | |
| kill -TERM "$upstream_pid" "$nginx_pid" 2>/dev/null || true | |
| } | |
| trap terminate INT TERM | |
| while :; do | |
| if ! kill -0 "$upstream_pid" 2>/dev/null; then | |
| wait "$upstream_pid" || true | |
| kill -TERM "$nginx_pid" 2>/dev/null || true | |
| wait "$nginx_pid" || true | |
| exit 1 | |
| fi | |
| if ! kill -0 "$nginx_pid" 2>/dev/null; then | |
| wait "$nginx_pid" || true | |
| kill -TERM "$upstream_pid" 2>/dev/null || true | |
| wait "$upstream_pid" || true | |
| exit 1 | |
| fi | |
| sleep 1 | |
| done | |