#!/bin/bash # Скрипт запуска BGP сервера set -e echo "Starting BGP Server..." # Создание директорий если не существуют mkdir -p /app/logs # Проверка наличия файлов с префиксами if [ ! -f "/app/data/prefixes.txt" ]; then echo "Warning: /app/data/prefixes.txt not found. Creating empty file." echo "# Default prefixes file" > /app/data/prefixes.txt echo "192.168.1.0/24" >> /app/data/prefixes.txt fi # Проверка конфигурации echo "Validating ExaBGP configuration..." exabgp --validate /app/exabgp.conf # Запуск ExaBGP в фоновом режиме echo "Starting ExaBGP..." exabgp /app/exabgp.conf & # Сохранение PID EXABGP_PID=$! echo $EXABGP_PID > /app/logs/exabgp.pid # Ожидание запуска sleep 5 # Проверка статуса if kill -0 $EXABGP_PID 2>/dev/null; then echo "ExaBGP started successfully with PID: $EXABGP_PID" else echo "Failed to start ExaBGP" exit 1 fi # Функция для graceful shutdown cleanup() { echo "Shutting down BGP server..." if [ -f "/app/logs/exabgp.pid" ]; then kill $(cat /app/logs/exabgp.pid) 2>/dev/null || true fi exit 0 } # Обработка сигналов trap cleanup SIGTERM SIGINT # Ожидание завершения wait $EXABGP_PID