Взгляните на LocationChanter .Элемент plist, который он использует:
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration</string>
</array>
Насколько я могу судить, файлы в этом каталоге обновляются при каждом изменении вашей сети.Так что это даст вам ваш первый триггер.Другой элемент списка, на который стоит обратить внимание, это PathState.На справочной странице launchd.plist есть следующая документация:
PathState <dictionary of booleans>
Each key in this dictionary is a file-system path. If the value of
the key is true, then the job will be kept alive as long as the
path exists. If false, the job will be kept alive in the inverse
condition. The intent of this feature is that two or more jobs may
create semaphores in the file-system namespace.
Я сам только запускаюсь, но думаю, что вы можете использовать это в сочетании с WatchPaths длянастроить то, что вы ищете.Идея заключается в том, чтобы следить за установленным диском и, если его нет, попытаться смонтировать его.
Конечно, вы, вероятно, хотите немного газа на этом.Особенно, если клиентский компьютер когда-нибудь подключится к другим сетям, но я думаю, что эти элементы должны помочь вам начать работу.