在启动的StartCalendarInterval中,“Day”和“Weekday”之间有什么区别?

问题描述 投票:16回答:3

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

根据http://discussions.apple.com/thread.jspa?threadID=1361809的说法,存在一种“微妙”的差异,可能会导致发射不良行为。

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

0 8 * * 1-5
macos cron plist launchd
3个回答
28
投票

日是这个月的一天。

工作日是一周中的某一天(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那么优雅......


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/


-1
投票

试试这个。为我工作!

     <key>StartCalendarInterval</key>

    <dict>

            <key>Minute</key>

            <integer>00</integer>

            <key>Hour</key>

            <integer>22</integer>

            <key>Weekday</key>

            <integer>12345</integer>

    </dict>
© www.soinside.com 2019 - 2024. All rights reserved.