Autostart start.py geht nicht :-(

Gast #4759840
Lesenswert?
• ▲
▼
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

:-(
Gast #4759855
Lesenswert?
• ▲
▼
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.
Gast #4759870
Lesenswert?
• ▲
▼
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 :-(
Gast #4759875
Lesenswert?
• ▲
▼
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...
Gast #4759936
Lesenswert?
• ▲
▼
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
Gast #4759948
Lesenswert?
• ▲
▼
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.
Gast #4759953
Lesenswert?
• ▲
▼
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!
Gast #4759966
Lesenswert?
• ▲
▼
> 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".
Gast #4759996
Lesenswert?
• ▲
▼
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"
Gast #4760230
Lesenswert?
• ▲
▼
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren