GNU/Linux >> Tutoriels Linux >  >> Linux

Bg, Fg, &, Ctrl-Z - 5 exemples pour gérer les tâches d'arrière-plan Unix

Lorsque vous exécutez un script shell Unix ou une commande qui prend beaucoup de temps, vous pouvez l'exécuter en arrière-plan.

Dans cet article, voyons comment exécuter une tâche en arrière-plan, mettre une tâche au premier plan, afficher toutes les tâches en arrière-plan et supprimer une tâche en arrière-plan.

1. Exécution d'une tâche en arrière-plan

L'ajout d'une esperluette ( &) à la commande exécute le travail en arrière-plan.

Par exemple, lorsque vous exécutez une commande de recherche dont l'exécution peut prendre beaucoup de temps, vous pouvez la placer en arrière-plan, comme indiqué ci-dessous. L'exemple suivant trouve tous les fichiers sous le système de fichiers racine qui ont changé au cours des dernières 24 heures.

# find / -ctime -1 > /tmp/changed-file-list.txt &

2. Envoi du travail de premier plan actuel en arrière-plan à l'aide de CTRL-Z et de la commande bg

Vous pouvez envoyer une tâche de premier plan déjà en cours d'exécution en arrière-plan comme expliqué ci-dessous :

  • Appuyez sur "CTRL+Z" pour suspendre la tâche de premier plan en cours.
  • Exécutez bg pour que cette commande s'exécute en arrière-plan.

Par exemple, si vous avez oublié d'exécuter une tâche en arrière-plan, vous n'avez pas besoin de tuer la tâche en cours et de démarrer une nouvelle tâche en arrière-plan. Au lieu de cela, suspendez la tâche en cours et placez-la en arrière-plan, comme indiqué ci-dessous.

# find / -ctime -1 > /tmp/changed-file-list.txt

# [CTRL-Z]
[2]+  Stopped                 find / -ctime -1 > /tmp/changed-file-list.txt

# bg

3. Afficher toutes les tâches en arrière-plan à l'aide de la commande jobs

Vous pouvez lister les tâches en arrière-plan avec la commande jobs . Exemple de sortie de la commande jobs :

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

4. Faire passer une tâche de l'arrière-plan au premier plan à l'aide de la commande fg

Vous pouvez mettre une tâche en arrière-plan au premier plan à l'aide de la commande fg . Lorsqu'il est exécuté sans arguments, il place le travail d'arrière-plan le plus récent au premier plan.

# fg

Si vous avez plusieurs travaux au sol en arrière-plan et que vous souhaitez mettre un certain travail au premier plan, exécutez la commande jobs qui affichera l'ID et la commande du travail.

Dans l'exemple suivant, fg %1 amènera le travail n° 1 (c'est-à-dire download-file.sh) au premier plan.

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

# fg %1

5. Arrêtez une tâche d'arrière-plan spécifique à l'aide de kill %

Si vous souhaitez supprimer une tâche d'arrière-plan spécifique, supprimez %job-number. Par exemple, pour tuer le travail 2, utilisez

# kill %2

Pour tuer un travail de premier plan, utilisez l'une des méthodes spécifiées dans notre article précédent 4 façons de tuer un processus — kill, killall, pkill, xkill.


Linux
  1. Utilisation d'at pour les tâches cron à usage unique sous Linux

  2. Gnu Parallel Vs &(i Mean Background) Vs Xargs -p ?

  3. 5 Exemples de commandes UNIX / Linux Traceroute

  4. 10 exemples de commandes Cat pour gérer des fichiers sous Linux / UNIX

  5. exemples de commandes tail sous UNIX/Linux

DOS vers Unix :commandes et exemples

Tâches Cron planifiées

Comment utiliser la commande Jobs sous Linux

15 exemples de commande Linux sfdisk pour gérer les partitions de disque

Linux Crontab :15 exemples de tâches Cron impressionnants

Commande Unix LS :15 exemples pratiques