Hallo,
ich habe versehentlich einem lange dauernden Prozeß (Filesystemformatierung) das kontrollierende Terminal entzogen, dadurch daß ich die entsprechende Konsole geschlossen habe. Der Prozeß ist noch aktiv, ps ax meldet ihn mit "?" als terminal, lsof -p <PID> zeigt u.a. /dev/pts/4 (deleted).
Die Frage: Kennt jemand einen Weg, dem Prozeß wieder ein Terminal zuzuweisen, um stderr, stdout wieder lesen zu können?
Irgendein Trick an die I/O des Prozesse heranzukommen täte es auch ...
TIA!
Bernhard
Bernhard Schiffner bernhard@schiffner-limbach.de (Tue Sep 13 12:11:57 2011):
Hallo,
ich habe versehentlich einem lange dauernden Prozeß (Filesystemformatierung) das kontrollierende Terminal entzogen, dadurch daß ich die entsprechende Konsole geschlossen habe. Der Prozeß ist noch aktiv, ps ax meldet ihn mit "?" als terminal, lsof -p <PID> zeigt u.a. /dev/pts/4 (deleted).
Bei einem normalen Filesystem (ext3/ext4) würde ich sagen, Du könntest mit dem FS-Debugger einen Verzeichnis-Eintrag mit der Inode-Nummer, die Du bei lsof siehst, wieder anlegen, aber im /dev/ … hm.
Die Frage: Kennt jemand einen Weg, dem Prozeß wieder ein Terminal zuzuweisen, um stderr, stdout wieder lesen zu können?
Irgendein Trick an die I/O des Prozesse heranzukommen täte es auch ...
strace -e write -p <PID>
Am Dienstag, 13. September 2011, 12:11:57 schrieb Bernhard Schiffner:
Hallo,
ich habe versehentlich einem lange dauernden Prozeß (Filesystemformatierung) das kontrollierende Terminal entzogen, dadurch daß ich die entsprechende Konsole geschlossen habe. Der Prozeß ist noch aktiv, ps ax meldet ihn mit "?" als terminal, lsof -p <PID> zeigt u.a. /dev/pts/4 (deleted).
Die Frage: Kennt jemand einen Weg, dem Prozeß wieder ein Terminal zuzuweisen, um stderr, stdout wieder lesen zu können?
Irgendein Trick an die I/O des Prozesse heranzukommen täte es auch ...
TIA!
Bernhard
Zwischenstand: - 1.) Es gibt Ansätze von C-Programmen, die so was tun. http://www.habets.pp.se/synscan/programs.php?prog=injcode (Thomas Habets: arping etc.!!!)
- 2.) alles andere bemüht strace / gdb entweder direct oder in Scripten z.B. strace -s 10000 -e write=1 -e trace=write -p <PID> -f 2>&1 | grep ... sed ... (Das hat mir om vorliegenden Fall genügt.)
z.B: "dupex"
Bernhard
lug-dd@mailman.schlittermann.de