vpnmon
This will monitor a VPN connection. If the connection is lost it will attempt to reconnect.
usage: vpnmon [--name=<CONNECTION_NAME>] [--secret=<SHARED_SECRET>] [--config=<CONFIG_FILE> ]
example configuration
{
"name": "superVPN",
"secret": "supersecret",
"connectionTimeout": 15,
"waitTimeout": 5,
"postConnect": "killall -TERM dnsmasq; /usr/local/sbin/dnsmasq"
}
name = the name of the VPN connection (as seen in network settings)
secret = the L2TP/IPSEC secret
connectionTimeout = number of seconds to wait for the connection to be established
waitTimeout = number of seconds to wait before checking the vpn connection status
postConnect = a command to execute after the VPN is established