publish: & — lancer un processus en arrière-plan

This commit is contained in:
Cédrix
2026-05-16 18:05:23 +02:00
parent c8fb4129b3
commit f1ab79804b
5 changed files with 75 additions and 77 deletions
@@ -1,15 +0,0 @@
{
"title": "`&` — lancer un processus en arrière-plan",
"_updated_at": "2026-05-16 16:05:21",
"slug": "symbole-e-commercial",
"published": true,
"published_at": "2023-02-18 16:23",
"category": "Informatique",
"tags": {
"tags": [
"Bash"
]
},
"seo_title": "",
"seo_description": ""
}
@@ -1,43 +0,0 @@
# `&` — 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
```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.
+30 -14
View File
@@ -1,27 +1,43 @@
# & # `&` — lancer un processus en arrière-plan
![Nom de la section](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.
En bash, le caractère `&` est utilisé pour lancer un processus en arrière-plan (background). Cela signifie que le programme lancé continuera à s'exécuter en arrière-plan, sans bloquer la ligne de commande. Cela peut être utile si vous avez besoin de lancer un programme qui prend du temps à s'exécuter, mais que vous souhaitez continuer à travailler dans la même fenêtre de terminal. ## Exemple de base
Par exemple, si vous tapez la commande suivante: ```bash
```
firefox & firefox &
``` ```
Cela lancera le navigateur web **Firefox** en arrière-plan, sans bloquer la ligne de commande. Vous pourrez alors continuer à travailler dans le terminal pendant que Firefox s'exécute en arrière-plan. 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.
Si vous fermez le terminal, tous les processus lancés en arrière-plan seront également terminés. Si vous voulez lancer un processus en arrière-plan qui ne sera pas affecté par la fermeture du terminal, vous pouvez utiliser les commandes nohup ou screen. 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`.
Il existe des commandes en Bash qui permettent de manipuler des programmes en arrière-plan. Voici quelques exemples : Pour éviter que la sortie du programme ne pollue votre terminal, redirigez-la :
- La commande jobs permet d'afficher la liste des processus en arrière-plan en cours d'exécution dans le shell courant. Chaque processus est identifié par un numéro de tâche (*job number*) et un état (*running*, *stopped*, etc.). Vous pouvez utiliser le numéro de tâche pour interagir avec le processus en question. ```bash
mon_script.sh > sortie.log 2>&1 &
```
- La commande fg (pour "foreground") permet de ramener un processus en arrière-plan au premier plan (foreground). Si vous avez plusieurs processus en arrière-plan, vous pouvez spécifier le numéro de tâche comme argument pour indiquer lequel vous voulez ramener en premier plan. Par exemple, si vous voulez ramener le processus 2 en premier plan, vous pouvez utiliser la commande `fg 2`. ## Gérer les processus en arrière-plan
- La commande bg (pour "background") permet de reprendre l'exécution d'un processus arrêté en arrière-plan. Si vous avez plusieurs processus en arrière-plan, vous pouvez spécifier le numéro de tâche comme argument pour indiquer lequel vous voulez reprendre. Par exemple, si vous voulez reprendre l'exécution du processus 3 en arrière-plan, vous pouvez utiliser la commande `bg 3`. 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) :
- La commande kill permet d'envoyer un signal à un processus en cours d'exécution, ce qui peut permettre de l'arrêter ou de le redémarrer. Si vous avez plusieurs processus en arrière-plan, vous pouvez spécifier le numéro de tâche comme argument pour indiquer lequel vous voulez arrêter. Par exemple, si vous voulez arrêter le processus 4 en arrière-plan, vous pouvez utiliser la commande `kill %4`. - **`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.
Ces commandes peuvent être utiles pour gérer des processus en arrière-plan dans un terminal Bash. ## 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.
+18 -5
View File
@@ -1,18 +1,31 @@
{ {
"uuid": "5b5934cf-def8-4c87-8b71-1dce20b8a1c7", "uuid": "5b5934cf-def8-4c87-8b71-1dce20b8a1c7",
"slug": "symbole-e-commercial", "slug": "symbole-e-commercial",
"title": "&", "title": "`&` — lancer un processus en arrière-plan",
"author": "cedric@abonnel.fr", "author": "cedric@abonnel.fr",
"published": true, "published": true,
"published_at": "2023-02-18 16:23:22", "featured": false,
"published_at": "2023-02-18 16:23",
"created_at": "2023-02-18 16:23:22", "created_at": "2023-02-18 16:23:22",
"updated_at": "2023-02-18 16:23:22", "updated_at": "2026-05-16 16:05:22",
"revisions": [], "revisions": [
{
"n": 1,
"date": "2026-05-16 16:05:22",
"comment": "Titre modifié, tags modifiés, contenu modifié",
"title": "&"
}
],
"cover": "", "cover": "",
"files_meta": [], "files_meta": [],
"external_links": [], "external_links": [],
"seo_title": "", "seo_title": "",
"seo_description": "", "seo_description": "",
"og_image": "", "og_image": "",
"category": "Informatique" "category": "Informatique",
"tags": {
"tags": [
"Bash"
]
}
} }
@@ -0,0 +1,27 @@
# &
![Nom de la section](dummy.png)
En bash, le caractère `&` est utilisé pour lancer un processus en arrière-plan (background). Cela signifie que le programme lancé continuera à s'exécuter en arrière-plan, sans bloquer la ligne de commande. Cela peut être utile si vous avez besoin de lancer un programme qui prend du temps à s'exécuter, mais que vous souhaitez continuer à travailler dans la même fenêtre de terminal.
Par exemple, si vous tapez la commande suivante:
```
firefox &
```
Cela lancera le navigateur web **Firefox** en arrière-plan, sans bloquer la ligne de commande. Vous pourrez alors continuer à travailler dans le terminal pendant que Firefox s'exécute en arrière-plan.
Si vous fermez le terminal, tous les processus lancés en arrière-plan seront également terminés. Si vous voulez lancer un processus en arrière-plan qui ne sera pas affecté par la fermeture du terminal, vous pouvez utiliser les commandes nohup ou screen.
Il existe des commandes en Bash qui permettent de manipuler des programmes en arrière-plan. Voici quelques exemples :
- La commande jobs permet d'afficher la liste des processus en arrière-plan en cours d'exécution dans le shell courant. Chaque processus est identifié par un numéro de tâche (*job number*) et un état (*running*, *stopped*, etc.). Vous pouvez utiliser le numéro de tâche pour interagir avec le processus en question.
- La commande fg (pour "foreground") permet de ramener un processus en arrière-plan au premier plan (foreground). Si vous avez plusieurs processus en arrière-plan, vous pouvez spécifier le numéro de tâche comme argument pour indiquer lequel vous voulez ramener en premier plan. Par exemple, si vous voulez ramener le processus 2 en premier plan, vous pouvez utiliser la commande `fg 2`.
- La commande bg (pour "background") permet de reprendre l'exécution d'un processus arrêté en arrière-plan. Si vous avez plusieurs processus en arrière-plan, vous pouvez spécifier le numéro de tâche comme argument pour indiquer lequel vous voulez reprendre. Par exemple, si vous voulez reprendre l'exécution du processus 3 en arrière-plan, vous pouvez utiliser la commande `bg 3`.
- La commande kill permet d'envoyer un signal à un processus en cours d'exécution, ce qui peut permettre de l'arrêter ou de le redémarrer. Si vous avez plusieurs processus en arrière-plan, vous pouvez spécifier le numéro de tâche comme argument pour indiquer lequel vous voulez arrêter. Par exemple, si vous voulez arrêter le processus 4 en arrière-plan, vous pouvez utiliser la commande `kill %4`.
Ces commandes peuvent être utiles pour gérer des processus en arrière-plan dans un terminal Bash.