Bildschirmsitzung kann nicht gestartet werden

Bildschirmsitzung kann nicht gestartet werden

Ich rufe den folgenden Befehl über Bash auf, aber es wird überhaupt keine Bildschirmsitzung erstellt:

screen -d -m time python3 myscript.py ; sleep 1

wenn ich screen -rdas mache, kommt die Meldung „Kein Bildschirm zum Fortsetzen“. Wenn ich es jedoch versuche:

screen -d -m time python3; sleep 1

Wenn Sie screen -rdies tun, wird die Py-Konsole angezeigt.

Was mache ich falsch?

Antwort1

screen -d -m time python3 myscript.pywird innerhalb einer Bildschirmsitzung ausgeführt python3 myscript.pyund dann beendet. Wenn Sie diese Bildschirmsitzung später nicht sehen, liegt das daran, dass das Skript bereits beendet wurde.

Offenbar haben Sie myscript.pyeine längere Laufzeit erwartet. Da muss etwas schiefgelaufen sein. Leiten Sie die Ausgabe (insbesondere Fehler) in eine Datei um, um zu sehen, was los ist. Oder halten Sie die Sitzung aufrecht, indem Sie ein anderes Programm ausführen.

screen -d -m time sh -c 'python3 myscript.py; echo $?; sleep 999999999'

Wenn das Skript nicht funktioniert, wenn Sie es direkt vom Bildschirm aus ausführen, aber funktioniert, wenn Sie es von einer interaktiven Shell aus ausführen, deutet dies höchstwahrscheinlich auf zwei Dinge hin:

  • myscript.pyhängt von einer Einstellung ab, wahrscheinlich einer Umgebungsvariable. Es ist nicht in sich geschlossen.
  • Sie setzen diese Einstellung an der falschen Stelle. Sie setzen wahrscheinlich eine Umgebungsvariable in .bashrc, die nur von interaktiven Shells gelesen wird. Setzen Sie .profilestattdessen Umgebungsvariablen in ; diese Datei wird gelesen, wenn Sie sich anmelden.

verwandte Informationen