Mögliches Duplikat:
Wie kann ich einen laufenden Prozess verwerfen und ihn einer neuen Bildschirm-Shell zuordnen?
Ich habe einen Befehl gestartet, der sehr lange dauert.
Ich musste die Verbindung trennen, also habe ich ihn in den Hintergrund verschoben (mit STRG+Z und bg
). ) vor dem Beenden.
Etwa so:
$ my_command
***command is beeing executed and is taking a long time***
^Z
[1]+ Stopped my_command
$ bg
[1]+ my_command &
$ exit
Ich habe die Verbindung wiederhergestellt und kann den Befehl in der Prozessliste sehen, kann aber mit fg
nicht wiederherstellen .
$ fg
-bash: fg: current: no such job
Wie stelle ich meinen Job im Vordergrund wieder her?
Akzeptierte Antwort:
Wenn Sie bereits irgendwo etwas gestartet, es in den Hintergrund gestellt haben und es jetzt an ein neues Terminal anhängen müssen, können Sie reptyr
verwenden um es wieder anzubringen. (Der man
Seite fasst den Befehl zusammen als „Reparent a running program to a new terminal“.)
Der Grund, warum Sie es nicht im Befehl „jobs“ sehen oder „fg“ verwenden können, um es in den Vordergrund zu bringen, liegt darin, dass diese Befehle tatsächlich in die Shell integriert sind. Technisch gesehen trennen sie die Prozesse nicht von dem Terminal, mit dem Sie verbunden sind. Wenn Sie also die Shell verlassen, sollten auch beenden (Sie sollten eine Warnung erhalten, wenn Sie versuchen, zu beenden).