Як автоматично витягти зовнішні диски перед відходом Мака до сну ~ macOS

Зовсім не готовий був зіткнутися з такою проблемою, але вона. Приніс ноутбук, підключив живлення, монітор, шнурок USB. У моніторі хаб, до нього підключена клавіатурата зовнішній диск. Сонце село, відправив макбук у сон, відключив монітор, живлення та висмикнув шнурок USB.

Проблема перша – ноут прокидається при відключенні USB. Зовнішній монітор не включає, але індикатор, що «сонно дихає», робить вдих і з хвилину знову світиться постійно.

Проблема друга - при наступному включенні на вас чекає повідомлення - диск витягнутий неправильно.

З одного боку, комп'ютер міг заснути ненадовго, або ніхто його нікуди нести не збирався, коротше відключати проводи не планувалося.

З іншого боку, сплячий ноут - те ж вимкнений (я свій не пам'ятаю коли вимикав по-справжньому). Не треба йому прокидатися при відключенні проводів, ой не треба. Ну і лаятись потім на невірно витягнутий диск теж.

Найрозумніше рішення - відключати зовнішні диски під час засинання, підключати при пробудженні. Автоматично. Непомітно. Але Маки цього не вміють. Найгірше, Automator не можна навчити виконувати ці фокуси — немає тригерів onsleep/onwake.

Рішення, які я розглядав і що зрештою обрав.

Jettison (AppStore, 66 рублів)

Jettison автоматично виготовляє зовнішні диски з вашого Mac до ваших комп'ютерів ходити до шпильки і remounts them when it wakes.

диски

autoEJECT (99 руб, AppStore)

Обидві програми, за умови їхньої працездатності, виглядають надмірно жирним рішенням для простого завдання. Мені ні до чого ці іконки у рядку системного меню, налаштування, випадки…

SleepWatcher, безкоштовно

Це daemon AKA «демон», процес, якиймоніторить сон/пробудження/простий/неспання комп'ютера і дозволяє виконувати різні штуки при виникненні цих подій.

Заряджаємо термінал (у мене iTerm2) і вперед.

Вміст скриптів, які виконують всю роботу

Якщо у вас два внутрішніх диски, як у моєму випадку, потрібно в кожному файлі поміняти disk[1-9] на disk[2-9], оскільки внутрішні накопичувачі витягувати і підключати насильно ні до чого.

Перевірив, чи працює. Перший рядок — Мак засинає, другий — прокидається.

Інша ситуація, трохи інші завдання, ті ж методи і набагато докладніший виклад - Automatically eject external disks on sleep and reconnect after on OS X.