généralement, lorsque vous exécutez une commande dans le terminal, vous devez attendre la fin de la commande avant de pouvoir en entrer une autre. C’est ce qu’on appelle l’exécution de la commande dans le processus de premier plan ou de premier plan. Lorsqu’un processus s’exécute au premier plan, il occupe votre shell et vous pouvez interagir avec lui à l’aide des périphériques d’entrée.
Que faire si la commande prend du temps à la fin, et vous souhaitez exécuter d’autres commandes dans l’intervalle? Vous avez plusieurs options à votre disposition., L’option la plus évidente et la plus simple consiste à démarrer une nouvelle session shell et à y exécuter la commande. Une autre option consiste à exécuter la commande en arrière-plan.
Un processus d’arrière-plan est un processus de commande/qui est démarré à partir d’un terminal et s’exécute en arrière-plan, sans interaction de l’utilisateur.
Dans cet article, nous allons parler du processus d’arrière-plan est Linux. Nous allons vous montrer comment démarrer une commande en arrière-plan et comment maintenir le processus en cours d’exécution après la fermeture de la session shell.,
Exécuter une Commande Linux dans l’arrière-plan #
Pour exécuter une commande en arrière-plan, ajouter une esperluette (&
) à la fin de la commande:
command &
Le shell ID de la tâche (entouré avec des crochets) et l’IDENTIFIANT du processus sera imprimé sur le terminal:
25177
Vous pouvez avoir plusieurs processus en cours d’exécution en arrière-plan en même temps.
le processus d’arrière-plan continuera à écrire des messages sur le terminal à partir duquel vous avez appelé la commande., To suppress the stdout
and stderr
messages use the following syntax:
command > /dev/null 2>&1 &
>/dev/null 2>&1
means redirect stdout
to /dev/null
and stderr
to stdout
.,/div>
pour mettre un processus d’arrière-plan au premier plan, utilisez la commande fg
:
fg
Si vous avez plusieurs tâches d’arrière-plan, incluez %
et l’ID du travail après la commande:
fg %1
pour terminer le processus d’arrière-plan, utilisez la commande kill
suivie de l’ID du processus:
kill -9 25177
déplacer un processus d’avant-plan vers l’arrière-plan #
pour déplacer un processus d’avant-plan en en tapantCtrl+Z
.,
bg
.Gardez les processus D’arrière-plan en cours D’exécution après la sortie d’un Shell #
Si votre connexion est interrompue ou si vous vous déconnectez de la session shell, les processus d’arrière-plan sont terminés. Il existe plusieurs façons de maintenir le processus en cours d’exécution après la fin de la session shell interactive.,
Une façon est de supprimer le travail du contrôle de travail du shell en utilisant le disown
shell builtin:
disown
Si vous avez plus d’un travail en arrière-plan, incluez %
et l’ID de div id= »2538fa36cb »>
confirmez que la tâche est supprimée de la table des tâches actives à l’aide de la commandejobs -l
. Pour répertorier tous les processus en cours d’exécution, y compris les processus désavoués, utilisez la commande ps aux
.,
une Autre façon de garder un processus en cours d’exécution après la coquille de sortie est d’utiliser nohup
.
la commandenohup
exécute un autre programme spécifié comme argument et ignore tous les signauxSIGHUP
(hangup). SIGHUP
est un signal envoyé à un processus lorsque son terminal de contrôle est fermé.
Pour exécuter une commande en arrière-plan à l’aide de la balise nohup
commande, tapez:
nohup command &
La sortie de la commande est redirigé vers le nohup.out
fichier.,
nohup: ignoring input and appending output to 'nohup.out'
Si vous quittez ou fermez le terminal, le processus n’est pas terminé.
Alternatives #
Il existe un certain nombre de programmes qui vous permettent d’avoir plusieurs sessions interactives en même temps.
Screen #
Screen ou GNU Screen est un programme multiplexeur de terminal qui vous permet de démarrer une session d’écran et d’ouvrir n’importe quel nombre de fenêtres (terminaux virtuels) à l’intérieur de cette session. Les processus s’exécutant à L’écran continueront à s’exécuter lorsque leur fenêtre n’est pas visible même si vous êtes déconnecté.,
Tmux #
Tmux est une alternative moderne à GNU écran. Avec Tmux, vous pouvez également créer une session et ouvrir plusieurs fenêtres à l’intérieur de cette session. Les sessions Tmux sont persistantes, ce qui signifie que les programmes exécutés dans Tmux continuent de s’exécuter même si vous fermez le terminal.
Conclusion
Pour exécuter une commande en arrière-plan, include &
à la fin de la commande.
Lorsque vous exécutez une commande en arrière-plan, vous n’avez pas à attendre jusqu’à la fin avant d’en exécuter un autre.