Ho apportato alcune modifiche alla risposta fornita, perché se qualcosa vale la pena farlo, vale la pena di farlo. Volevo riconnetterti se la VPN fosse stata abbandonata, ma NON riconnetterei se la VPN fosse intenzionalmente disconnessa. La soluzione che ho trovato è stata efficace e poco elegante.
Per prima cosa ho aggiunto ganci all'avvio e all'arresto di pppd per tenere traccia dello stato della VPN desiderato. Questi file devono essere di proprietà di root e disporre di autorizzazioni di lettura / esecuzione in tutto il mondo ( sudo chmod 755 /etc/ppp/ip-*
).
/ etc / ppp / ip-up:
#!/bin/sh
echo true > /var/run/reconnect_vpn
chmod 644 /var/run/reconnect_vpn
/ etc / ppp / ip-down: per OS X 10.9.5 e versioni precedenti
#!/bin/sh
tail /var/log/ppp.log | grep '\[DISCONNECT\]'
if [ $? == 0 ] ; then
echo false > /var/run/reconnect_vpn
fi
/ etc / ppp / ip-down: per OS X 10.10 e successivi
#!/bin/sh
tail /var/log/ppp.log | grep '\[TERMINATE\]'
if [ $? == 0 ] ; then
echo false > /var/run/reconnect_vpn
fi
Quindi, modificando l'AppleScript di cui sopra, sono stato in grado di controllare la variabile di stato '/ var / run / reconnect_vpn' per determinare se ripristinare la VPN:
on idle
tell application "System Events"
tell current location of network preferences
set myConnection to the service "VPN"
set startOnLogin to true
local doReconnect
try
set doReconnect to (do shell script "cat /var/run/reconnect_vpn")
on error errMsg
set doReconnect to startOnLogin
end try
if myConnection is not null and doReconnect then
if current configuration of myConnection is not connected then
connect myConnection
end if
end if
end tell
return 120
end tell
end idle
Come prima, cambia la linea set myConnection to the service "VPN"
in qualunque sia la tua VPN. Inoltre, all'avvio il file 'reconnect_vpn' non esiste, quindi ho aggiunto un valore booleano (startOnLogin) da utilizzare come predefinito quando il file non è stato trovato. Mi piace iniziare immediatamente, ma se non lo fai, cambiala in falso.
Ho la sensazione che se sei il tipo di persona è questo particolare riguardo al comportamento della VPN, allora sei anche il tipo di persona a cui piace armeggiare fino a trovare una soluzione e quindi questa risposta non ha pubblico. Ma nel caso, eccolo. Spero che aiuti qualcuno.