@@ -0,0 +1,55 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user