Comment exécuter des commandes Linux en arrière-plan
Les commandes Linux sont un excellent moyen d'interagir avec le système en utilisant le terminal. Cependant, cela peut parfois prendre un certain temps pour terminer la tâche à accomplir. Cela oblige les utilisateurs à attendre un temps considérable ou à créer un nouveau shell.
Heureusement, vous pouvez exécuter des commandes Linux en arrière-plan en suivant quelques méthodes simples. Le reste de cet article illustre certaines de ces méthodes.
1. Ajoutez une esperluette après votre commande
Le moyen le plus simple d'exécuter une commande d'arrière-plan Linux est d'ajouter un symbole Esperluette ( & ) après la commande. Par exemple, si vous démarrez l'éditeur de texte gedit depuis votre terminal, vous ne pouvez pas utiliser le shell tant que vous n'avez pas fermé l'éditeur. Cependant, lorsque vous ajoutez un & supplémentaire à votre commande, vous pourrez utiliser le shell immédiatement.
gedit &
2. Utilisez bg pour envoyer les commandes en cours d'exécution en arrière-plan
Parfois, vous exécutez une commande pour découvrir qu'elle prend beaucoup plus de temps. Vous pouvez facilement envoyer ces commandes en arrière-plan en appuyant sur les touches Ctrl + Z puis en utilisant la commande bg . Ctrl + Z arrête le processus en cours et bg le place en arrière-plan.
Vous pouvez afficher une liste de toutes les tâches d'arrière-plan en saisissant des tâches dans le terminal. Utilisez la commande fg pour revenir à la tâche en cours.
3. Envoyer des commandes en arrière-plan avec nohup
La commande nohup sous Linux permet aux administrateurs d'exécuter des commandes de terminal qui sont immunisées contre les signaux HUP ou Hang Up . Vous pouvez exécuter des commandes Linux en arrière-plan à l'aide de nohup.
L'exemple ci-dessous exécute une analyse de port Nmap en arrière-plan.
nohup sudo nmap -sS --top-ports=15 192.168.1.1/24
L'un des principaux avantages de nohup est que vos commandes s'exécuteront même si vous quittez le shell. De plus, il génère des fichiers journaux de l'exécution. Recherchez nohup.out dans le répertoire courant ou dans $ HOME.
4. Exécutez les commandes en arrière-plan à l'aide des redirections système
Vous pouvez également exécuter des commandes d'arrière-plan sous Linux à l'aide de redirections système. Par exemple, si vous exécutez la commande ping ci-dessous, votre shell l'exécutera en arrière-plan et retournera immédiatement l'invite du terminal.
ping -c5 8.8.8.8 >output.log 2>&1 &
Ici, la sortie de la commande ping est redirigée vers le fichier output.log . Vous pouvez le remplacer par / dev / null si vous souhaitez ignorer le résultat. Le 2> & 1 indique à bash de rediriger toute erreur vers le même fichier. Le dernier & signale bash pour exécuter cette commande en arrière-plan.
5. Définissez les commandes Linux en arrière-plan à l'aide de disown
La commande disown sous Linux facilite l'exécution de commandes en arrière-plan. Tout d'abord, vous devez envoyer la tâche en arrière-plan à l'aide de l'opérateur & . Ensuite, tapez disown pour le détacher de votre shell.
gedit &
disown
Un avantage majeur de disown est que, comme nohup, le système ne tuera pas votre tâche lorsque vous fermez votre shell ou que vous vous déconnectez.
6. Exécutez les commandes Linux en arrière-plan à l'aide de Tmux
Tmux est un multiplexeur puissant qui nous permet d'exécuter plusieurs sessions de terminal dans une seule fenêtre. Apprendre tmux est un excellent choix pour les personnes qui ne le connaissent pas. Tmux rend l'exécution des commandes d'arrière-plan sous Linux sans effort.
tmux new -d 'ping -c 10 8.8.8.8 > output.log'
Lorsque vous exécutez la commande tmux ci-dessus, elle exécutera la commande ping dans un shell séparé et la gardera en arrière-plan. Vous pouvez exécuter n'importe quelle commande Linux en arrière-plan en utilisant cette méthode.
Laissez vos commandes Linux en arrière-plan
La possibilité d'exécuter des commandes en arrière-plan rend la gestion du système plus productive pour les administrateurs. Vous pouvez effectuer vos tâches en arrière-plan de plusieurs manières. Les fonctionnalités Bash telles que & et Ctrl + Z sont pratiques, mais le système supprimera le travail d'arrière-plan lorsque le shell se fermera. D'un autre côté, des outils comme nohup et disown maintiennent votre commande en cours d'exécution même lorsque vous vous déconnectez ou arrêtez le shell.
Si vous laissez vos programmes en arrière-plan pendant une longue période, ils peuvent devenir des processus zombies s'ils ne sont pas correctement codés. Ces processus peuvent ralentir considérablement le système. Assurez-vous donc d'identifier et de tuer les processus zombies de temps en temps.