Praktisch ist das Screen-Kommando, um einen laufenden Job zu starten, sich auszuloggen und später diese Terminalsession wieder aufzunehmen. Einen einfachen Weg dafür, sich mit Screen an ein existierendes Programm anzuhängen, gibt es aber nicht. Einen Ausweg bietet Reptyr von Nelson Elhage, das laufende Kommandozeilentools an neue Pseudo-Terminals (PTY) bindet. Allerdings muss man es aus dem Quellcode, den es unter https://github.com/nelhage/reptyr gibt, selbst kompilieren. Ist das Tool installiert, lässt es sich einfach verwenden:
reptyr PID
wobei PID für die Prozess-ID des laufenden Prozesses steht. Um ein laufendes Programm also in einen Screen zu verfrachten, startet man erst mit "screen bash" einen neuen Screen und holt sich dann mit "reptyr PID" den Prozess.
Probleme können bei modernen Linux-Distributionen auftreten, die aus Sicherheitsgründen die Fähigkeiten des Ptrace-Systemcalls beschränken, etwa Ubuntu Maverick und neuer. Hier hilft es, als Administrator Root kurzzeitig die Sperre auszuschalten:
echo 0 > /proc/sys/kernel/yama/ptrace_scope
Alles aktuell
Mittwoch, 11. Juli 2012 16:12:42