Python-Script nach dem booten richtig starten

Begonnen von TomLee, 02 April 2022, 12:51:20

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

kann mir bitte wer sagen wie man es richtig macht das Skript nach dem booten zu starten ?

Als User pi starte ich das Skript im Verzeichnis bla mit python3 meinskript.py.

Ich habs bisher versucht mit

sudo crontab -e

und mit dem user pi

crontab -e

jeweils mit diesem Eintrag:

@reboot screen -dm bash -c "cd ~/bla; python3 meinskript.py"

Klappt beides nicht, wo könnte man nachschauen was schief läuft ?

Gruß

Thomas

rudolfkoenig

Laut screen Handbuch:
Zitat-c file
            override the default configuration file from $HOME/.screenrc to file.

Ich wuerde den Befehl erst in der Kommandoziele testen, und erst dann ins cron hinter @reboot eintragen.

TomLee

Wenn ich das als user pi mache:

screen -dm bash -c "cd ~/bla; python3 meinskript.py"

dann wird das Skript ganz normal gestartet, was ich mit screen -r dann sehe, weil das die einzige "Session" ist die läuft.

Ich gebe ganz offen zu das ich mit dem Zitat aus dem Handbuch noch nix anfangen kann, kommt vlt. noch (und muss auch gleich weg).

rudolfkoenig

Sorry, mein Fehler, -c geht an bash nicht an screen.
~ gilt fuer den Benutzer, der das ausfuehrt, d.h. root und pi sind unterschiedlich.
Ich wuerde sicherheitshalber den Pfad komplett ausschreiben.

TomLee

Mit
sudo crontab -e
@reboot screen -dm bash -c "cd /home/pi/bla; python3 meinskript.py"


sehe ich mit screen -r weiterhin nix (müsst ich doch nach dem booten ?), wenn das Skript laufen würde sehe ich das auch an einem Arduino Nano der per USB angeschlossen ist und in kurzen Intervallen dann blinken müsste.

TomLee

In der syslog steht einfach nur:

Apr  2 23:10:58 FHEMPIOS cron[396]: (CRON) INFO (Running @reboot jobs)

Mehr Infos gibts nicht.

schwatter

Moin,

ist den screen notwendig? Läuft dein Script dauerhaft im Hintergrund oder immer nur einmalig?

Ich führe selber ein Script alle 10min einmalig aus.


*/10 * * * * python /opt/rr/my.py

Bei dir sollte es dann so funktionieren.

@reboot python3 /home/pi/bla/meinskript.py

Gruß schwatter

Wernieman

Grundsätzlich sollt man bei cron mit kompletten Pfaden arbeiten. Cron lädt normalerweise die Umgebung des Users nicht. Woher soll dann die shell wissen, wo screen liegt?

Wenn ein Befehl als User läuft, als cron aber nicht, liegt meistens genau dieser Fehler vor!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

#8
Das doch wie verhext, es klappt auch nicht mit:

Als user pi:

@reboot python3 /home/pi/meinskript.py"

Auf zwei Systemen, einmal Bullseye und Buster.

Wenns einmal laufen würde, wär mir screen egal, es soll halt immer starten, ohne zutun.

Keine Ahnung obs was mit den Rechten zu tun hat, die Datei war bisher nicht ausführbar, das hab ich einfach mal geändert, ohne Auswirkungen.

-rwxr-xr-x 1 pi pi   46231 Mar 31 15:48  meinskript.py

Wernieman

- Zeig mal Dein Script
- Du startes python immer noch nicht mit Pfad.

Hinweis: "whereis python3"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

Zitat- Zeig mal Dein Script

8)  ::)  :P es macht einfach nur Spass sich mit zu beschäftigen und man lernt ja auch was dabei.

Wernieman

Nur ... ohne Inhalt kann man schlecht sagen, wo denn der Fehler liegen Könnte

Wie in meine Footer steht: Ohne Input kein Output
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

Wie meinst du das, "ohne Inhalt" ? Du wolltest das Skript sehen !?

Otto123

Werner meinte vor allem den Aufruf so
@reboot /usr/bin/python3 /home/pi/duino-coin/meinskript.py"
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

whereis python3
python3: /usr/bin/python3 /usr/bin/python3.9-config /usr/bin/python3.9 /usr/lib/python3 /usr/lib/python3.9 /etc/python3 /etc/python3.9 /usr/local/lib/python3.9 /usr/include/python3.9 /usr/share/python3 /usr/share/man/man1/python3.1.gz


Mit:
@reboot /usr/bin/python3 /home/pi/bla/meinskript.py"
erfolgt immer noch kein Start des Skript nach reboot.