Hallo wieder, es ist unglaublich wieviel stunden man an so scheinbar "einfachen" Aufgaben verlieren kann: Ich verzweifle gerade mein Python Programm nach dem booten automatisch zu starten, was ich schon versucht habe: mein Programm.py liegt unter /home/pi/ und heisst "start.py" ein Eintrag per nano im /etc/rc.local /bin/sleep 15 && /home/pi/start.py & GEHT NICHT (auch ohne sleep, ps -ef | grep python => ohne resultat) DANN: im LXDE @python /home/pi/start.py GEHT NICHT DANN: mit "sude nano crontab -e" eintrag @reboot sudo python /home/pi/start.py GEHT NICHT :-(
Geht's hier immer noch um deinen Bildergucker? epikao schrieb: > ein Eintrag per nano im /etc/rc.local > > /bin/sleep 15 && /home/pi/start.py & > > GEHT NICHT (auch ohne sleep, ps -ef | grep python => ohne resultat) Wundert mich nicht. Wenn es ein grafisches Programm ist, findet es so seinen X-Server nicht. Davon abgesehen wird es als root gestartet. Das kann man für Systemdienste und so benutzen, aber nicht für Programme, die auf der graphischen Oberfläche des eingelogten Users laufen sollen. > DANN: > > im LXDE > @python /home/pi/start.py > > GEHT NICHT Was das genau bedeutet, weiß ich nicht. Kenne mich mit LXDE nicht aus. Hast du mal das probiert: https://wiki.ubuntuusers.de/LXDE_Einstellungen/#Autostart-und-Sitzungseinstellungen-Default-application-for-LXSession-und-LXSession-edit Bzw. das: https://wiki.ubuntuusers.de/LXDE_Einstellungen/#Autostart-manuell-bearbeiten > > DANN: > > mit "sude nano crontab -e" > > eintrag @reboot sudo python /home/pi/start.py > > GEHT NICHT > > :-( Gleiches Thema wie beim ersten Versuch. Da crontab das Skript nicht von X aus startet, fehlt die DISPLAY-Variable, und das Programm findet den X-Server nicht. Da du es auch noch mit sudo gemacht hast, wird es ebenfalls wieder als root ausgeführt.
äh nicht "sudo nano crontab -e" sondern crontab -e dann Eintrag: eintrag @reboot sudo python /home/pi/start.py GEHT NICHT
epikao schrieb: > eintrag @reboot sudo python /home/pi/start.py Dein Skript wird aber trotzdem in sudo ausgeführt. Warum? Abgesehen davon wird das zu früh ausgeführt. Da ist die graphische Oberfläche noch gar nicht gestartet.
das start.py Programm sieht so aus: #!/usr/bin/env python import os from time import sleep import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(13, GPIO.IN) GPIO.setup(15, GPIO.IN) while 1: if GPIO.input(13) == False: from subprocess import call call(["./main.sh"]) sleep(0.1); normal funktioniert das Programm ... aber autostarten nicht :-(
Rolf Magnus schrieb: > Dein Skript wird aber trotzdem in sudo ausgeführt. Warum? Abgesehen > davon wird das zu früh ausgeführt. Da ist die graphische Oberfläche noch > gar nicht gestartet. sudo? keine Ahnung dann bin ich sicher das es nicht an irgendwelchen blöden Rechten scheitert... ok. und wie schaue ich das es erst startet wenn die GUI da ist? mit sleep? wohl kaum...
Soweit ich weiß funktioniert @reeboot nur in der /etc/crontab, nicht in den user-crontabs. sudo als root ist auch sinloß, lass das mal weg. dann schau nach dem booten, wie morob schon gesagt hat, mal ins syslog, da sollte stehen was sache ist.
Schreib mal call(["/home/pi/main.sh"]) Relative Pfade in Start-Scripts sind keine gute Idee.
Dirk D. schrieb: > Soweit ich weiß funktioniert @reeboot nur in der /etc/crontab, nicht in > den user-crontabs. oh je :-( tönt kompliziert, wenn ich das crontab kommandozeile öffne ist ein anderer Eintrag drin, als wenn ich Sie per GUI öffne... :-(
und mit der GUI ist es egal was man für Rechte vergibt einfach nicht möglich die crontab Datei zu ändern.. Und mit Kommandozeile wird eine andere crontab geöffnet. Zum kotzen... muss ich mich noch mit Benutzer auseinandersetzen?? Wie wechsle ich per kommandozeile zum root User? phuu
wenn ich crontab -e eingebe, öffnet sich was, aber es scheint im tmp/ ordner zu sein...
epikao schrieb: > muss ich mich noch mit Benutzer auseinandersetzen?? Wie wechsle ich per > kommandozeile zum root User? phuu logout dürfte da weiterhelfen. oder mal per Alt+F2...6 zu einer frischen Konsole wechseln und da einloggen. haste mal mit chmod+x ausführbar gemacht? die crontab wirste aufkriegen, wenn du zb. kate per sudo aufrufst.
ich blicke bei den crontab gerade nicht durch... wenn ich crontab -e eingebe, wird eine eigene crontab im tmp/ Ordner erstellt... kann das überhaupt funktionieren? Und wieso bin ich wenn ich raspberry starte und keine Benutzerlogin kommt, nicht automatisch root? und chmod +x alles schon gemacht :-(((((( und wie syslog funktioniert finde ich per google gerade nicth raus... ist sehr mühselig!
> wenn ich crontab -e eingebe, wird eine eigene crontab im tmp/ Ordner > erstellt... kann das überhaupt funktionieren? Normal. Beim Bearbeiten wird eine temp. Datei genutzt, beim Speichern die Datei geprüft und falls fehlerfrei in die crontab übernommen. > Und wieso bin ich wenn ich raspberry starte und keine Benutzerlogin > kommt, nicht automatisch root? Klar bist Du root. Was denn sonst, wenn kein Nutzer eingeloggt ist. Und schreibe in Deinem Script in den call-Aufruf den vollen Pfad, also "/home/pi/main.sh".
Moin erstmal @reboot in der crontab geht nur bei Ubuntu, oder RH und beim vixi Cron. Start der Skript Datei teste mal "#!/usr/bin/python", der Eintrag mit ENV geht nur wen es in $PFAD gesetzt ist crontabs benutzen standardmäßig /usr/bin/sh nicht /usr/bin/bash Oben schon genant ist die Datei ausführbar ? Wird sie nicht gestartet oder macht sie Fehler beim starten und läuft deshalb nicht, entweder du schaust mal in die Crontab mails oder wenn du die nicht hast leite die ausgaben in eine Textdatei um: "/home/pi/start.py > /bla/blub.txt 2>&1"
also........ autostart vom python script funktioniert, aber nicht das starten von feh. (da dass feh nie gestartet hat, hatte ich übersehen das die scripts doch reagieren) start.py ist in der crontab eingetragen, dieser ruft main.sh auf, da drin steht: feh -D 3 /home/pi/Desktop/Pictures/1920x1080/ & /home/pi/main.py die main.py wird ausgeführt (darin steht was mousemove wenn Taster betätigt) ... also das funktioniert, bzw. der Mauszeiger bewegt sich dann - ABER eben mit feh geschieht nichts... schwierig
habs herausgefunden :-) um feh automatisch auszuführen, brauchts vorher export DISPLAY=:0.0 :-)) Danke für alle Tips
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.