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.
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.
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
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