# O que são LaunchAgents e LaunchDaemons no Mac e quais dá para remover

> O que as pastas do launchd guardam, como ler um plist antes de julgar, como parar e remover com segurança um job que sobrou e quais pastas deixar em paz.

Published: 2026-11-07 | Updated: 2026-11-09

LaunchAgents e LaunchDaemons são pastas de pequenos arquivos `.plist` que dizem ao `launchd` do macOS o que iniciar em segundo plano e quando. Um agent roda para um único usuário conectado e pode mostrar coisas na tela; um daemon roda para o sistema inteiro, sem interface de usuário. Em geral você pode remover os itens de terceiros de um app que não tem mais. Deixe `/System/Library` em paz e pare um job antes de mover o arquivo dele.

## As cinco pastas

O [guia do launchd](https://support.apple.com/guide/terminal/apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac) da Apple lista estes locais:

| Pasta | O que guarda | Mexer |
| --- | --- | --- |
| `~/Library/LaunchAgents` | Agents de terceiros só para a sua conta | Sim, com cuidado |
| `/Library/LaunchAgents` | Agents de terceiros para todos os usuários | Sim, com senha de administrador |
| `/Library/LaunchDaemons` | Daemons de sistema de terceiros | Sim, com senha de administrador |
| `/System/Library/LaunchAgents` | Agents da Apple | Não |
| `/System/Library/LaunchDaemons` | Daemons da Apple | Não |

A página `man launchd` traça a linha: um daemon é um serviço de todo o sistema, com uma instância para todos os clientes, e não deve exibir interface de usuário. Um agent roda por usuário, e o trabalho que interage com o usuário pertence a ele. Na prática, um auxiliar da barra de menus ou um atualizador tende a ser um agent, e um serviço de VPN, um auxiliar de driver de áudio ou um mecanismo de backup tende a ser um daemon.

Nem todo item em segundo plano tem um arquivo aqui. Os apps podem manter o plist dentro do próprio bundle, então **Ajustes do Sistema › Geral › Itens de Início de Sessão e Extensões** pode listar algo que estas pastas não têm. [Como impedir que apps abram na inicialização](https://mole.fit/pt-br/blog/how-to-disable-startup-programs-on-mac) trata dessa tela.

## Leia um antes de julgar

```bash
ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons
plutil -p ~/Library/LaunchAgents/com.example.helper.plist
```

Quatro chaves contam a maior parte da história:

| Chave | O que significa |
| --- | --- |
| `Label` | O nome do job, que é o que o `launchctl` usa |
| `Program` ou `ProgramArguments` | O que ele executa. Este é o caminho a conferir |
| `RunAtLoad` | Ele começa assim que o job carrega, em geral no login ou na inicialização |
| `KeepAlive` | O `launchd` o reinicia se ele parar, então encerrá-lo não dura |

`com.example.helper` acima é um exemplo, então use o nome do seu próprio arquivo. Se `ProgramArguments` aponta para um app que você removeu, aquele arquivo é um resto e é seguro tirá-lo. Se aponta para um app que você ainda usa, removê-lo pode quebrar as atualizações, a sincronização, o licenciamento, a VPN ou o áudio desse app.

## Como remover um

Pare o job primeiro. Mover o arquivo não para um job que já está rodando, e ele continua carregado até o logout ou a reinicialização.

Para um agent na sua conta:

```bash
launchctl bootout gui/$(id -u)/com.example.helper
mv ~/Library/LaunchAgents/com.example.helper.plist ~/.Trash/
```

Para um daemon em `/Library/LaunchDaemons`:

```bash
sudo launchctl bootout system/com.example.helper
sudo mv /Library/LaunchDaemons/com.example.helper.plist ~/.Trash/
```

Um agent em `/Library/LaunchAgents` carrega na sessão de cada usuário, então pare-o com a forma `gui/$(id -u)/` e mova o arquivo com `sudo mv`. Use o valor de `Label` nesses comandos, que pode ser diferente do nome do arquivo.

Confirme que sumiu com `launchctl print gui/$(id -u)/com.example.helper` ou `sudo launchctl print system/com.example.helper`, que deve informar que o serviço não foi encontrado. Depois use o app por um dia. Se algo quebrou, coloque o arquivo de volta e reinicie.

Para manter o arquivo e só impedir que o job carregue:

```bash
launchctl disable gui/$(id -u)/com.example.helper
launchctl print-disabled gui/$(id -u)
```

`launchctl enable` com o mesmo alvo desfaz isso.

## O que não fazer

- Não mexa em `/System/Library/LaunchAgents` nem em `/System/Library/LaunchDaemons`. Elas ficam no volume de sistema somente leitura e pertencem ao macOS.
- Não apague só pelo nome da empresa. Um arquivo com o nome de um produto de segurança ou de um driver de dispositivo pode ser o jeito de esse produto continuar funcionando, e em um Mac gerenciado pode ser política da empresa.
- Não remova o plist de um app que você ainda usa esperando que só o aviso de atualização suma. Confira antes o ajuste do próprio app.
- Não use guias antigos que mandam usar `launchctl unload`. O manual da Apple o lista como um subcomando legado, e `bootout` é a forma atual.

## Onde o Mole entra

A aba **Apps** do [Mole](https://mole.fit/pt-br/) tem um segmento **Início** que lista estes itens, lê o `Label` de cada plist e dá aos auxiliares o nome do app dono. Ela os agrupa sob títulos como **Itens de início** e **Serviços em segundo plano**, e sinaliza **Programa ausente** quando um job aponta para algo que não existe mais, o que é o sinal habitual de um resto. Para um plist do launchd verificado em `~/Library/LaunchAgents`, `/Library/LaunchAgents` ou `/Library/LaunchDaemons`, você pode desligá-lo com o interruptor da linha, ligá-lo de novo ou movê-lo para a Lixeira, e o Mole para o job primeiro. Produtos de segurança e de gerenciamento ficam bloqueados, e os itens que ele não consegue alterar com segurança abrem os Ajustes do Sistema. Quando um processo em **Status** parece desconhecido, **Por que está em execução?** nomeia o serviço do launchd e o plist dele. Desinstalar um app pelo Mole também oferece os itens de inicialização dele para revisão.

## Perguntas frequentes

### É seguro apagar arquivos em LaunchAgents?

Sim para um resto de um app que você removeu, e às vezes não para um app que você ainda usa. Leia `ProgramArguments` com `plutil -p` primeiro e pare o job com `launchctl bootout` antes de mover o arquivo para a Lixeira, para poder recolocá-lo.

### Qual é a diferença entre um LaunchAgent e um LaunchDaemon?

Um agent roda para cada usuário conectado e pode interagir com ele. Um daemon roda em todo o sistema, com uma instância, em geral antes de alguém entrar, e não tem interface de usuário.

### Por que um LaunchAgent removido voltou?

O app que o instalou ainda está no Mac e o gravou de novo quando abriu ou atualizou. Desligue o recurso no app ou desinstale o app, já que remover só o arquivo não dura.

### Um LaunchAgent pode ser malware?

Pode. Adware persistente costuma se instalar aqui, porque sobrevive a uma reinicialização. Um `Label` desconhecido que executa algo de uma pasta oculta ou de um caminho temporário merece um olhar mais atento, então pesquise o caminho exato e confira quem assinou o programa.

### Preciso reiniciar depois de remover um?

Não, se você usou `launchctl bootout`, que o para na hora. Se você só moveu o arquivo, o job continua carregado até você sair da sessão ou reiniciar.

---

Canonical HTML page: https://mole.fit/pt-br/blog/launchagents-launchdaemons-mac
Blog index for agents: https://mole.fit/pt-br/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
