Dans ce guide, nous mettrons en lumière un concept simple mais important dans la gestion des processus dans un système Linux, à savoir comment détacher complètement un processus de son terminal de contrôle.

Lorsqu’un processus Linux est associé à un terminal, deux problèmes peuvent survenir :

  1. Votre terminal de contrôle est rempli de tant de données de sortie et de messages d’erreur/diagnostic.
  2. Dans le cas où le terminal est fermé, le processus ainsi que ses processus enfants seront terminés.

Pour faire face à ces deux problèmes, vous devez totalement détacher un processus d’un terminal de contrôle. Avant de passer à la résolution du problème, expliquons brièvement comment exécuter des processus en arrière-plan sous Linux.

Exécuter une commande ou un processus Linux en arrière-plan

Si un processus est déjà en cours d’exécution, comme l’exemple de commande tar ci-dessous, appuyez simplement sur Ctrl+Z pour l’arrêter, entrez la commande bg pour poursuivre son exécution en arrière-plan en tant que travail.

Vous pouvez afficher toutes vos tâches d’arrière-plan en tapant jobs. Cependant, son standard, sortie standardet stderr sont toujours joints au terminal.

Publicité
$ tar -czf home.tar.gz .
$ bg
$ jobs
Exécuter La Commande Linux En Arrière-Plan
Exécuter La Commande Linux En Arrière-Plan
Exécuter La Commande Linux En Arrière-Plan

Vous pouvez également exécuter un processus directement depuis l’arrière-plan en utilisant l’esperluette, & signe.

$ tar -czf home.tar.gz . &
$ jobs
Démarrer Le Processus Linux En Arrière-Plan
Démarrer Le Processus Linux En Arrière-Plan
Démarrer Le Processus Linux En Arrière-Plan

Jetez un œil à l’exemple ci-dessous, bien que la commande tar ait été lancée en arrière-plan, un message d’erreur a toujours été envoyé au terminal, ce qui signifie que le processus est toujours connecté au terminal de contrôle.

$ tar -czf home.tar.gz . &
$ jobs

tar: ./.config/etcher: Cannot open: Permission denied
Message De Processus Linux Exécuté En Arrière-Plan
Message De Processus Linux Exécuté En Arrière-Plan
Message De Processus Linux Exécuté En Arrière-Plan

Maintenir les processus Linux en cours d’exécution après la fermeture du terminal

Nous utiliserons le renier commande, qui est utilisée après que le processus a été exécuté et mis en arrière-plan, son travail consiste à supprimer un travail de shell des travaux de la liste active du shell, donc vous n’utiliserez pas fg, bg commandes sur ce travail particulier plus.

De plus, lorsque vous fermez le terminal de contrôle, le travail ne se bloque pas ou n’envoie pas de SIGHUP à tous les emplois d’enfants.

Jetons un coup d’œil à l’exemple ci-dessous d’utilisation de refusé fonction intégrée bash.

$ sudo rsync Templates/* /var/www/html/files/ &
$ jobs
$ disown  -h  %1
$ jobs
Maintenir Le Processus Linux En Cours D'Exécution Après La Fermeture Du Terminal
Maintenir Le Processus Linux En Cours D'Exécution Après La Fermeture Du Terminal
Maintenir Le Processus Linux En Cours D’exécution Après La Fermeture Du Terminal

Vous pouvez également utiliser le nohup qui permet également à un processus de continuer à s’exécuter en arrière-plan lorsqu’un utilisateur quitte un shell.

$ nohup tar -czf iso.tar.gz Templates/* &
$ jobs
Mettre Le Processus Linux En Arrière-Plan Après La Fermeture Du Shell
Mettre Le Processus Linux En Arrière-Plan Après La Fermeture Du Shell
Mettre Le Processus Linux En Arrière-Plan Après La Fermeture Du Shell

Détacher les processus Linux dans le terminal

Par conséquent, pour détacher complètement un processus d’un terminal de contrôle, utilisez le format de commande ci-dessous, c’est plus efficace pour l’interface utilisateur graphique (interface graphique) des applications telles que Firefox :

$ firefox /null &>/dev/null &

Sous Linux, /dev/null est un fichier de périphérique spécial qui efface (se débarrasse) de toutes les données écrites dessus, dans la commande ci-dessus, l’entrée est lue et la sortie est envoyée à /dev/null.

En guise de conclusion, à condition qu’un processus soit connecté à un terminal de contrôle, en tant qu’utilisateur, vous verrez plusieurs lignes de sortie des données de processus ainsi que des messages d’erreur sur votre terminal. Encore une fois, lorsque vous fermez le terminal de contrôle, votre processus et vos processus enfants seront terminés.

Surtout, pour toute question ou remarque sur le sujet, contactez-nous en utilisant le formulaire de commentaire ci-dessous.

Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :

TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés accessibles GRATUITEMENT à tous.

Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.

Soutenez-Nous

Nous sommes reconnaissants pour votre soutien sans fin.

Rate this post
Publicité
Article précédentFortnite rembourse les joueurs jusqu’à 1 800 V-Bucks, vérifiez votre éligibilité
Article suivant« Sex/Life » annulé par Netflix quelques jours après que la star a déclaré que la dernière saison « était très fantaisiste »
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici