Wie kann ich stdout in Python in eine beliebige Datei umleiten?
Wenn ein langlaufendes Python-Skript (z. B. eine Webanwendung) aus der ssh-Sitzung heraus gestartet und zurückgeschaltet wird und die ssh-Sitzung geschlossen wird, löst die Anwendung einen IOError aus und schlägt fehl, sobald sie versucht, in stdout zu schreiben. Ich musste einen Weg finden, um die Anwendung und die Module dazu zu bringen, in eine Datei statt in stdout zu schreiben, um einen Fehler aufgrund von IOError zu vermeiden. Derzeit verwende ich nohup, um die Ausgabe in eine Datei umzuleiten, und das erledigt die Aufgabe, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, es ohne nohup zu tun, aus Neugier.
Ich habe bereits versucht sys.stdout = open('somefile', 'w')
Dies scheint jedoch nicht zu verhindern, dass einige externe Module immer noch an das Terminal ausgeben (oder vielleicht die sys.stdout = ...
Linie hat überhaupt nicht geschossen). Ich weiß, dass es von einfacheren Skripten funktionieren sollte, die ich getestet habe, aber ich hatte auch noch keine Zeit, um auf einer Webanwendung noch zu testen.