Autostart funktioniert nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Ripoli
Beiträge: 3
Registriert: 14.02.2018 13:38:52

Autostart funktioniert nicht

Beitrag von Ripoli » 14.02.2018 13:46:35

Hallo Freunde, ich versuche seit Tagen ein Python Script in den Autostart zu packen, so das er beim hochfahren automatisch die run.py ausführt.
Alle Methoden habe ich versucht und die Anleitung akribisch abgearbeitet aber es will einfach nicht.

Aktuell versuche ich es über rc.local zu realisieren. So sieht meine Datei aus:

Code: Alles auswählen

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

su pi -c 'cd musikbot/ && sudo python3.5 run.py'
 
exit 0
Wenn ich den Befehl so im Terminal eingebe geht es wunderbar.
Also im Prinzip möchte ich das wenn ich mich über Remote einlogge, direkt schon das Terminal Fenster mit dem ausgeführten Befehl sehen (Grafische Oberfläche)

Hoffe mir hilft jemand. Bin Linux Anfänger.

MSfree
Beiträge: 3407
Registriert: 25.09.2007 19:59:30

Re: Autostart funktioniert nicht

Beitrag von MSfree » 14.02.2018 13:58:47

Ripoli hat geschrieben: ↑ zum Beitrag ↑
14.02.2018 13:46:35
su pi -c 'cd musikbot/ && sudo python3.5 run.py'
mit su pi wird auf den Benutzer "pi" gewechselt. Danach wird python3 mit sudo ausgeführt, so daß es letztlich als root läuft. Die Kombination aus su und sudo ist in diesem Fall überflüssiger Blödsinn, weil rc.local ohnehin mit root-Rechten ausgeführt wird.

Code: Alles auswählen

'cd musikbot/ && python3.5 run.py'
hätte also den gleichen Effekt. Es sei denn, du willst "run.py" nicht als root ausführen. Wobei ich nicht empfehlen würde, dein Skript als root auszuführen.

Als nächstes wechselt der Befehl mit cd musikbot in irgend ein Verzeichnis, das nicht existiert. Du mußt da schon den absoluten Verzeichnispfad eingeben, also z.B.:cd /home/pi/musikbot oder wo auch immer das Verzeichnis musikbot sich befindet.

Ripoli
Beiträge: 3
Registriert: 14.02.2018 13:38:52

Re: Autostart funktioniert nicht

Beitrag von Ripoli » 14.02.2018 14:36:44

Ahhh okay, habe das Script mal so angepasst:
su pi -c 'cd /home/pi/musikbot/ && python3.5 run.py'

OMG wow es klappt direkt. Danke super nett. Manchmal findet man einfach die Fehler nicht :)
Gibt es denn auch eine Möglichkeit, das das Terminal Fenster offen bleibt?
So das ich nach dem einloggen noch sehe ob mein Bot läuft?

MSfree
Beiträge: 3407
Registriert: 25.09.2007 19:59:30

Re: Autostart funktioniert nicht

Beitrag von MSfree » 14.02.2018 14:47:47

Ripoli hat geschrieben: ↑ zum Beitrag ↑
14.02.2018 14:36:44
Gibt es denn auch eine Möglichkeit, das das Terminal Fenster offen bleibt?
Terminal? Fenster? Offen? Irgendwie habe ich den Faden verloren. Alles, was von rc.local gestartet wird, sollte eigentlich im Hintergrund ohne irgendwelche Ausgaben laufen.

Ripoli
Beiträge: 3
Registriert: 14.02.2018 13:38:52

Re: Autostart funktioniert nicht

Beitrag von Ripoli » 15.02.2018 00:24:01

Achso, ja dann lasse ich es so. Danke für die Hilfe.

Antworten