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 :
- Votre terminal de contrôle est rempli de tant de données de sortie et de messages d’erreur/diagnostic.
- 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.
$ tar -czf home.tar.gz . $ bg $ jobs
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 1 Exécuter La Commande Linux En Arrière-Plan](https://www.tecmint.com/wp-content/uploads/2016/10/Run-Linux-Command-in-Background.png)
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 2 Exécuter La Commande Linux En Arrière-Plan](https://www.tecmint.com/wp-content/uploads/2016/10/Run-Linux-Command-in-Background.png)
Vous pouvez également exécuter un processus directement depuis l’arrière-plan en utilisant l’esperluette, &
signe.
$ tar -czf home.tar.gz . & $ jobs
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 3 Démarrer Le Processus Linux En Arrière-Plan](https://www.tecmint.com/wp-content/uploads/2016/10/Start-Linux-Process-in-Background.png)
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 4 Démarrer Le Processus Linux En Arrière-Plan](https://www.tecmint.com/wp-content/uploads/2016/10/Start-Linux-Process-in-Background.png)
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
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 5 Message De Processus Linux Exécuté En Arrière-Plan](https://www.tecmint.com/wp-content/uploads/2016/10/Linux-Process-Running-in-Background-Message.png)
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 6 Message De Processus Linux Exécuté En Arrière-Plan](https://www.tecmint.com/wp-content/uploads/2016/10/Linux-Process-Running-in-Background-Message.png)
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
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 7 Maintenir Le Processus Linux En Cours D'Exécution Après La Fermeture Du Terminal](https://www.tecmint.com/wp-content/uploads/2016/10/Keep-Linux-Processes-Running.png)
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 8 Maintenir Le Processus Linux En Cours D'Exécution Après La Fermeture Du Terminal](https://www.tecmint.com/wp-content/uploads/2016/10/Keep-Linux-Processes-Running.png)
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
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 9 Mettre Le Processus Linux En Arrière-Plan Après La Fermeture Du Shell](https://www.tecmint.com/wp-content/uploads/2016/10/Put-Linux-Process-in-Background.png)
![Exécutez Les Commandes Linux En Arrière-Plan Et Détachez-Vous Du Terminal 10 Mettre Le Processus Linux En Arrière-Plan Après La Fermeture Du Shell](https://www.tecmint.com/wp-content/uploads/2016/10/Put-Linux-Process-in-Background.png)
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.
Nous sommes reconnaissants pour votre soutien sans fin.