Ich habe ein Python-Skript test.py
, das nur enthält : print('hi')
. Ich möchte es in einem ausführen, screen
damit die Ausgabe von screen
gespeichert wird script
.
Ich benutze den folgenden Befehl, um test.py
in a auszuführen screen
, es funktioniert gut:
screen -dm bash -c 'python test.py'
Es ist mir jedoch noch nicht gelungen, einen Weg zu finden script
, um die Ausgabe des zu speichern screen
. Wie kann ich es tun?
Ich habe erfolglos versucht:
script -c "screen -dm bash -c 'python test.py'" output.txt
: Die Ausgabedatei output.txt enthält nichthi
, sondern nur:Script started on Fri 26 Aug 2016 01:04:59 PM EDT Script done on Fri 26 Aug 2016 01:04:59 PM EDT
Ich benutze Ubuntu 14.04.4 LTS x64.
Dokumentation:
https://www.gnu.org/software/screen/manual/screen.html :
-d -m: Startbildschirm im getrennten Modus. Dadurch wird eine neue Sitzung erstellt, die jedoch nicht an sie angehängt wird. Dies ist nützlich für Systemstart-Skripte.
http://linux.about.com/library/cmd/blcmdl1_sh.htm :
-c Zeichenfolge: Wenn die Option -c vorhanden ist, werden Befehle aus der Zeichenfolge gelesen. Wenn nach der Zeichenfolge Argumente vorhanden sind, werden diese den Positionsparametern zugewiesen, beginnend mit $ 0.
Manpage des Skripts:
-c, --command run Befehl statt interaktive Shell
quelle
screen -dm -L bash -c 'python running_4ever.py'
und sehe das Protokoll sowie den neu erstellten Bildschirm als getrennt. Ich frage mich, wie wir es anhängen oder töten können. Ich habe es versuchtscreen -r <screen_id>
, aber nicht funktioniert.screen -dm -S <screen_name> -L bash -c "python running_4ever.py"
und es hat funktioniert, dann habe ich es einfachscreen -XS <screen_name> quit
getötet. Vielen Dank für die AntwortEine andere Möglichkeit besteht darin, zuerst den Bildschirm anzubringen:
screen -r <pid or name>
und dann:
Ctrl+ A,H
Die Anmeldung wird gestartet
screenlog.0
quelle
Könnte klappen!
quelle