Simple script to reload exaBGP config

Recently started to look at exabgp as a tool to inject routes for a RTBH setup. Works nicely so far so made the following simple script to reload the config after changes so they take effect. This was made using exabgp 3.0.11 and Centos 6.

The config is reloaded via kill -SIGHUP (somepid) after it reads the PID from the file and checks its actually running.

#!/bin/bash
# This script should read the PID of exabgp from a file
# then check if that PID is running and reload it :)
#

PID_FILE=/var/run/exaBGP/exabgp_PID

if [ -f "${PID_FILE}" ]; then

  # The file exists so read the PID
  PID=`head -n 1 $PID_FILE`

  # Check is the process is actuall running
  if [ -n "`ps -p ${PID} | grep ${PID}`" ]; then

    echo exaBGP is already running [$PID].
        # It is so lets reload the config :)
        echo sending sighup to reload config...
        # Use below for exaBGP < 3.2 (Thanks to Roberto Saavedra for noting this) 
        # kill -SIGHUP $PID
        kill -SIGUSR1 $PID
        echo Reload complete
    exit
  else
    # Shouldnt really get here
    echo PID file exists but the PID is not running!
        exit
  fi
fi

# No PID file
echo No PID file found at $PID_FILE

As ever any comments or suggestions are welcome 🙂

m00nie

Comments

Leave a Reply