Удобная оболочка или замена команды `at` под OS X

370
kuzzooroo

Я часто хочу, чтобы мой компьютер автоматически что-то добавил в мой список дел в будущем. В некоторых случаях я хочу добавлять одно и то же через равные промежутки времени. В этих случаях я использую OS X launchdчерез Lingon . Но у меня нет отличного решения для команд, которые я хочу запустить только один раз. Судя по Lingon X, launchdэто не ответ. Когда я добавляю новое событие, параметры Lingon для «Когда»

  1. При запуске и при сохранении
  2. Всегда
  3. Монтирование тома
  4. Время

и если я выберу «Время», я получу следующие варианты: «Каждый час», «Каждый день» и т. д.

Я считаю, что в принципе atкоманда является ответом, НО:

  1. atработает в командной строке; Я бы предпочел графический интерфейс. Возможно, кто-то написал интерфейс? Я не могу найти пробежку, но слово "at" - это обычное слово, и его трудно найти в Google.
  2. atrunпо умолчанию в Mac OS отключен, по- видимому, потому что он неэффективен по энергопотреблению : «at - это cronjob, который по умолчанию планируется запускать каждую минуту. Он просматривает свой каталог на наличие заданий с истекшим сроком действия и запускает их. Минуту, накопитель мало спит, что вызывает проблемы, особенно на ноутбуках ». Для моего приложения работа, выполняемая с опозданием на 30 минут, не является проблемой, поэтому, возможно, atrunс более длинным циклом будет работать.

Каков предпочтительный способ запланировать запуск команд только один раз в будущем?

0

2 ответа на вопрос

0
phoops

Вы можете запланировать выполнение сценариев / команд из iCal, создав событие и установив будильник «Запуск сценария».

По желанию, если вы хотите регулярно выполнять некоторые команды - вам действительно стоит изучить использование Cronjobs. Cronjobs позволяет вам указать команду, которая будет выполняться в определенное время.

Существуют различные графические интерфейсы для управления cronjob на Mac:

Так что вы посоветовали бы использовать cronjobs вместо launchd? В каких контекстах? В OS X `man crontab` говорит:« Примечание Дарвина: хотя cron (8) и crontab (5) официально поддерживаются в Darwin, их функциональность включена в launchd (8), который обеспечивает более гибкий способ автоматического выполнения команд «. В любом случае, мой вопрос здесь заключается в том, как выполнять задания на неповторяющейся основе; Похоже, что iCal - разумная возможность. Благодарю. kuzzooroo 10 лет назад 0
0
kuzzooroo

Скрипт-таймер кажется одним из вариантов. Автор пишет: «Да, вы можете запланировать выполнение задания только один раз в Script Timer. Это рассматривается как особый случай для повторяющегося задания - вы просто устанавливаете повторяющийся временной интервал на ноль».