GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ssh – Wie enteigne ich einen laufenden Prozess und verknüpfe ihn mit einer neuen Bildschirm-Shell?

Ich habe ein laufendes Programm auf einer SSH-Shell. Ich möchte es anhalten und seine Ausführung fortsetzen können, wenn ich zurückkomme.

Eine Art, wie ich daran gedacht habe, war, seinen Besitz auf eine Bildschirm-Shell zu übertragen und ihn so dort laufen zu lassen.

Gibt es eine andere Vorgehensweise?

Akzeptierte Antwort:

Mit disown können Sie dem Programm von der Shell aus den „Besitz“ entziehen eingebaut:

# press Ctrl+Z to suspend the program
bg
disown

Dies weist die Shell jedoch nur an, kein SIGHUP zu senden Signal an das Programm, wenn die Shell beendet wird. Das Programm behält alle Verbindungen, die es mit dem Terminal hat, normalerweise als Standard-Eingabe-, Ausgabe- und Fehlerströme. Es gibt keine Möglichkeit, diese an ein anderes Terminal anzuschließen. (Screen funktioniert, indem es für jedes Fenster ein Terminal emuliert, sodass die Programme an das Bildschirmfenster angehängt werden.)

Es ist möglich, die Dateideskriptoren an eine andere Datei anzuhängen, indem Sie das Programm in einem Debugger anhängen (d. h. mit ptrace ) und es open aufrufen lassen , dup und close . Es gibt ein paar Tools, die dies tun; Dies ist ein kniffliger Prozess, und manchmal stürzen sie den Prozess stattdessen ab. Zu den Möglichkeiten gehören (Links, die aus Antworten zu Wie kann ich einen laufenden Prozess verwerfen und ihn einer neuen Bildschirm-Shell zuordnen? und Kann ich einen bereits gestarteten Prozess nohup/screenen?):

  • grab (und das ehrgeizigere Cryopid)
  • neercs
  • Weiterleitung
  • Reptyrer
  • Rettchen

Linux
  1. Programmieren mit Bash:Syntax und Tools

  2. 5 Möglichkeiten, um Remote-SSH-Sitzungen und -Prozesse nach der Trennung am Laufen zu halten

  3. Wie listet man laufende Bildschirmsitzungen auf?

  4. Woher weiß ich, ob ich eine verschachtelte Shell ausführe?

  5. EC2 ssh Broken Pipe beendet den laufenden Prozess

Wie installiere und verwende ich den Linux-Bildschirm?

Linux-Grundlagen:So erstellen und installieren Sie SSH-Schlüssel auf der Shell

So finden und beenden Sie laufende Prozesse in Linux

So finden Sie die Prozess-ID eines Programms und beenden es [Kurztipp]

So installieren und verwenden Sie Nu Shell unter Linux

Wie man ein C-Programm unter Linux schreibt und ausführt