| #!/bin/sh |
| set -e |
|
|
| |
| EXPRESS_PORT_EFFECTIVE=${EXPRESS_PORT:-15782} |
|
|
| |
| telegram-bot-api --local --http-port=7860 --dir=/var/lib/telegram-bot-api --temp-dir=/var/lib/telegram-bot-api & |
| TELEGRAM_PID=$! |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Telegram Bot API started with PID $TELEGRAM_PID on port 7860" |
|
|
| |
| cd /app |
| node stats-reporter.js & |
| NODE_STATS_PID=$! |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Stats reporter script started with PID $NODE_STATS_PID" |
|
|
| |
| node server.mjs & |
| NODE_EXPRESS_PID=$! |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Express server started with PID $NODE_EXPRESS_PID on port $EXPRESS_PORT_EFFECTIVE (accessible inside container)" |
|
|
| |
| trap "echo '[$(date +%Y-%m-%dT%H:%M:%S%Z)] Caught SIGINT/SIGTERM, shutting down...'; \ |
| kill $TELEGRAM_PID $NODE_STATS_PID $NODE_EXPRESS_PID 2>/dev/null || true; \ |
| echo '[$(date +%Y-%m-%dT%H:%M:%S%Z)] Shutdown complete.'; \ |
| exit 0" SIGINT SIGTERM |
|
|
| |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Waiting for Telegram Bot API (PID $TELEGRAM_PID) to exit..." |
| wait $TELEGRAM_PID |
| EXIT_CODE=$? |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Telegram Bot API process (PID $TELEGRAM_PID) exited with code $EXIT_CODE." |
|
|
| |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Main process exited, ensuring other processes are stopped..." |
| kill $NODE_STATS_PID $NODE_EXPRESS_PID 2>/dev/null || true |
| echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)] Script finished." |
| exit $EXIT_CODE |