OS X:是否有内置的调度程序?


10

我想安排一个任务,在将来的特定时间/日期使用参数执行。

OS X是否包括任何此类工具(即使它是命令行)?如果没有,那么有没有免费或相对便宜的工具来实现这一目标?

Answers:


14

虽然KeithB的答案是正确的,实际上,cron 被弃用赞成的OS X专用 launchd

launchd在苹果的“ plists”或属性列表中描述了要运行的命令,它们实际上只是XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.
com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>  
    <key>Label</key>
    <string>com.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

话虽这么说,这不是一种非常用户友好(也不像Mac一样)的计划要运行的命令的方式。有关SuperUser的问题列出了一些GUI替代方案,包括:

Lingon屏幕截图

推出编辑器(5美元共享软件)

屏幕截图


3
推出的“专有”不是一个公平的描述。Apple急于在launchd.macosforge.org上开源它,并已移植到FreeBSD。
ohmantics

@ohmantics:好的,很公平。“特定”是更好的描述吗?
乔什(Josh)2010年

足够近。:-)苹果公司创造了它,但我希望它会在类似BSD的操作系统中得到更广泛的采用。
ohmantics

@calavera:感谢您的编辑。我讨厌这样删除主要网站上的文档。我添加了一个新链接,可惜该链接不那么相关,它没有具体提及cron被弃用的问题:-(
Josh 2010年

np ...不幸的是,苹果似乎做了很多事情:/
Robert S Ciaccio 2010年

4

如果您只想简单一些,也可以使用iCal启动Automator工作流程。否则我会通过启动来做到这一点。


iCal的唯一问题是您必须登录才能运行任务(正确吗?)
Josh 2010年

是的,我认为您必须先登录才能执行此操作。我会建议桌面进程在这一点,但有些人宁愿只使用iCal和始终记录。
jmlumpkin

iCal是一个简单得多的解决方案!请参阅我发布的屏幕截图。我确定可以看到他们有多么令人恐惧:-)
乔什(Josh)2010年

只是为了澄清,您的屏幕截图是用于启动安装程序的,对吗?
jmlumpkin 2010年

2

有两种Unix命令行工具可以满足您的需求。 at将允许您安排任务在将来的特定时间执行一次。当然,任务的一部分可能是安排另一个任务。

cron 允许您根据一天中的时间,一周中的某天等来安排要在同一时间定期执行的任务。

要注意的一件事是,如果您的计算机在计划的时间未运行,则这两个都不运行任务。还有其他选择,例如anacron,将在下次计算机引导时运行计划的任务。


1
请注意,默认情况下,“ at”命令处于禁用状态。使用“ man atrun”来弄清楚如何启用它。
克里斯托弗·约翰逊,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.