Launchctl разница между нагрузкой и запуском, разгрузкой и остановкой

20

Я читал справочную страницу launchctl и у меня есть несколько вопросов о ее функционировании:

  • В чем разница между загрузкой и запуском, разгрузкой и остановкой?
  • Где найти ярлык задания для демона, он находится в файле plist?
Джейсон Рубинштейн
источник

Ответы:

10

TL; DR

  • Вы обычно хотите использовать launchctl load -wи launchctl unload -w.
  • startи stopобычно зарезервированы для тестирования или отладки работы.

подробности

  • launchctl start <label>: Начинает работу Обычно это зарезервировано только для тестирования или отладки конкретной работы.
  • launchctl stop <label>Останавливает работу Напротив запуска, и вполне возможно, что задание будет немедленно перезапущено, если задание настроено на продолжение работы.

  • launchctl remove <label>: Удаляет задание launchd, но асинхронно. Он не будет ждать, пока задание фактически прекратит работу, прежде чем вернуться, поэтому на этом нет обработки ошибок.

  • launchctl load <path>: Загрузка и запуск задания до тех пор, пока задание не «отключено».
  • launchctl unload <path>: Останавливает и выгружает работу. Работа будет по-прежнему перезапущена при следующем входе в систему / перезагрузке.

  • launchctl load -w <path>: Загрузка и запуск задания, а также пометка задания как «не отключено». Задание будет перезапущено при следующем входе в систему / перезагрузке.
  • launchctl unload -w <path>: Останавливает и выгружает и отключает работу. Задание НЕ будет перезапущено при следующем входе в систему / перезапуске.

Где найти ярлык задания для демона, он находится в файле plist?

Да, он находится в файле plist и обычно совпадает с именем файла plist.

Райан МакГири
источник
7

Загрузка и выгрузка говорит launchd загрузить файл конфигурации. Запускается ли программа и при каких условиях определяется файл plist. Задание, которое в данный момент не выполняется, можно запустить launchctl start ...и остановить с помощью launchctl stop ....

Метка для задания определяется ключом метки, а в названии списка должен также указываться метка задания, за которой следует расширение списка.

Джей Томпсон
источник
6
Как убрать фактор в это? Конкретно чем он отличается от unload?
Христосмен
@chrisortman remove - это выгрузка, за исключением того, что она не ждет, пока работа остановится первой. Он просто сразу возвращает без проверки, если какие-либо ошибки произошли.
Райан