1

就像它在锡上所说的那样,我有一个应该在上午 1.20 点触发的启动脚本,但似乎在用户登录后不久就会触发。谁能看到我做错了什么?

是我编写 ProgramArguments 的方式,在应用程序的容器内启动它吗?我没有以任何其他方式成功启动(applescript)应用程序,即open ~/Library/CDesResources/Shutdown.app似乎不起作用。

plist 已保存,~/Library/LaunchAgents/shutdownAgent.plist因此仅在该用户正确登录时才应触发?

非常感谢您的新鲜眼光和专业知识。

<?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>shutdownAget</string>
        <key>Nice</key>
        <integer>-20</integer>
        <key>ProgramArguments</key>
        <array>
            <string>/Library/CDesResources/Shutdown.app/Contents/MacOS/applet</string>
        </array>
        <key>RunAtLoad</key>
        <false/>
        <key>ServiceDescription</key>
        <string>launch the shutdown script</string>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>1</integer>
            <key>Minute</key>
            <integer>20</integer>
        </dict>
    </dict>
    </plist>
4

1 回答 1

1

从手册页launchd.plist(5)

与计算机睡眠时跳过作业调用的 cron 不同,launchd 将在下次计算机唤醒时启动作业。如果在唤醒计算机之前发生多个间隔,则这些事件将在从睡眠中唤醒时合并为一个事件。

因此launchd,在启动时正确地注意到该作业没有在 01:20 运行并为您安排它。

于 2012-11-05T18:58:47.103 回答