3

Я новичок в Терминале, поэтому не стесняйтесь заявить очевидное.

SleepWatcher запускает сценарии прямо до и после того, как ваш Mac переходит в режим сна. У меня есть скрипт для размонтирования внешнего диска перед сном, а затем перемонтировать его после. (Таким образом, когда я спешу утром на работу, я могу просто закрыть крышку, вытащить все кабели и не получить «Ты не выбросил это, придурок!Жалоба.)

Скрипты работают нормально и размонтируются прямо перед сном. Но это не перемонтируется после пробуждения.

#!/bin/sh

diskutil mount 8851F3A7-60A7-39A7-9DA8-41BE1499DE6C 

Я могу запустить этот скрипт вручную в терминале. Это будет работать тогда. SleepWatcher может выполнить скрипт (я могу заставить его отображать диалоговое окно), но не команду для монтирования.

Что мне не хватает?

Обновление: я chmod-редактировал сценарии как +x. Можно ли запустить diskutil как +x?

3 ответа3

1

Вполне возможно, что устройство недоступно, когда SleepWatcher запускает свой скрипт. Вы можете попытаться запустить diskutil list > /PATH/TO/SOME/FILE в скрипте, чтобы увидеть, что diskutil видит во время фактического запуска скрипта. Вам может потребоваться ввести задержку (например, sleep 5) в сценарий, пока вы ждете, когда диск станет доступным для фактического подключения.

0

Попробуйте смонтировать сам диск, а не один том (даже если это единственный том на диске).

Для вашего сценария .wakeup замените

 diskutil mount 8851F3A7-60A7-39A7-9DA8-41BE1499DE6C

с:

 diskutil mountDisk disk1s3

... конечно, заменив 'disk1s3' на соответствующий идентификатор устройства для вашего собственного внешнего диска. Я не думаю, что мне нужно сообщать кому-то, кто способен указать том по его UUID, где найти эту информацию. Для всех остальных вот как:

 diskutil list
0

Попробуйте /usr/sbin/diskutil в скрипте. В зависимости от того, как приложение выполняет скрипт, это может иметь все значение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .