OS X: Чи є вбудована програма планувальника?


10

Я хотів би запланувати завдання для виконання з параметрами на певний час / дату в майбутньому.

Чи включає ОС X такий інструмент (навіть якщо це командний рядок)? Якщо ні, то є якісь безкоштовні чи відносно дешеві інструменти для цього?

Відповіді:


14

Хоча відповідь KeithB є правильним, на самому ділі, cron є застарілим на користь конкретного OS X launchd .

Команди, за допомогою launchdяких можна запустити , описані в «списках» або списках властивостей Apple, які насправді є лише 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, зокрема:

Лінгонський екран

запускається редактор (5 доларів США)

Скріншот


3
Це не справедлива характеристика, що запуск є "фірмовим". Apple з нетерпінням відкриває джерело на startd.macosforge.org, і воно було перенесено на FreeBSD.
омантика

@ohmantics: Гаразд, справедлива справа. Чи "конкретний" кращий опис?
Джош

Достатньо близько. :-) Apple створила його, але, сподіваюсь, він побачить більш широке впровадження в BSD-подібних ОС.
омантика

@calavera: Дякую за редагування. Я ненавиджу це, коли документи з основних веб-сайтів видаляються так. Я додав нове посилання, яке, на жаль, є менш релевантним, воно конкретно не згадує про cronзастарілість :-(
Josh

np ... На жаль, Apple, здається, робить це дуже багато: /
Роберт S Ciaccio

4

Ви також можете запустити робочі процеси Автоматизатора за допомогою iCal, якщо ви хочете чогось простого. Інакше я би зробив це через запуск.


Єдине питання з iCal полягає в тому, що ви повинні увійти до системи, щоб виконати завдання (правильно?)
Josh

так, я думаю, що ви повинні увійти для цього. Я б рекомендував процес запуску через це, але деякі люди вважають за краще просто використовувати iCal і завжди
входити

iCal - набагато простіше рішення! Дивіться кришки екрана, які я опублікував. Я впевнено бачу, як вони можуть залякати :-)
Джош

просто для уточнення, ваші скріншоти призначені для налаштування запуску, правда?
jmlumpkin

2

Є два інструменти командного рядка Unix, які роблять те, що ви хочете. atдозволить запланувати завдання, яке потрібно виконати один раз на певний час у майбутньому. Звичайно, частиною завдання може бути запланування іншого завдання.

cron дозволяє планувати завдання, які потрібно регулярно виконувати в один і той же час, виходячи з часу доби, дня тижня тощо.

Варто зазначити, що обидва вони не будуть виконувати завдання, якщо ваша машина не працює на час, коли вони заплановані. Є альтернативи, такі як анакрон, які виконують заплановані завдання наступного разу, коли машина завантажується.


1
Зауважте, що за замовчуванням команда "at" відключена. Використовуйте "man atrun", щоб зрозуміти, як це зробити.
Крістофер Джонсон

2

iCal можна використовувати для запуску AppleScripts , запуску програм та виконання завдань за розкладом.

Існує обмеження щодо використання iCal, але він входить до Mac OS X і відносно простий у налаштуванні. Обмеження та наочний посібник щодо налаштування запланованого AppleScript включені у посилання вище.

Налаштування запланованого AppleScript з iCal на Mac OS X

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.