diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json deleted file mode 100644 index af0bcbe..0000000 --- a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.json +++ /dev/null @@ -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": "" -} diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md deleted file mode 100644 index 3b184c2..0000000 --- a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/draft_overlay.md +++ /dev/null @@ -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. \ No newline at end of file diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/index.md b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/index.md index 5e4e0fd..3b184c2 100644 --- a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/index.md +++ b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/index.md @@ -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 & ``` -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. \ No newline at end of file +## 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 diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/meta.json b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/meta.json index c65b6ae..da03b01 100644 --- a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/meta.json +++ b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/meta.json @@ -1,18 +1,31 @@ { "uuid": "5b5934cf-def8-4c87-8b71-1dce20b8a1c7", "slug": "symbole-e-commercial", - "title": "&", + "title": "`&` — lancer un processus en arrière-plan", "author": "cedric@abonnel.fr", "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", - "updated_at": "2023-02-18 16:23:22", - "revisions": [], + "updated_at": "2026-05-16 16:05:22", + "revisions": [ + { + "n": 1, + "date": "2026-05-16 16:05:22", + "comment": "Titre modifié, tags modifiés, contenu modifié", + "title": "&" + } + ], "cover": "", "files_meta": [], "external_links": [], "seo_title": "", "seo_description": "", "og_image": "", - "category": "Informatique" + "category": "Informatique", + "tags": { + "tags": [ + "Bash" + ] + } } diff --git a/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/revisions/0001.md b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/revisions/0001.md new file mode 100644 index 0000000..5e4e0fd --- /dev/null +++ b/5b5934cf-def8-4c87-8b71-1dce20b8a1c7/revisions/0001.md @@ -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. \ No newline at end of file