Antworten:
Diese Antwort wurde auf serverfault von earl gefunden :
Für Ihr eigentliches Problem gibt es jedoch noch eine andere Möglichkeit: Nachdem Sie Ihren Job über das Terminal gestartet haben, können Sie ihn durch Eingabe im Hintergrund anzeigen ctrl- zund dann
bg
.
Danach, nehmen Sie den Job von ihm übergeordneten Shell - inbash
:disown -h %<jobid>
. Danach können Sie das Terminal sicher schließen und der Job wird weiter ausgeführt.
Und dies aus derselben Frage von Rob Wells :
$ screen -S my_process
$ retty $(pgrep my_process)
/redraw
In ServerFault wurde ein Duplikat gefunden .
Eine andere Lösung, die in diesem Beitrag nicht gefunden wurde, ist die Verwendung von retty nach dem Starten einer Bildschirmsitzung.
Schauen Sie sich reptyr an , das macht genau das. Die Github-Seite enthält alle Informationen.
reptyr - Ein Werkzeug zum "Wiederaufnehmen"
Programme.
reptyr ist ein Dienstprogramm zum Übernehmen eines vorhandenen laufenden Programms und zum Anhängen an ein neues Terminal. Hat einen lang laufenden Prozess über ssh gestartet, muss ihn aber verlassen und möchte ihn nicht unterbrechen? Starten Sie einfach einen Bildschirm, greifen Sie ihn mit reptyr, beenden Sie die ssh-Sitzung und fahren Sie nach Hause.
VERWENDUNG
reptyr PID
"reptyr PID" erfasst den Prozess mit der ID PID und hängt ihn an Ihr aktuelles Terminal an.
Nach dem Anhängen übernimmt der Prozess die Eingabe von und schreibt die Ausgabe in das neue Terminal, einschließlich ^ C und ^ Z. (Leider müssen Sie im Hintergrund immer noch "bg" oder "fg" im alten Terminal ausführen. Dies lässt sich wahrscheinlich nicht auf vernünftige Weise beheben, ohne Ihre Shell zu patchen.)