# Que sont LaunchAgents et LaunchDaemons sur Mac et lesquels peut-on supprimer

> Ce que contiennent les dossiers launchd, comment lire un plist avant de juger, comment arrêter et retirer sans risque une tâche résiduelle, et quels dossiers laisser tranquilles.

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

LaunchAgents et LaunchDaemons sont des dossiers de petits fichiers `.plist` qui indiquent à `launchd`, le gestionnaire de tâches de macOS, ce qu’il doit lancer en arrière-plan et quand. Un agent s’exécute pour un seul utilisateur connecté et peut afficher des éléments à l’écran ; un daemon s’exécute pour tout le système, sans interface. Vous pouvez en général retirer les éléments tiers d’une app que vous n’avez plus. Ne touchez pas à `/System/Library`, et arrêtez une tâche avant de déplacer son fichier.

## Les cinq dossiers

Le [guide launchd](https://support.apple.com/guide/terminal/apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac) d’Apple liste ces emplacements :

| Dossier | Ce qu’il contient | Peut-on y toucher |
| --- | --- | --- |
| `~/Library/LaunchAgents` | Les agents tiers de votre compte uniquement | Oui, avec prudence |
| `/Library/LaunchAgents` | Les agents tiers de tous les utilisateurs | Oui, avec un mot de passe administrateur |
| `/Library/LaunchDaemons` | Les daemons système tiers | Oui, avec un mot de passe administrateur |
| `/System/Library/LaunchAgents` | Les agents d’Apple | Non |
| `/System/Library/LaunchDaemons` | Les daemons d’Apple | Non |

La page `man launchd` trace la limite : un daemon est un service pour tout le système, avec une seule instance pour tous les clients, et il ne doit pas afficher d’interface utilisateur. Un agent s’exécute par utilisateur, et c’est là que va le travail qui interagit avec l’utilisateur. En pratique, un assistant de barre des menus ou un outil de mise à jour est plutôt un agent, et un service VPN, un assistant de pilote audio ou un moteur de sauvegarde est plutôt un daemon.

Tous les éléments d’arrière-plan n’ont pas de fichier ici. Les apps peuvent garder leur plist dans leur propre bundle, de sorte que **Réglages Système › Général › Éléments d’ouverture et extensions** peut lister des éléments absents de ces dossiers. [Comment empêcher des apps de s’ouvrir au démarrage](https://mole.fit/fr/blog/how-to-disable-startup-programs-on-mac) traite de cet écran.

## Lisez-en un avant de le juger

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

Quatre clés racontent l’essentiel :

| Clé | Ce qu’elle signifie |
| --- | --- |
| `Label` | Le nom de la tâche, celui qu’utilise `launchctl` |
| `Program` ou `ProgramArguments` | Ce qu’elle exécute. C’est le chemin à vérifier |
| `RunAtLoad` | Elle démarre dès que la tâche est chargée, en général à l’ouverture de session ou au démarrage |
| `KeepAlive` | `launchd` la relance si elle s’arrête, la quitter ne dure donc pas |

`com.example.helper` ci-dessus est un exemple, utilisez donc le nom de votre propre fichier. Si `ProgramArguments` pointe vers une app que vous avez supprimée, ce fichier est un reste et on peut le retirer sans risque. S’il pointe vers une app que vous utilisez encore, le retirer peut casser les mises à jour, la synchronisation, la licence, le VPN ou l’audio de cette app.

## Comment en retirer un

Arrêtez d’abord la tâche. Déplacer le fichier n’arrête pas une tâche déjà en cours, et elle reste chargée jusqu’à la fermeture de session ou au redémarrage.

Pour un agent de votre compte :

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

Pour un daemon dans `/Library/LaunchDaemons` :

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

Un agent dans `/Library/LaunchAgents` se charge dans la session de chaque utilisateur : arrêtez-le donc avec la forme `gui/$(id -u)/` et déplacez le fichier avec `sudo mv`. Utilisez dans ces commandes la valeur de `Label`, qui peut différer du nom du fichier.

Vérifiez qu’elle a disparu avec `launchctl print gui/$(id -u)/com.example.helper` ou `sudo launchctl print system/com.example.helper`, qui doit indiquer que le service est introuvable. Utilisez ensuite l’app pendant une journée. Si quelque chose a cessé de marcher, remettez le fichier en place et redémarrez.

Pour garder le fichier et empêcher seulement le chargement de la tâche :

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

`launchctl enable` avec la même cible l’annule.

## Ce qu’il ne faut pas faire

- Ne touchez pas à `/System/Library/LaunchAgents` ni à `/System/Library/LaunchDaemons`. Ils se trouvent sur le volume système en lecture seule, et appartiennent à macOS.
- Ne supprimez pas d’après le seul nom d’une entreprise. Un fichier portant le nom d’un produit de sécurité ou d’un pilote de périphérique peut être ce qui fait fonctionner ce produit, et sur un Mac géré il peut relever de la politique de l’entreprise.
- Ne retirez pas le plist d’une app que vous utilisez encore en espérant ne faire disparaître que son rappel de mise à jour. Vérifiez d’abord le réglage de l’app elle-même.
- N’utilisez pas les vieux guides qui disent `launchctl unload`. Le manuel d’Apple le range parmi les sous-commandes héritées, et `bootout` est la forme actuelle.

## La place de Mole

L’onglet **Apps** de [Mole](https://mole.fit/fr/) a un segment **Démarrage** qui liste ces éléments, lit le `Label` de chaque plist et nomme les assistants d’après l’app à laquelle ils appartiennent. Il les regroupe sous des intitulés comme **Éléments de connexion** et **Services en arrière-plan**, et signale **Programme introuvable** quand une tâche pointe vers quelque chose qui n’existe plus, signe habituel d’un reste. Pour un plist launchd vérifié dans `~/Library/LaunchAgents`, `/Library/LaunchAgents` ou `/Library/LaunchDaemons`, vous pouvez le désactiver avec l’interrupteur de la ligne, le réactiver ou le déplacer vers la Corbeille, et Mole arrête d’abord la tâche. Les produits de sécurité et de gestion restent verrouillés, et les éléments qu’il ne peut pas modifier sans risque ouvrent plutôt Réglages Système. Quand un processus de **État** vous paraît inconnu, **Pourquoi tourne-t-il ?** nomme le service launchd et son plist. Désinstaller une app avec Mole propose aussi de passer en revue ses éléments de lancement.

## FAQ

### Est-il sûr de supprimer des fichiers dans LaunchAgents ?

Oui pour le reste d’une app que vous avez supprimée, et parfois non pour une app que vous utilisez encore. Lisez d’abord `ProgramArguments` avec `plutil -p`, et arrêtez la tâche avec `launchctl bootout` avant de déplacer le fichier vers la Corbeille pour pouvoir le remettre.

### Quelle est la différence entre un LaunchAgent et un LaunchDaemon ?

Un agent s’exécute pour chaque utilisateur connecté et peut interagir avec lui. Un daemon s’exécute pour tout le système avec une seule instance, en général avant que quiconque se connecte, et n’a pas d’interface utilisateur.

### Pourquoi un LaunchAgent supprimé est-il revenu ?

L’app qui l’avait installé est toujours sur le Mac et l’a réécrit à sa prochaine ouverture ou mise à jour. Désactivez la fonction dans l’app, ou désinstallez l’app, car retirer le fichier seul ne dure pas.

### Un LaunchAgent peut-il être un malware ?

Oui. Les logiciels publicitaires persistants s’installent souvent ici, parce qu’ils survivent à un redémarrage. Un `Label` inconnu qui exécute quelque chose depuis un dossier caché ou un chemin temporaire mérite un examen plus attentif : cherchez le chemin exact et vérifiez qui a signé le programme.

### Dois-je redémarrer après en avoir retiré un ?

Pas si vous avez utilisé `launchctl bootout`, qui l’arrête aussitôt. Si vous avez seulement déplacé le fichier, la tâche reste chargée jusqu’à la fermeture de session ou au redémarrage.

---

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