Remova um agente do launchd
Índice:
A grande maioria dos usuários de Mac não precisará ajustar manualmente launchd e launchctl, mas há momentos em que você desinstala ou para de usar um aplicativo no Mac OS X e um agente de serviço continua carregando desnecessariamente lançado. Isso é irritante, mas esses agentes desonestos são fáceis de remover por meio da linha de comando, então inicie o Terminal e pronto. Além disso, há situações em que usuários avançados podem querer ajustar os agentes carregados no launchd por qualquer motivo.De qualquer forma, detalharemos como listar itens no launchd, como removê-los do launchd no OS X e também como recarregar os agentes no launchd do Mac.
Você precisará ter algum entendimento e conforto ao usar a linha de comando e o Terminal para usá-lo corretamente, tornando-o ideal para usuários mais avançados que tenham conhecimento de daemons de inicialização e como rastreá-los, que, às vezes, é apenas uma questão de encontrar um no Activity Monitor do Mac OS X ou usar o comando launchctl que discutiremos em breve. Se você decidir reverter a modificação, também poderá carregar o serviço ou daemon de volta no launchd usando outro comando, que efetivamente desfaz a etapa inicial de remoção. Vamos lá:
Removendo Agentes e Serviços de inicialização do launchd no OS X
Aqui está como remover um serviço do launchd. Inicie o Terminal e use a seguinte sintaxe com o comando launchctl:
launchctl remove name
Por exemplo, se eu quiser remover um serviço chamado “com.annoying.service” a sintaxe seria:
launchctl remove com.annoying.service
Você pode precisar prefixar o comando com sudo para remover o serviço, neste caso o comando seria:
sudo launchctl remove com.annoying.service
Com o prefixo sudo, você terá que inserir uma senha de administrador antes que o comando seja executado.
Como ver o que está carregado no launchd
Você também pode verificar o que está carregado no launchd usando a seguinte string de comando:
launchctl list
Este comando lista todos os agentes e trabalhos carregados no launchd, permitindo que você manipule facilmente os agentes que estão em execução. Como ele despeja uma tonelada de informações na tela de uma só vez, você pode querer canalizá-lo através dos comandos mais ou menos da seguinte forma:
launchctl list |more
Isso permite que você pressione a tecla Enter para navegar mais lentamente pela lista.
Se você conhece geralmente o serviço que está procurando, também pode usar “grep” para encontrar o serviço de agentes preciso, vamos usar 'mdworker' como exemplo::
launchctl list |grep mdworker
Isso reportaria apenas os seguintes agentes de lançamento:
- 0 com.apple.mdworker.sizing - 0 com.apple.mdworker.single - 0 com.apple.mdworker.shared - 0 com.apple.mdworker .mail - 0 com.apple.mdworker.lsb - 0 com.apple.mdworker.isolation - 0 com.apple.mdworker.bundles - 0 com.apple.mdworker.32bit
Para alguns serviços, o dump da lista também pode mostrar o PID (ID do processo) do serviço ativo.
Carregando um agente de volta ao launchd
Se você decidir que deseja reativar e recarregar um serviço de volta ao launchd, use o sinalizador ‘load’ da seguinte forma:
launchctl load com.example.service.to.load
Alguns agentes carregam instantaneamente sem problemas. Para outros, pode ser necessário reiniciar o Mac antes que o serviço carregado volte a funcionar como pretendido, embora às vezes o logout e o login novamente também sejam suficientes.