Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como Criar e Gerenciar Launch Agents no macOS

Os Launch Agents são uma parte essencial do sistema de gerenciamento de processos no macOS. Eles permitem que você configure scripts e aplicativos para serem executados automaticamente em horários específicos ou sob certas condições. Neste artigo, vamos explorar como criar e gerenciar Launch Agents no macOS.

O Que São Launch Agents?

Launch Agents são arquivos de configuração utilizados pelo launchd, o sistema de inicialização do macOS. Eles são usados para iniciar processos automaticamente quando um usuário faz login ou quando o sistema é inicializado. Esses arquivos são escritos em XML e têm a extensão .plist (Property List).

Estrutura de um Launch Agent

Um arquivo Launch Agent típico contém várias chaves e valores que definem como e quando um processo deve ser iniciado. Aqui está um exemplo básico de um arquivo .plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.myapp</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/myapp</string>
        <string>--option</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Passo a Passo: Criando um Launch Agent

  1. Criar o Arquivo .plist:

    • Abra o Terminal.
    • Use um editor de texto como nano ou vim para criar o arquivo .plist.
    nano ~/Library/LaunchAgents/com.example.myapp.plist
  2. Adicionar Configurações:

    • Copie e cole a estrutura XML acima no arquivo.
    • Modifique os valores conforme necessário (por exemplo, o caminho do programa e os argumentos).
  3. Carregar o Launch Agent:

    • Use o comando launchctl para carregar o Launch Agent.
    launchctl load ~/Library/LaunchAgents/com.example.myapp.plist
  4. Verificar o Status:

    • Verifique se o Launch Agent está ativo.
    launchctl list | grep com.example.myapp

Gerenciando Launch Agents

  • Descarregar um Launch Agent:

    launchctl unload ~/Library/LaunchAgents/com.example.myapp.plist
  • Remover um Launch Agent:

    • Simplesmente descarregue e depois delete o arquivo .plist.
    rm ~/Library/LaunchAgents/com.example.myapp.plist

Exemplos Práticos

Exemplo 1: Executar um Script Shell no Login

  1. Crie um script shell:

    echo '#!/bin/bash' > ~/myscript.sh
    echo 'echo "Hello, World!"' >> ~/myscript.sh
    chmod +x ~/myscript.sh
  2. Crie o arquivo .plist:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.example.myscript</string>
        <key>ProgramArguments</key>
        <array>
            <string>/bin/bash</string>
            <string>/Users/$(whoami)/myscript.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
  3. Salve o arquivo como com.example.myscript.plist em ~/Library/LaunchAgents/.

  4. Carregue o Launch Agent:

    launchctl load ~/Library/LaunchAgents/com.example.myscript.plist

Exemplo 2: Manter um Serviço Vivo

Para garantir que um serviço seja reiniciado automaticamente se falhar, adicione a chave KeepAlive:

<key>KeepAlive</key>
<true/>

Conclusão

Launch Agents são ferramentas poderosas para automatizar tarefas no macOS. Eles permitem que você configure aplicativos e scripts para serem executados automaticamente, proporcionando maior controle e eficiência no gerenciamento de processos. Com os exemplos e passos fornecidos, você deve estar bem equipado para criar e gerenciar seus próprios Launch Agents.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.