Jag gjorde några ändringar i det angivna svaret, för om något är värt att göra är det värt att göra i marken. Jag ville återansluta om VPN släpptes, men INTE ansluta igen om VPN avsiktligt kopplades bort. Lösningen jag kom på var både effektiv och inelegant.
Först lade jag till krokar i pppd-start och avstängning för att hålla reda på önskat VPN-tillstånd. Dessa filer ska ägas av root och ha världsläsnings- / körbehörigheter ( sudo chmod 755 /etc/ppp/ip-*
).
/etc/ppp/ip- upp:
#! / bin / shecho true > / var / run / reconnect_vpnchmod 644 / var / run / reconnect_vpn
/ etc / ppp / ip -down: för OS X 10.9.5 och senare
#! / bin / shtail /var/log/ppp.log | grep '\ [DISCONNECT \]' om [$? == 0]; thenecho false > / var / run / reconnect_vpnfi
/ etc / ppp / ip-down: för OS X 10.10 och senare
#! / bin / shtail /var/log/ppp.log | grep '\ [TERMINATE \]' om [$? == 0]; thenecho false > / var / run / reconnect_vpnfi
Sedan genom att ändra AppleScript ovan kunde jag kontrollera statusvariabeln '/ var / run / reconnect_vpn' för att avgöra om jag skulle ta med VPN säkerhetskopiera:
på tomgångsapplikation "Systemhändelser" berätta aktuell plats för nätverkspreferenser ställa in myConnection till tjänsten "VPN" ställa in startOnLogin till sann lokal doReconnect försök ställ in doReconnect to (do shell script " cat / var / run / reconnect_vpn ") vid fel errMsg ställa in doReconnect till startOnLogin slut försök om myConnection inte är null och doReconnect då om den aktuella konfigurationen av myConnection inte är ansluten så anslut myConnection end om end if end tell return 120 end tellend inaktiv kod>
Som tidigare ändrar du raden ställer in minConnection till tjänsten "VPN" till vad din VPN heter. Vid start finns inte 'reconnect_vpn' -filen, så jag lade till en boolean (startOnLogin) för att fungera som standard när filen inte kunde hittas. Jag gillar att börja omedelbart, men om du inte ändrar det till falskt.
Jag har en känsla av att om du är den typen av person är det här som gäller VPN-beteende, så är du också den typ av person som gillar att fumla tills du hittar en lösning och därför har detta svar ingen publik. Men bara om det är här. Hoppas det hjälper någon.