Comment amener un Orphelin Processus d'arrière-plan de retour au premier plan?
Bien c'est comme ça, j'ai eu à exécuter un programme à partir de mon domicile par ssh
ing dans le serveur dans mon établissement. Je ne voulais pas que mon programme à la fin lorsque la fermeture de la session(je ne connaissais pas screen
).
Ce que j'ai fait était de presse Ctrl+Z
puis tapez bg
sorte qu'il s'exécute en arrière-plan.
La session ai résilié. Maintenant, quand je me connecter à partir de mon institution de la machine et le type ps -u username
, il montre que le programme est toujours en cours mais je suis incapable de l'amener au premier plan.
J'ai essayé fg
et jobs
mais ces commandes ne me donne pas toute la production.
Svp quelqu'un peut m'aider..
Vous devez vous connecter pour publier un commentaire.
Si vous avez commencé le processus sans l'aide de l'écran "de la commande" alors vous ne pouvez pas prendre au cours de ce processus. Fondamentalement, vous ne pouvez pas prendre plus d'un processus qui a démarré dans un environnement différent.
Lorsque votre session est mis fin à tous les processus de bg va aller le détacher de l'état. Si vous pourriez être en mesure de voir les détails de ces processus, vous ne fg à un shell de login après
Si un processus a été orphelin, vous ne pouvez pas "reparent" à un environnement différent et utilisez fg, bg, ^Z, ^C, et ainsi de suite pour le contrôler.
Il semble que vous êtes en demandant implicitement comment contrôler un processus orphelin. Puisque vous pouvez voir le processus à l'aide de la ps de commande, vous avez son pid. Vous pouvez utiliser cette pid comme argument de la tuer de commande, ce qui vous permettra d'arrêter, de poursuivre ou de mettre fin au processus. Vous ne pouvez pas attendre la fin du processus, mais vous pouvez sondage pour voir si il existe toujours à l'aide de la "tuer -0 <pid> de la commande".
https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen
Donne un autre point de vue sur cette question, La réponse sommet suggère d'utiliser Reptyr.
reptyr
, puis exécutezreptyr [PID]
- mais cela peut ne pas fonctionner si un processus (par exemple, un bash script) a commencé à l'autre (sous-)processus.