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 la faire fonctionner 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 quelques façons différentes d’exécuter des commandes bash en arrière-plan sous Linux.,

terminez une commande avec&

Si vous voulez pousser une commande en arrière-plan, utiliser& à la fin est un moyen facile 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 une prise, cependant. L’utilisation de & ne déconnecte pas la commande loin de vous; elle la pousse simplement en 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.

COMMANDE: &

Lors de la session de terminal est fermé, la commande se termine., Vous pouvez également tuer la commande en émettant la commande jobs, en trouvant le numéro de la commande en cours d’exécution et en la tuant avec la commande kill. Cette syntaxe est comme suit:

tuer %1

& c’est bien, si vous avez besoin de pousser quelque chose pour un peu, mais ne vous attendez pas à continuer éternellement.,

& Après une Commande, Puis le Désavouer

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

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

COMMANDE: &

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

tapez simplementdisown dans le shell, et cela fera exactement cela. (Et vous pouvez à nouveau le vérifier avec la commande jobs.,)

Vous pouvez à peine le disown commande ici

Maintenant, vous pouvez fermer votre terminal et de la continuer sur votre journée. Il continuera toujours à canaliser les choses vers STDOUT ou STDERR, mais une fois que vous quitterez et rouvrirez votre terminal, vous n’y verrez rien., Vous pouvez trouver à nouveau la commande avec la balise top ou ps commandes et de le tuer avec la balise kill commande.

La désavoué travail est le second, avec le PID 16238.,

& Après une Commande avec /dev/null

Ajout & après une commande de pousser une commande en arrière-plan, mais comme un résultat, le fond de commande va continuer à imprimer des messages dans le terminal que vous utilisez. Si vous cherchez à empêcher cela, envisagez de rediriger la commande vers /dev/null.,

COMMANDE: &>/dev/null &

Cela n’empêche pas la commande de fermeture lorsque le terminal se ferme. Cependant, comme mentionné ci-dessus, il est possible d’utiliser disown pour désavouer la commande en cours d’exécution 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 fonctionne.,

Nohup, avec& et/dev/null

Contrairement aux commandes précédentes, l’utilisation denohup 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 faire un nohup.fichier out), et tout va à l’arrière-plan avec une commande.,

nohup COMMANDE &>/dev/null &

la Plupart des programmes terminal server sur Linux d’aujourd’hui ont des fonctionnalités intégrées pour leur permettre de fonctionner 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.,

néanmoins, 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 inconvénient réel mais 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 dans le déplacement de programmes comme celui-ci vers l’arrière-plan. Ils ne sont pas parfaits ou fantaisistes, mais ils font le travail en cas de besoin.,

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, 5 des meilleures distributions Linux pour les utilisateurs de Windows en 2021, et 15 commandes LS que vous devez connaître.

Related:

John Perkins

John est un jeune professionnel technique avec une passion pour l’éducation des utilisateurs sur les meilleurs moyens d’utiliser leur technologie. Il détient des certifications techniques couvrant des sujets allant du matériel informatique à la cybersécurité en passant par L’administration du système Linux.,

Obtenir nos histoires livrés à votre boîte de réception.

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *