Comment envoyer un processus en arrière-plan et au premier plan?


17

Si je le fais ping google.com &, le processus passe en arrière-plan et continue de me montrer les détails du ping. Je peux toujours utiliser le terminal avec d'autres commandes, mais la sortie de ping et la sortie d'autres commandes sont mélangées (ce qui n'est pas un problème), mais je ne peux pas du tout terminer ce processus de ping.

Pour cela, je veux le mettre au premier plan, puis appuyez sur ctrl + c ou quelque chose. J'ai essayé d'utiliser fg, mais cela n'a pas fonctionné non plus. Alors, comment puis-je ping google.com &revenir au premier plan après avoir appuyé sur la touche Retour à la fin de ma commande ping?


2
Il semble que le problème que vous souhaitez réellement résoudre soit la suppression d'un travail d'arrière-plan; il n'est pas nécessaire de le mettre au premier plan. Utilisez jobspour trouver l'ID jidde travail du processus d'arrière-plan, puis faites-le kill %jidpour le tuer.
gardenhead

Réponses:


30

fgest la commande correcte pour mettre en avant-plan un travail, mais s'il y a plus d'un travail en cours, vous devez spécifier le numéro du travail. Si vous tapez uniquement fg, le dernier travail en arrière-plan (considéré comme le travail en cours par le shell) sera mis au premier plan.

Obtenez les emplois actuels:

$ jobs
[1]+     ping google.com &

Mettez en avant le travail en spécifiant le nombre:

fg %1

La commande peut être décomposée par la sortie du processus en cours, mais elle fonctionnera toujours, vous pouvez ignorer l'interruption.

Appuyez ensuite sur ctrl+ cpour interrompre et arrêter le processus

Comme mentionné dans un commentaire, vous pouvez également envoyer des signaux par numéro de tâche, par exemple kill %1

Pour être complet, si vous n'avez pas utilisé le &au moment de l'appel du processus, vous pouvez l'envoyer en arrière-plan en gelant d'abord avec ctrl+ zpuis en tapantbg


1
Tout simplement fgsans argument semble fonctionner aussi, du moins lorsqu'il n'a qu'un seul emploi de fond.
Cedric Reichenbach

1
@CedricReichenbach modifié!
Zanna

-2

Pour répondre à la question posée, à savoir Comment envoyer la sortie d'un processus en arrière-plan et au premier plan? , la teecommande fera:

En informatique, tee est une commande dans les interpréteurs de ligne de commande (shells) utilisant des flux standard qui lit l'entrée standard et l'écrit sur la sortie standard et un ou plusieurs fichiers, dupliquant efficacement son entrée. https://en.wikipedia.org/wiki/Tee_(command)


5
Vous vous méprenez sur quelque chose ici ...
Byte Commander
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.