Raspberry Pi Automatisch Starten eines Programms
Also ich habe ein python-Spiel (PyGame) läuft auf einem raspberry Pi.
Ich habe die Anweisungen befolgt auf vielen Websites für das Raspberry Pi auto-login (alle Arbeit), auto-run-startx, aber ich bin stecken auf immer, mein Programm ausgeführt wird, sobald das GUI geladen.
Viele Menschen (hier auf StackOverflow und anderen Orten) diese Präsentation hier:
http://www.slideshare.net/SeggySegaran/raspberry-pi-autostarting-a-python-program
Habe ich versucht, beide Wege, es zu tun (wenn man die desktop-Datei im autostart oder setzen Sie den Befehl in rc.lokale
Habe ich geöffnet, bis Sie ein Terminal-Fenster und copy /Paste den Befehl, um zu überprüfen, es gibt keine Tippfehler und der code ausgeführt wird......
sudo python /home/pi/valley.py
und es wird laufen. Gibt es eine Möglichkeit zu sehen, ein Protokoll, um herauszufinden, WARUM das Programm nicht starten? Gibt es eine bessere Weise, das zu tun, was ich will, zu tun bekommen?
- Warum sind Sie unter
sudo
? Funktioniert es, ohne, dass? - Ich mit sudo, weil das ist, was die slideshare Anweisungen waren. Werde versuchen ohne.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich mein python-Skript beim Start ausgeführt werden, dies zu tun:
Wird diese ermöglichen es Ihnen, um ein element auszuführen, wenn die LXDE-desktop-Sitzung beginnt (das raspian Standard-GUI, wenn das setup nicht mit der raspi-config)
Wird es wohl haben Einträge wie diese:
Es ist nur eine Frage des Hinzufügens Ihr Skript auch dort
Wenn Ihr python-Skript verwendet, GPIO, müssen Sie ausführen, dass Sie als root (mit sudo):
Einer Sache, die ich hinweisen möchte: immer testen Sie Ihr Skript vor der hand.
Ich meine, laufen mit dem absoluten Pfad, stellen Sie sicher, dass Sie immer noch funktioniert, versuchen Sie, es zu brechen, machen Sie sicher, dass es so robust wie es sein kann. Wenn es Fehler in Ihrem Skript, und Sie können es zu starten, bis Sie nicht sehen, diese in ein terminal-Fenster, aber Sie Schwein die cpu mit python stecken in einer Endlosschleife beim Start.
Überprüfen Sie auch diese Antwort auf die RPi-exchange
Erstellen Sie eine Verknüpfung/desktop-Verknüpfung zu Ihrem Programm, und führen Sie:
sudo cp /home/pi/Lage-der-Verknüpfung /etc/init.d/
Denke ich, dass es das ist, aus der Spitze von meinem Kopf. Wenn jemand überprüfen konnte. Naja, ich denke, das ist es, wie das ist, wie ich bekam mein splashscreen arbeiten!
Können Sie erreichen, gibt es zwei Möglichkeiten:
1). Mit LXDE autostart.
2). Als Dienst via init.d.
Wenn Sie starten X mit "startx", Sie können auch einfach kleben Sie Ihr Spiel in Ihrem .xinitrc. Wenn Sie Ihr Spiel binäre wird als "Spiel" und ist im Pfad, nur dazu:
Dieser Werke für andere Befehle. Fügen Sie ein "&" wenn du willst, den Befehl zu halten, die im hintergrund laufen.
Dies ist, wie ich mein window-manager, laden meine Tapete, starten Sie einen compositor, etc. Es ist dumm, einfach, leicht zu ändern, später, und können tun, was Sie tun können, ein terminal-Eingabeaufforderung.
Können Sie die Ausführung Ihres Skripts automatisch beim Start des raspberry mittels crontab.
Crontab ist die Tabelle, die Liste alle Befehle ausführen, auf der geplanten Zeit.
Zuerst müssen Sie zum Bearbeiten der crontab mit:
sudo crontab -e
Und danach fügen Sie folgende Zeile ein:
@reboot python-Pfad-der-Ihr-Skript & (& sollte am Ende der Zeile, bedeutet, wird der Befehl im hintergrund ausführen).
Speichern Sie das Skript und starten Sie Ihr system. Wenn Ihr system wird beginnen, Ihr Skript wird automatisch ausgeführt.