Ich weiß, die Chancen sind extrem niedrig, aber gibt es einen Weg um zu sehen, was ein nohup-ed-Prozess in letzter Zeit ausgegeben hat?
Ich habe diesen Prozess immer noch geöffnet, aber ich habe ihn ausgeführt, indem ich alle Ausgaben nach / dev / null umgeleitet habe.
Gibt es also eine Möglichkeit, einen solchen Prozess in die Konsole zurückzuholen, oder ist es hoffnungslos: (
Prost
Es gibt einen Weg, aber es ist nicht direkt, der Trick besteht darin, dup2 zu verwenden und hängt von der Tatsache ab, dass Ihr Programm gegen libc verbunden ist (was alle c / c ++ - Anwendungen wären, aber eine Java-Anwendung nicht) sei zum Beispiel)
Führen Sie Folgendes an der gdb-Eingabeaufforderung aus, um stdout an / tmp / newfile
umzuleiten$ print dup2 (offen ("/ tmp / newfile", 0), 1)
Führen Sie Folgendes aus, um stderr nach / tmp / newfile
umzuleiten$ print dup2 (offen ("/ tmp / newfile", 0), 2)
Was dup2 tut, ist
duplizieren Sie einen Dateideskriptor Das bedeutet, dass sowohl stdout / stderr (1 und 2) als auch der neue Dateideskriptor, der von open zurückgegeben wurde, austauschbar verwendet werden können. Dadurch wird die gesamte Ausgabe in stdout und stderr in die geöffnete Datei verschoben.
Tags und Links c c++ linux file-descriptor nohup