From 05a3a1d8f12a5b93ef5604558160aa0180bcf6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sat, 16 May 2026 18:05:16 +0200 Subject: [PATCH] draft: & --- .../draft_overlay.json | 4 ++ .../draft_overlay.md | 45 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json create mode 100644 5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json new file mode 100644 index 0000000..d479bc0 --- /dev/null +++ b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json @@ -0,0 +1,4 @@ +{ + "title": "`&` — lancer un processus en arrière-plan", + "_updated_at": "2026-05-16 16:05:15" +} diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md new file mode 100644 index 0000000..5429c14 --- /dev/null +++ b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md @@ -0,0 +1,45 @@ +# `&` — lancer un processus en arrière-plan + +![Lancement d'un processus en arrière-plan en bash](dummy.png) + +En bash, le caractère `&` placé à la fin d'une commande lance le processus correspondant **en arrière-plan** : le shell rend immédiatement la main, sans attendre que la commande se termine. C'est pratique pour démarrer un programme long ou interactif tout en continuant à utiliser le même terminal. + +## Exemple de base + +```bash +firefox & +``` + +Cette commande démarre **Firefox** en arrière-plan. Le shell affiche le numéro de tâche (`job`) et le PID du processus, puis vous rend la main aussitôt. + +Attention : par défaut, un processus lancé avec `&` reste rattaché au terminal. Si vous fermez celui-ci, le shell envoie généralement un signal `SIGHUP` qui termine le processus. Pour qu'un programme survive à la fermeture du terminal, utilisez `nohup`, `disown`, ou un multiplexeur comme `tmux` ou `screen`. + +Pour éviter que la sortie du programme ne pollue votre terminal, redirigez-la : + +```bash +mon_script.sh > sortie.log 2>&1 & +``` + +## Gérer les processus en arrière-plan + +Bash fournit quelques commandes essentielles pour manipuler les jobs. Toutes acceptent un identifiant de tâche préfixé par `%` (par exemple `%2` pour la tâche n° 2) : + +- **`jobs`** — liste les processus en arrière-plan du shell courant, avec leur numéro de tâche et leur état (*running*, *stopped*…). +- **`fg %n`** — ramène la tâche `n` au premier plan (*foreground*). +- **`bg %n`** — relance en arrière-plan une tâche précédemment suspendue. +- **`kill %n`** — envoie un signal (par défaut `SIGTERM`) à la tâche `n` pour l'arrêter. + +## Cycle de vie typique d'un job + +Un enchaînement courant illustre bien ces commandes : + +```bash +$ long_script.sh # démarrage au premier plan +^Z # Ctrl+Z : suspend le processus +$ bg # relance en arrière-plan +$ jobs # vérifie l'état +[1]+ Running long_script.sh & +$ fg %1 # ramène au premier plan si besoin +``` + +Avec ces quelques primitives, vous pouvez jongler entre plusieurs tâches dans une même session shell sans ouvrir de nouveau terminal. \ No newline at end of file