Files
abonnel-www/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md
T
2026-05-16 18:05:17 +02:00

2.1 KiB

& — lancer un processus en arrière-plan

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

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 :

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 :

$ 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.