终端:唤醒后自动挂载外部磁盘

终端:唤醒后自动挂载外部磁盘

我是 Terminal 的新手,因此请随意陈述一些显而易见的事情。

睡眠观察者在 Mac 进入睡眠状态之前和之后运行脚本。我有一个脚本,用于在睡眠之前卸载外部磁盘,然后在睡眠之后重新安装。(这样,当我早上匆忙去上班时,我只需合上盖子,拔出所有电缆,就不会收到“你没有弹出它,混蛋!”的抱怨。)

脚本运行良好,并且在睡眠之前卸载。但是,唤醒后不会重新安装。

#!/bin/sh

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

我可以在终端中手动运行此脚本。然后它就可以工作了。SleepWatcher 可以执行脚本(我可以让它显示一个对话框),但不能执行挂载命令。

我错过了什么?

更新:我已将脚本 chmod 为 +x。diskutil 可以作为 +x 运行吗?

答案1

当 SleepWatcher 运行其脚本时,设备很可能不可用。您可以尝试运行diskutil list > /PATH/TO/SOME/FILE脚本,看看diskutil脚本实际运行时看到的内容。您可能需要在脚本上引入延迟(例如 sleep 5),等待驱动器变为可用状态以便实际安装。

答案2

/usr/sbin/diskutil在脚本中尝试。根据应用程序执行脚本的方式,这可能会产生很大的不同。

答案3

尝试安装磁盘本身,而不是单个卷(即使它是磁盘上唯一的卷)。

对于你的 .wakeup 脚本,替换

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

和:

 diskutil mountDisk disk1s3

...当然,用您自己的外部磁盘的正确设备标识符替换“disk1s3”。我认为我不需要告诉能够通过 UUID 指定卷的人在哪里可以找到该信息。对于其他人,方法如下:

 diskutil list

相关内容