Однажды я сделал нечто подобное, когда всякий раз, когда монтировался диск, названный определенным образом, немедленно запускался сценарий для синхронизации содержимого набора папок с диском.
Чтобы сделать что-то подобное здесь, скрипт должен выглядеть так:
#!/bin/bash
if [ -d /Volumes/XYZ ];
then
echo “Ejecting XYZ!”;
umount /Volumes/XYZ
exit;
fi
Сохраните его где-нибудь, в каталоге ~/bin/
если он у вас есть, или, может быть, ~/Library/Scripts/
, просто запомните, где.
Вторая часть головоломки - это LaunchAgent, который будет обрабатывать событие всякий раз, когда подключается диск:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.superuser.226504.example</string>
<key>ProgramArguments</key>
<array>
<string>/Path/To/Script/unmount-modem.sh</string>
</array>
<key>QueueDirectories</key>
<array/>
<key>StartOnMount</key>
<true/>
<key>WatchPaths</key>
<array/>
</dict>
</plist>
Это должно быть сохранено в виде .plist (имя которого похоже на строку, используемую вместо «com.superuser.226504.example») и сохранено в ~/Library/LaunchAgents
. Вы можете либо загрузить его из терминала через launchctl load ~/Library/LaunchAgents/pathtoplist
либо выйти из системы / снова войти в систему, и он должен загрузиться, если все настроено правильно.