publish: & — lancer un processus en arrière-plan
This commit is contained in:
@@ -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.
|
|
||||||
@@ -1,27 +1,43 @@
|
|||||||
# &
|
# `&` — 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.
|
||||||
|
|
||||||
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.
|
||||||
@@ -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 @@
|
|||||||
|
# &
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
Reference in New Issue
Block a user