3

我创建了一个launchd代理,它每天凌晨 2 点 45 分打开一个不受密码保护的稀疏磁盘映像(并安装其单独的卷),以准备备份软件写入该卷。代理的launchdplist 文件保存在~/Library/LaunchAgents/. 以下是 plist 文件的参数:

Label: my.DiskImageOpener
KeepAlive: NO
RunAtLoad: NO
StartCalendar:
    Hour: 2
    Minute: 45
ProgramArguments:
    hdiutil
    attach
    /path/to/MyDiskImage.sparseimage

只要计算机的显示器处于唤醒状态,代理就会像宣传的那样工作,打开磁盘映像并在启动代理中指定的时间安装其卷。另一方面,如果显示器在启动代理中指定的时间处于睡眠状态,则磁盘映像将无法打开,直到显示器从睡眠中唤醒(即使是几个小时后),此时磁盘映像会立即打开并安装它的卷。如果我将hdiutil attacj /path/to/MyDiskImage.sparseimage命令替换为open /path/to/MyDiskImage.sparseimage,或者将命令放在启动代理执行的单独的可执行 shell 脚本中,也会发生同样的现象。

当显示器处于休眠状态时,如何让启动代理打开磁盘映像并安装其卷?

我正在使用运行 OS X 10.8.2 Mountain Lion 的 MacBook Pro 笔记本电脑。感谢您对此问题的任何帮助。

4

1 回答 1

0

我想我偶然发现了解决方案。只要我在“节能器”首选项窗格中将计算机设置为永不休眠,那么即使显示器处于休眠状态和/或硬盘驱动器尽可能设置为休眠状态,启动代理也会成功运行,打开磁盘映像并安装卷。令人费解的是,如果计算机设置为永不休眠以外的任何设置(即使它实际上可能是醒着的),启动代理就会失败。

于 2013-01-22T13:34:34.433 回答