←→ Underneath: Background Apps · Todos os guias para Mac
Como desativar agentes de inicialização no Mac com segurança
Apagar um .plist de LaunchAgents é o conselho mais comum. Também é a pior forma: a tarefa continua em execução até você reiniciar, e não dá para desfazer. Veja a forma segura e reversível.
Resposta curta: encontre o label da tarefa e execute
launchctl bootout gui/$(id -u)/com.example.label
launchctl disable gui/$(id -u)/com.example.label
O primeiro comando para a tarefa agora. O segundo a mantém desativada depois de reiniciar. launchctl enable desfaz isso.
Antes de começar: não mexa em nada em /System/Library nem em labels que começam com com.apple.. Eles pertencem ao macOS. Deixe em paz as ferramentas de VPN, backup, segurança e drivers, a menos que você esteja removendo a ferramenta.
Passo 1: Encontre a tarefa
Os agentes de inicialização (launch agents) e daemons ficam em três pastas que você pode alterar:
~/Library/LaunchAgents: os seus próprios agentes. Não precisa de senha./Library/LaunchAgents: agentes para todos os usuários. Alterar o arquivo exige uma senha de administrador./Library/LaunchDaemons: daemons do sistema, executados como root. Exigesudo.
Liste o que está carregado agora, sem as tarefas da própria Apple:
launchctl list | grep -v com.apple
As colunas são o ID do processo (- se não estiver em execução), o último status de saída e o label. Você precisa do label.
Passo 2: Verifique o que ela faz
plutil -p ~/Library/LaunchAgents/com.example.label.plist
ProgramArgumentsouProgram: o que ela executa. O caminho aponta para um app que você conhece? Esse app ainda existe?RunAtLoad: inicia a cada início de sessão.KeepAlive: reinicia quando para.StartInterval/StartCalendarInterval: é executada em um horário agendado.
Se o caminho do programa aponta para um app que você apagou, a tarefa é um resto e pode ser removida com segurança. Se é um atualizador, desativá-lo significa que o app não vai se atualizar sozinho.
Passo 3: Faça um backup
mkdir -p ~/LaunchAgents-backup
cp ~/Library/LaunchAgents/com.example.label.plist ~/LaunchAgents-backup/
Passo 4: Pare agora
Para um agente (em qualquer uma das pastas LaunchAgents):
launchctl bootout gui/$(id -u)/com.example.label
Para um daemon em /Library/LaunchDaemons:
sudo launchctl bootout system/com.example.label
Isso descarrega a tarefa e encerra o processo dela. O efeito não sobrevive a um reinício se a tarefa tiver RunAtLoad.
Passo 5: Mantenha desativada
Escolha uma opção.
Opção A: launchctl disable (recomendada)
launchctl disable gui/$(id -u)/com.example.label
Para um daemon: sudo launchctl disable system/com.example.label.
O macOS guarda o label na própria lista de itens desativados, então a tarefa continua desativada mesmo que o app grave o plist de novo. Confira a lista com:
launchctl print-disabled gui/$(id -u)
Opção B: mova o plist para outro lugar
mkdir -p ~/Library/LaunchAgents/Disabled
mv ~/Library/LaunchAgents/com.example.label.plist ~/Library/LaunchAgents/Disabled/
O launchd só lê os arquivos que estão diretamente na pasta LaunchAgents, não em subpastas, então a tarefa não será carregada no próximo início de sessão. O arquivo continua lá se você precisar dele. Se o app recriar o plist, a tarefa volta; a Opção A evita isso.
Opção C: Ajustes do Sistema
Muitas tarefas também aparecem em Ajustes do Sistema › Geral › Itens de Início e Extensões › Permitir em Segundo Plano. Desativar o botão ali também funciona, mas um único botão pode controlar várias tarefas do mesmo desenvolvedor. Veja o que significa “Permitir em Segundo Plano”.
Passo 6: Confira se funcionou
launchctl list | grep com.example.label
Se nada aparecer, a tarefa não está carregada. Reinicie e execute o comando de novo para ter certeza.
Desfazer
Se você usou a Opção A:
launchctl enable gui/$(id -u)/com.example.label
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.example.label.plist
Se você usou a Opção B, mova o arquivo de volta e execute a mesma linha com bootstrap. Para daemons, use sudo e system em vez de gui/$(id -u).
Comandos antigos que você vai ver na internet
launchctl unload -w file.plist e launchctl load -w file.plist ainda funcionam, mas a Apple os chama de legados. bootout, bootstrap, disable e enable são os atuais e mostram erros mais claros.
FAQ
É seguro apagar arquivos em LaunchAgents?
Desativar é mais seguro do que apagar. Apagar um plist não para uma tarefa que já está carregada, e você perde o arquivo se precisar dele de volta. Use launchctl bootout e launchctl disable, ou mova o arquivo para uma pasta de backup.
Devo usar launchctl unload -w?
Ainda funciona, mas a Apple classifica load e unload como legados. No macOS atual, use launchctl bootout para parar uma tarefa e launchctl disable para mantê-la desativada.
Posso desativar agentes de inicialização da Apple em /System/Library?
Não faça isso. Eles fazem parte do macOS, a Proteção da Integridade do Sistema protege os arquivos, e desativá-los pode quebrar recursos como o iCloud, o Spotlight ou as atualizações.
Como desfaço o launchctl disable?
Execute launchctl enable gui/$(id -u)/<label> e depois launchctl bootstrap gui/$(id -u) com o caminho do plist, ou encerre a sessão e inicie de novo.
O app colocou o agente de inicialização de volta. E agora?
Use launchctl disable. Ele desativa o label, então a tarefa continua desativada mesmo que o app grave o plist de novo. Desative também o ajuste “Abrir ao iniciar sessão” do próprio app.