# Cosa sono LaunchAgents e LaunchDaemons su Mac e quali si possono rimuovere

> Cosa contengono le cartelle di launchd, come leggere un plist prima di giudicarlo, come rimuovere in sicurezza un job residuo e quali cartelle non toccare.

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

LaunchAgents e LaunchDaemons sono cartelle di piccoli file `.plist` che dicono a `launchd` di macOS cosa avviare in background e quando. Un agent gira per un singolo utente connesso e può mostrare cose a schermo; un daemon gira per l'intero sistema, senza interfaccia utente. Di solito puoi rimuovere gli elementi di terze parti di un'app che non hai più. Lascia stare `/System/Library` e ferma un job prima di spostare il suo file.

## Le cinque cartelle

La [guida a launchd](https://support.apple.com/guide/terminal/apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac) di Apple elenca queste posizioni:

| Cartella | Cosa contiene | Si può toccare |
| --- | --- | --- |
| `~/Library/LaunchAgents` | Agent di terze parti solo per il tuo account | Sì, con attenzione |
| `/Library/LaunchAgents` | Agent di terze parti per tutti gli utenti | Sì, con la password da amministratore |
| `/Library/LaunchDaemons` | Daemon di sistema di terze parti | Sì, con la password da amministratore |
| `/System/Library/LaunchAgents` | Gli agent di Apple | No |
| `/System/Library/LaunchDaemons` | I daemon di Apple | No |

La pagina `man launchd` traccia il confine: un daemon è un servizio di sistema con una sola istanza per tutti i client e non dovrebbe mostrare un'interfaccia utente. Un agent gira per utente, e il lavoro che interagisce con un utente va lì. In pratica, un helper della barra dei menu o un programma di aggiornamento tende a essere un agent, mentre un servizio VPN, l'helper di un driver audio o un motore di backup tende a essere un daemon.

Non ogni elemento in background ha un file qui. Le app possono tenere il proprio plist dentro il loro bundle, quindi **Impostazioni di Sistema › Generali › Elementi login ed estensioni** può elencare qualcosa che queste cartelle non contengono. [Come impedire alle app di aprirsi all'avvio](https://mole.fit/it/blog/how-to-disable-startup-programs-on-mac) tratta quella schermata.

## Leggine uno prima di giudicarlo

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

Quattro chiavi raccontano quasi tutta la storia:

| Chiave | Cosa significa |
| --- | --- |
| `Label` | Il nome del job, quello che usa `launchctl` |
| `Program` o `ProgramArguments` | Cosa esegue. È il percorso da controllare |
| `RunAtLoad` | Parte appena il job viene caricato, di solito al login o all'avvio |
| `KeepAlive` | `launchd` lo riavvia se si ferma, quindi chiuderlo non dura |

`com.example.helper` qui sopra è un segnaposto, quindi usa il nome del tuo file. Se `ProgramArguments` punta a un'app che hai rimosso, quel file è un residuo e si può togliere senza rischi. Se punta a un'app che usi ancora, rimuoverlo può rompere gli aggiornamenti, la sincronizzazione, la licenza, la VPN o l'audio di quell'app.

## Come rimuoverne uno

Ferma prima il job. Spostare il file non ferma un job già in esecuzione, che resta caricato fino al logout o al riavvio.

Per un agent nel tuo account:

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

Per un daemon in `/Library/LaunchDaemons`:

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

Un agent in `/Library/LaunchAgents` si carica nella sessione di ogni utente, quindi fermalo con la forma `gui/$(id -u)/` e sposta il file con `sudo mv`. In quei comandi usa il valore di `Label`, che può essere diverso dal nome del file.

Conferma che sia sparito con `launchctl print gui/$(id -u)/com.example.helper` o `sudo launchctl print system/com.example.helper`, che dovrebbe riferire che il servizio non è stato trovato. Poi usa l'app per un giorno. Se qualcosa si è rotto, rimetti il file al suo posto e riavvia.

Per tenere il file e impedire solo che il job si carichi:

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

`launchctl enable` con lo stesso target lo annulla.

## Cosa non fare

- Non toccare `/System/Library/LaunchAgents` o `/System/Library/LaunchDaemons`. Stanno sul volume di sistema di sola lettura e appartengono a macOS.
- Non eliminare in base al solo nome dell'azienda. Un file con il nome di un prodotto di sicurezza o di un driver può essere il modo in cui quel prodotto continua a funzionare, e su un Mac gestito può essere una politica aziendale.
- Non rimuovere il plist di un'app che usi ancora aspettandoti che sparisca solo la notifica di aggiornamento. Controlla prima l'impostazione dell'app stessa.
- Non usare vecchie guide che dicono `launchctl unload`. Il manuale di Apple lo elenca come sottocomando legacy, e `bootout` è la forma attuale.

## Dove entra Mole

La scheda **App** di [Mole](https://mole.fit/it/) ha un segmento **Avvio** che elenca questi elementi, legge il `Label` di ogni plist e dà agli helper il nome dell'app a cui appartengono. Li raggruppa sotto titoli come **Elementi login** e **Servizi in background**, e segnala **Programma assente** quando un job punta a qualcosa che non esiste più, il segno consueto di un residuo. Per un plist launchd controllato in `~/Library/LaunchAgents`, `/Library/LaunchAgents` o `/Library/LaunchDaemons`, puoi disattivarlo con l'interruttore della riga, riattivarlo o spostarlo nel Cestino, e Mole ferma prima il job. I prodotti di sicurezza e di gestione restano bloccati, e gli elementi che non può modificare in sicurezza aprono invece Impostazioni di Sistema. Quando un processo in **Stato** ti sembra sconosciuto, **Perché è in esecuzione?** indica il servizio launchd e il suo plist. Anche disinstallare un'app con Mole propone i suoi elementi di avvio da rivedere.

## Domande frequenti

### È sicuro eliminare i file in LaunchAgents?

Sì per il residuo di un'app che hai rimosso, e a volte no per un'app che usi ancora. Leggi prima `ProgramArguments` con `plutil -p`, e ferma il job con `launchctl bootout` prima di spostare il file nel Cestino, così puoi rimetterlo al suo posto.

### Qual è la differenza tra un LaunchAgent e un LaunchDaemon?

Un agent gira per ogni utente connesso e può interagire con quell'utente. Un daemon gira a livello di sistema con una sola istanza, di solito prima che qualcuno acceda, e non ha interfaccia utente.

### Perché un LaunchAgent rimosso è tornato?

L'app che lo ha installato è ancora sul Mac e lo ha riscritto alla successiva apertura o al successivo aggiornamento. Disattiva la funzione nell'app, o disinstalla l'app, perché rimuovere solo il file non dura.

### Un LaunchAgent può essere un malware?

Sì. L'adware persistente si installa spesso qui, perché sopravvive al riavvio. Un `Label` sconosciuto che esegue qualcosa da una cartella nascosta o da un percorso temporaneo merita un esame più attento: cerca il percorso esatto e controlla chi ha firmato il programma.

### Devo riavviare dopo averne rimosso uno?

Non se hai usato `launchctl bootout`, che lo ferma subito. Se hai solo spostato il file, il job resta caricato finché non esci dalla sessione o riavvii.

---

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