Launchctl diferença entre carregar e iniciar, descarregar e parar

22

Eu estava lendo a página do manual launchctl e tenho algumas perguntas sobre o seu funcionamento:

  • Qual é a diferença entre carregar e iniciar, descarregar e parar?
  • Onde encontro o rótulo do trabalho para um daemon, está no arquivo plist?
Jason Rubenstein
fonte

Respostas:

14

TL; DR

  • Você normalmente deseja usar launchctl load -we launchctl unload -w.
  • starte stopgeralmente são reservados para testar ou depurar um trabalho.

Detalhes

  • launchctl start <label>: Inicia o trabalho. Isso geralmente é reservado apenas para testar ou depurar um trabalho específico.
  • launchctl stop <label>: Interrompe o trabalho. Oposto ao início, e é possível que o trabalho seja reiniciado imediatamente se o trabalho estiver configurado para continuar em execução.

  • launchctl remove <label>: Remove o trabalho de launchd, mas de forma assíncrona. Ele não esperará que o trabalho realmente pare antes de retornar, portanto, não há tratamento de erros neste.

  • launchctl load <path>: Carrega e inicia o trabalho, desde que não esteja "desativado".
  • launchctl unload <path>: Interrompe e descarrega o trabalho. O trabalho ainda será reiniciado no próximo login / reinicialização.

  • launchctl load -w <path>: Carrega e inicia o trabalho, marcando-o como "não desativado". O trabalho será reiniciado no próximo login / reinicialização.
  • launchctl unload -w <path>: Interrompe, descarrega e desativa o trabalho. O trabalho NÃO será reiniciado no próximo login / reinicialização.

Onde encontro o rótulo do trabalho para um daemon, está no arquivo plist?

Sim, está no arquivo plist e normalmente corresponde ao nome do arquivo do arquivo plist.

Ryan McGeary
fonte
Obrigado, me salvou algumas horas 👏🏻
Dana Woodman
7

Carregar e descarregar informa ao launchd para carregar o arquivo de configuração. Se ele executa o programa e sob quais condições é determinado pelo arquivo plist. Um trabalho que não está em execução no momento pode ser iniciado launchctl start ...e interrompido launchctl stop ....

O rótulo do trabalho é definido pela chave do rótulo, e o nome do plist também deve ser o rótulo do trabalho, seguido pela extensão do plist.

Jay Thompson
fonte
6
Como remover o fator nisso? Especificamente, como é diferente de descarregar?
chrisortman
O @chrisortman remove é como descarregar, exceto pelo fato de não esperar o trabalho parar primeiro. Ele retorna imediatamente sem verificar se ocorreu algum erro.
Ryan McGeary