GNU/Linux >> Tutoriels Linux >  >> Linux

Exécution de commandes Linux en arrière-plan et au premier plan

Si vous avez une tâche de longue durée, il n'est pas toujours sage d'attendre qu'elle se termine. Je veux dire pourquoi garder le terminal occupé pour une commande particulière ? Sous Linux, vous pouvez envoyer une commande ou un processus en arrière-plan afin que la commande s'exécute mais que le terminal soit libre pour que vous puissiez exécuter d'autres commandes.

Dans ce tutoriel, je vais vous montrer quelques façons d'envoyer un processus en arrière-plan. Je vais également vous montrer comment ramener les processus d'arrière-plan au premier plan.

Démarrer directement un processus Linux en arrière-plan

Si vous savez que la commande ou le processus va prendre beaucoup de temps, il serait préférable de lancer la commande en arrière-plan elle-même.

Pour exécuter une commande Linux en arrière-plan, il vous suffit d'ajouter une esperluette (&) à la fin de la commande, comme ceci :

your_command &

Prenons une simple commande bash sleep et envoyons-la en arrière-plan.

sleep 60 &

Lorsque la commande se termine en arrière-plan, vous devriez voir des informations à ce sujet sur le terminal.

[1]+  Done                    sleep 60

Envoie un processus Linux en cours d'exécution en arrière-plan

Si vous avez déjà exécuté un programme et réalisé que vous auriez dû l'exécuter en arrière-plan, ne vous inquiétez pas. Vous pouvez également envoyer un processus en cours d'exécution en arrière-plan.

Ce que vous devez faire ici est d'utiliser Ctrl+Z pour suspendre le processus en cours, puis utilisez 'bg ‘ (abréviation de background) pour envoyer le processus en arrière-plan. Le processus suspendu s'exécutera désormais en arrière-plan.

running_command
^z
bg

Prenons le même exemple que précédemment.

[email protected]:~$ sleep 60
^Z
[1]+  Stopped                 sleep 60
[email protected]:~$ bg
[1]+ sleep 60 &

Voir tous les processus exécutés en arrière-plan

Maintenant que vous savez comment envoyer les processus en arrière-plan, vous voudrez peut-être savoir quelles commandes s'exécutent en arrière-plan.

Pour cela, vous pouvez entrer cette commande dans le terminal :

jobs

Mettons d'abord quelques commandes en arrière-plan.

firefox &
gedit &
vim &

Maintenant, la commande jobs vous montrera tous les jobs/processus/commandes en cours d'exécution en arrière-plan comme ceci :

jobs
[1]   Running                 firefox &
[2]-  Running                 gedit &
[3]+  Stopped                 vim

Remarquez-vous les nombres [1], [2] et [3] etc ? Ce sont les identifiants de travail. Vous remarquerez également le signe - et + sur deux des commandes. Le signe + indique la dernière tâche que vous avez exécutée ou mise en avant. Le signe - indique l'avant-dernière tâche que vous avez exécutée ou mise au premier plan.

Mettre un processus au premier plan sous Linux

Très bien! Vous avez donc appris à exécuter des commandes en arrière-plan sous Linux. Mais qu'en est-il de ramener au premier plan un processus qui s'exécute en arrière-plan ?

Pour envoyer la commande en arrière-plan, vous avez utilisé 'bg'. Pour rétablir le processus en arrière-plan, utilisez la commande "fg".

fg

Maintenant, si vous utilisez simplement fg, cela amènera le dernier processus de la file d'attente des tâches en arrière-plan au premier plan. Dans notre exemple précédent, l'exécution de "fg" ramènera l'éditeur Vim dans le terminal.

Si vous souhaitez mettre un certain processus au premier plan, vous devez spécifier son identifiant de travail. L'ID de travail est le numéro que vous voyez au début de chaque ligne dans la sortie de la commande "jobs".

fg n

Où n est l'ID du travail tel qu'affiché dans la sortie de la commande jobs.

C'est tout

C'était rapide mais suffisant pour que vous appreniez quelques choses sur l'exécution de commandes en arrière-plan sous Linux. Je conseillerais également d'apprendre la commande nohup. Cette commande vous permet d'exécuter des commandes en arrière-plan même après vous être déconnecté de la session.

Si vous avez des questions ou des suggestions, veuillez laisser un commentaire ci-dessous.


Linux
  1. Regardez les commandes et les tâches avec la commande Linux watch

  2. Comment démarrer la commande Linux en arrière-plan et détacher le processus dans le terminal

  3. Commandes Linux - Présentation et exemples

  4. Commandes Linux :jobs, bg et fg

  5. Comprendre les commandes de contrôle des tâches sous Linux - bg, fg et CTRL + Z

Comment exécuter des commandes Linux en arrière-plan

Commandes Linux de base

Commandes Linux - Guide complet

Comment exécuter automatiquement les scripts et commandes de démarrage Linux

Comment travailler avec le processus de premier plan et d'arrière-plan sous Linux

Mettez une minuterie sur vos commandes en cours d'exécution avec la commande Timeout sous Linux