Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
Linux

Comment exécuter des commandes Bash en arrière-plan sous Linux

Il n’y a rien de plus ennuyeux que d’exécuter une commande dans votre terminal et de l’exécuter pendant des minutes, parfois des heures, et de ne plus pouvoir utiliser votre terminal. Bien sûr, vous pouvez utiliser des onglets, mais c’est une solution maladroite, et ce n’est pas toujours optimal car vous voudrez peut-être voir les mises à jour pendant que vous travaillez. Ici, nous vous montrons différentes manières d’exécuter des commandes bash en arrière-plan sous Linux.

Contenu

Terminer une commande avec &

Si vous souhaitez placer une commande en arrière-plan, l’utilisation de & à la fin est un moyen simple de le faire. De cette façon, vous pouvez émettre une commande en arrière-plan et continuer à utiliser votre terminal pendant son exécution. Il vient avec un hic, cependant. L’utilisation de & ne déconnecte pas la commande de vous ; il le repousse simplement à l’arrière-plan. Cela signifie que pendant que vous essayez d’utiliser le terminal, tout ce que la commande veut pousser vers STDOUT ou STDERR sera toujours imprimé, ce qui peut être gênant.

Lorsque la session de terminal est fermée, la commande se termine. Vous pouvez également supprimer la commande en exécutant la commande jobs, en trouvant le numéro de la commande en cours d’exécution et en la supprimant avec la commande kill. Cette syntaxe est la suivante :

Capture d'écran À partir de 2021 01 14 16 21 48

L’utilisation de & est bonne si vous devez repousser quelque chose un peu mais ne vous attendez pas à ce que cela continue pour toujours.

Psssssst :  Pourquoi mon application n'arrête-t-elle pas de planter Android Studio ?

& Après une commande, puis la désavouer

L’exécution d’une commande avec juste & la repousse vers l’arrière et la maintient tant que la fenêtre du terminal est ouverte. Si, toutefois, vous cherchez à maintenir cette commande en cours d’exécution, même avec la fin de votre session de terminal, vous pouvez utiliser la commande disown.

Pour utiliser cette méthode, commencez par ajouter un &.

Comme mentionné ci-dessus, l’utilisation de & pousse cette commande en arrière-plan mais ne la détache pas de votre utilisateur. Vous pouvez le vérifier en tapant jobs dans le terminal. Cela montrera la commande en cours d’exécution en arrière-plan comme nous l’avons vu auparavant.

Tapez simplement disown dans le shell, et il fera exactement cela. (Et vous pouvez à nouveau le vérifier avec la commande jobs.)

Capture d'écran de 2021 01 14 16 26 01Vous pouvez simplement distinguer la commande de désaveu là-dedans

Vous pouvez maintenant fermer votre terminal et continuer votre journée. Il continuera à diriger les choses vers STDOUT ou STDERR, mais une fois que vous quittez et rouvrez votre terminal, vous ne verrez rien là-bas. Vous pouvez retrouver la commande avec les commandes top ou ps et la tuer avec la commande kill.

Capture d'écran À partir de 2021 01 14 16 28 42Le job désavoué est le second, avec le PID 16238.

& Après une commande avec /dev/null

L’ajout de & après une commande poussera une commande en arrière-plan, mais par conséquent, la commande d’arrière-plan continuera à imprimer des messages dans le terminal pendant que vous l’utilisez. Si vous cherchez à éviter cela, envisagez de rediriger la commande vers /dev/null.

Capture d'écran De 2021 01 14 16 31 33

Cela n’empêche pas la commande de se fermer à la fermeture du terminal. Cependant, comme mentionné ci-dessus, il est possible d’utiliser disown pour désavouer la commande en cours loin de l’utilisateur. Vous pouvez également le tuer dans l’une des méthodes mentionnées ci-dessus si vous ne voulez plus qu’il s’exécute.

Psssssst :  Comment savoir quelle version de Windows 10 j'ai installée ?

Nohup, avec & et /dev/null

Contrairement aux commandes précédentes, l’utilisation de nohup vous permet d’exécuter une commande en arrière-plan et de la maintenir en cours d’exécution. Comment? nohup contourne le signal HUP (signal raccrocher), ce qui permet d’exécuter des commandes en arrière-plan même lorsque le terminal est éteint. Combinez cette commande avec la redirection vers « /dev/null » (pour empêcher nohup de créer un fichier nohup.out), et tout passe en arrière-plan avec une seule commande.

Capture d'écran De 2021 01 14 16 32 43

La plupart des programmes de terminaux sous Linux ont aujourd’hui des fonctionnalités intégrées pour leur permettre de s’exécuter en arrière-plan avec peu d’effort. Parallèlement à cela, les systèmes d’initialisation modernes (comme systemd) peuvent permettre aux utilisateurs de démarrer des programmes tels que des services au démarrage ou à tout moment.

Pourtant, certains programmes sous Linux n’ont pas la capacité de s’exécuter en tant que démon ou de s’intégrer aux systèmes d’initialisation modernes. C’est un réel inconvénient mais c’est compréhensible, car tous les développeurs n’ont pas les compétences ou le temps d’ajouter de nouvelles fonctionnalités.

Heureusement, des commandes comme nohup ou disown sont toujours une réalité et peuvent combler l’écart en déplaçant des programmes comme celui-ci à l’arrière-plan. Ils ne sont ni parfaits ni sophistiqués, mais ils font le travail au besoin.

Psssssst :  Comment installer Linux sur bootcamp ?

Si vous avez apprécié cet article Linux, assurez-vous de consulter certains de nos autres contenus Linux, comme comment connecter votre compte Google à GNOME Shell, les meilleures distributions Linux pour les utilisateurs de Windows et les commandes LS que vous devez connaître.

Cet article est-il utile ? Oui Non

Bouton retour en haut de la page

Adblock détecté

Veuillez désactiver votre bloqueur de publicités pour pouvoir visualiser le contenu de la page. Pour un site indépendant avec du contenu gratuit, c’est une question de vie ou de mort d’avoir de la publicité. Merci de votre compréhension! Merci