17

我正在使用 launchd 来运行一些自动化任务,我想知道“Day”和“Weekday”之间有什么区别。

根据http://discussions.apple.com/thread.jspa?threadID=1361809有一个“微妙”的差异可能导致 launchd 行为不端。

最终,我想要一个在每个工作日(周一至周五)早上 8 点运行的 plist,但我不知道如何获得相当于

0 8 * * 1-5
4

3 回答 3

33

日是一个月中的一天。

工作日是一周中的某一天(0 和 7 == 星期日)。

对你来说,你需要:

<key>StartCalendarInterval</key>
<array>
    <dict>
        <key>Weekday</key>
        <integer>1</integer>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
    <dict>
        <key>Weekday</key>
        <integer>2</integer>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
    <dict>
        <key>Weekday</key>
        <integer>3</integer>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
    <dict>
        <key>Weekday</key>
        <integer>4</integer>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
    <dict>
        <key>Weekday</key>
        <integer>5</integer>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</array>

不像cron那么优雅......

于 2010-08-25T23:50:02.760 回答
2

也试试这个。为我工作!

     <key>StartCalendarInterval</key>

    <dict>

            <key>Minute</key>

            <integer>00</integer>

            <key>Hour</key>

            <integer>22</integer>

            <key>Weekday</key>

            <integer>12345</integer>

    </dict>
于 2013-03-20T10:04:34.947 回答
-1

您还应该能够使用连字符来指定范围:

<key>StartCalendarInterval</key>
<array>
    <dict>
        <key>Weekday</key>
        <integer>1-5</integer>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</array>

我没有测试这个。(来源:http ://www.launchd.info/ )

于 2017-05-01T01:53:32.040 回答