ich meinen Dienst fange an einem Raspberry Pi 2 (Raspbian) Ausführen eines Befehls in rc.local
verwendet, die wie folgt aussieht:Warum kann ich nicht umleiten stdout eines Python-Skript in eine Datei
python3.4 /home/pi/SwitchService/ServiceStart.py >/home/pi/SwitchService/log &
python3.4 /home/pi/test.py >/home/pi/log2 &
Für einige Ursache Ich sehe keinen Text in der Protokolldatei meines Dienstes, obwohl das Skript auf stdout druckt.
die beiden Skripte wie folgt aussehen:
test.py
print("Test")
ServiceStart.py
from Server import Server
print("Test")
if __name__ == "__main__":
server = Server()
Weil ich nicht die Bash-Lösung arbeiten konnte Ich habe versucht this other solution, ob das für mich funktioniert. Es verhält sich genauso wie die Bash-basierte Methode. Daher schreibt mein Dienst nichts in die Protokolldatei, obwohl die leere Datei erstellt wurde.
Sind Sie sicher, dass das Skript tatsächlich ausgeführt wird? Startup-Routinen haben normalerweise nicht "PATH" gesetzt, so dass es nicht wissen kann, wo sich 'python3.4' ohne seinen vollständigen Pfad befindet. –
Sind Sie sicher, dass ServiceStart auf stdout schreibt? Oder schreibt es an stderr? Was passiert, wenn du es nicht dämonisierst? Gibt es etwas aus? Zu welcher Standarddatei? Stout oder stderr? – pah
@ Mr.Llama Ich kann bestätigen, dass das Skript ausgeführt wird, da ich den Dienst verwenden kann. –