Ligne de commandes Linux - partie 3 - Gestion de processus
Table des matières:
- Exécutez une commande Linux en arrière-plan
- Déplacer un processus de premier plan en arrière-plan
- Maintenir les processus d'arrière-plan en cours d'exécution après la fermeture d'un shell
- Alternatives
- Écran
- Tmux
- Conclusion
En règle générale, lorsque vous exécutez une commande dans le terminal, vous devez attendre la fin de la commande avant de pouvoir en saisir une autre. Cela s'appelle exécuter 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 se passe-t-il si la commande met beaucoup de temps à se terminer et que vous souhaitez exécuter d'autres commandes entre-temps? Vous disposez de plusieurs options. 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 / commande qui est démarré à partir d'un terminal et s'exécute en arrière-plan, sans interaction de l'utilisateur., nous allons parler des 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écutez une commande Linux en arrière-plan
Pour exécuter une commande en arrière-plan, ajoutez le symbole esperluette (
&
) à la fin de la commande:
command &
L'ID du travail du shell (entouré de crochets) et l'ID du processus seront imprimés 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. Pour supprimer les messages
stdout
et
stderr
utilisez la syntaxe suivante:
command > /dev/null 2>&1 &
>/dev/null 2>&1
signifie rediriger
stdout
vers
/dev/null
et
stderr
vers
stdout
.
Utilisez l'utilitaire de
jobs
pour afficher l'état de tous les travaux arrêtés et d'arrière-plan dans la session shell actuelle:
jobs -l
La sortie inclut le numéro de travail, l'ID de processus, l'état du travail et la commande qui a démarré le travail:
+ 25177 Running ping google.com &
Pour mettre un processus d'arrière-plan au premier plan, utilisez la commande
fg
:
fg
fg %1
Pour terminer le processus d'arrière-plan, utilisez la commande
kill
suivie de l'ID du processus:
Déplacer un processus de premier plan en arrière-plan
Pour déplacer un processus de premier plan en cours en arrière-plan:
- Arrêtez le processus en tapant
Ctrl+Z
Déplacez le processus arrêté en arrière-plan en tapantbg
.
Maintenir les processus d'arrière-plan en cours d'exécution après la fermeture d'un shell
Si votre connexion tombe ou que vous vous déconnectez de la session shell, les processus d'arrière-plan sont interrompus. Il existe plusieurs façons de maintenir le processus en cours après la fin de la session shell interactive.
Une façon consiste à supprimer le travail du contrôle des travaux du shell à l'aide du module intégré shell désavoué:
disown
disown %1
Confirmez que le travail est supprimé de la table des travaux actifs à l'aide de la commande
jobs -l
. Pour répertorier tous les processus en cours d'exécution, y compris les désavoués, utilisez la commande
ps aux
.
Une autre façon de maintenir un processus en cours d'exécution après la sortie du shell est d'utiliser
nohup
.
La commande
nohup
exécute un autre programme spécifié comme argument et ignore tous les signaux
SIGHUP
(raccrochage).
SIGHUP
est un signal qui est envoyé à un processus lorsque son terminal de commande est fermé.
Pour exécuter une commande en arrière-plan à l'aide de la commande
nohup
, tapez:
nohup command &
La sortie de la commande est redirigée vers le fichier
nohup.out
.
nohup: ignoring input and appending output to 'nohup.out'
Alternatives
Il existe un certain nombre de programmes qui vous permettent d'avoir plusieurs sessions interactives en même temps.
Écran
Screen ou GNU Screen est un programme de multiplexage de terminal qui vous permet de démarrer une session d'écran et d'ouvrir un nombre illimité de fenêtres (terminaux virtuels) à l'intérieur de cette session. Les processus s'exécutant dans Screen continueront de s'exécuter lorsque leur fenêtre n'est pas visible même si vous êtes déconnecté.
Tmux
Tmux est une alternative moderne à l'écran GNU. 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 s'exécutant dans Tmux continuent de s'exécuter même si vous fermez le terminal.
Conclusion
Pour exécuter une commande en arrière-plan, incluez
&
à la fin de la commande.
Lorsque vous exécutez une commande en arrière-plan, vous n'avez pas à attendre qu'elle se termine avant de pouvoir en exécuter une autre.
nohup fg bg jobs disown terminalMicrosoft profite en vendant des publicités en ligne sur son moteur de recherche à des gangs criminels gérant des sites Web pharmaceutiques offrant des médicaments Selon une nouvelle étude, Microsoft vend des publicités en ligne sur son moteur de recherche à des gangs criminels qui gèrent des sites Web pharmaceutiques offrant des médicaments à des personnes sans ordonnance adéquate.
Environ 89,7% des Selon le rapport, les pharmacies qui paient des publicités sur le dernier moteur de recherche de la société, Bing.com, sont frauduleuses ou se livrent à des activités illégales. KnujOn, une compagnie antispam, et LegitScript, qui offre un service qui vérifie la légitimité de certaines pharmacies en ligne, ont publié le rapport.
Microsoft prend au sérieux les allégations selon lesquelles des partenaires commerciaux se livrent à des pots-de-vin pour obtenir des marchés publics dans trois pays en dehors des États-Unis, le Microsoft a pris mardi au sérieux les accusations selon lesquelles des partenaires commerciaux se seraient livrés à des pots-de-vin pour obtenir des marchés publics dans trois pays en dehors des Etats-Unis, a annoncé mardi le Wall Street Journal. la Securities and Exchange Commission des États-Unis enquê
[Lectures supplémentaires: Votre nouvel ordinateur a besoin de ces 15 programmes gratuits et excellents]
EasyCMD vous permet d`exécuter des commandes CMD de base depuis une interface utilisateur sous Windows
EasyCMD est une dérivation simple de l`invite de commande exécuter des commandes CMD et vous servir simultanément d`une interface utilisateur soignée.