Raspberry Pi – Autostart von Programmen
Der Raspberry Pi wird heute gerne von diversen Unternehmen als Ersatz für Microcontroller und Computer ins Auge gefasst die ausschließlich eine einzige Aufgabe haben. In einem Hotel als Rechner zum Internet surfen, in einem Automaten zur Steuerung oder in einem Haus zur Home Automatisierung (Hausautomation). Bei allen Anwendungen ist eines immer erwünscht: der Raspberry Pi soll direkt in ein Programm starten und auch nichts anderes ausführen können. Ich zeige euch wie ihr direkt beim Bootvorgang in ein Programm starten könnt.
Autostart
Linux ist ein offenes System, das heißt es gibt eigentlich nichts, was wir nicht auch verändern und anpassen können. So auch beim Raspberry Pi. Die Frage ist lediglich, wie viel möchten wir ändern? Ich zeige euch einige unterschiedliche Möglichkeiten. Gerne könnt Ihr hier auch eure eigenen Ideen oder Lösungen als Kommentar posten.
Einfachste Möglichkeit
Eine recht universelle und sehr einfache Möglichkeit ist die Erstellung einer Datei im .config Ordner. Diese Möglichkeit habe ich bereits bei meinem Artikel über den VNC Server vorgestellt. Um beispielsweise ein eigenes Python Programm direkt nach dem Login oder Bootvorgang automatisch zu starten muss man folgendes machen:
- einen neuen Ordner autostart under ~/.config erstellen
cd ~/.config mkdir autostart
- eine neue Datei mit der Endung .dektop erstellen
nano mypython.desktop
- Konfiguration um ein Programm auszuführen
[Desktop Entry] Name=MyPython Exec=python mypython.py Type=application
Nach einem Neustart sollte nun das angegebene Programm als erstes starten. Das Python Skript muss dabei im Homeverzeichnis des Benutzers liegen.
LXDE spezifische Möglichkeit
Eine weitere, LXDE spezifische Möglichkeit gibt es auch. Von der Ausführung ist diese mit der ersten identisch. Das funktioniert aber nur beim LXDE Windowmanager. Dieser ist das Desktopsystem von Rasbian Linux.
- die Autostart Konfiguration von LXDE ändern. Man benötigt root Rechte!
sudo nano /etc/xdg/lxsession/LXDE/autostart
- das Programm für den Autostart festlegen. Dafür einfach folgende Zeile einfügen und speichern.
@python mypython.py
Nach einem Neustart wird auch wie in Möglichkeit 1 gezeigt das Programm gestartet. Will man beispielsweise den Browser starten reicht die Zeile @midori.
Terminal Möglichkeit
Man kann auch über eine Änderung im Loginskript ein Programm direkt im Terminal starten. Das macht eigentlich nur für Kommandozeilenprogramme Sinn, denn beim normalen Systemstart in den Desktop wird dieses nicht ausgeführt. Zur Vollständigkeit halber will ich es hier auch nennen.
- Login Skript öffnen
nano .bashrc
- neue Zeile für die Ausführung des Programms ganz am Ende der Datei hinzufügen
python mypython.py
Startet man nun im Desktop ein Terminal, dann wird dort direkt das Programm gestartet. Hat das Python beispielsweise eine grafische Ausgabe in einem Fenster, so wird dieses geöffnet.
Die „Terminal Möglichkeit“: in Kombination mit einer terminal.desktop in .config/autostart die perfekte Lösung um ein beliebiges Programm zu starten wenn man -so wie ich- an crontab verzweifelt. Super, vielen Dank!
Wie kann ich bei der „LXDE spezifische Möglichkeit“ das python script als root starten? Der Autostart klappt ohne Probleme wenn ich die GPIO Bedingeungen auskommentiere.
Terminal Möglichkeit ausprobiert –
Folge: Das Terminal startet nicht mehr. Auch nicht in der graph. Oberfläche.
Wie bekomme ich den Vorgang rückgängig?
Hallo und Guten Tag
Herr Werner Ziegelwanger !
Ich habe einen Raspberry Pi 3 B gekauft und möchte damit kleine
Steuerungsaufgaben im Hause lösen.
Da kam mir Ihr Artikel im Internet *“ Autostart, Einfachste Möglichkeit“*
gerade recht !
Ein kleines , lauffähiges Programm zum Ansteuern von GIO- Ausgängen, habe
ich schon.
Es soll aber stand- alone , direkt nur mit dem Raspi arbeiten und nach
Spannungsaufall wieder selbst starten.
Schon ein paar mal habe ich versucht, nach Ihren Anweisungen den Autostart
zu programmieren, aber leider immer
noch ohne Erfolg.
Bei den Zeilen der Konfiguration der Programm-Ausführung, habe ich,wenn ich
den „Run“-Befehl ausführe , immer
die Meldung „Fehler im Programm“.
Ihre Lösung für den “ Autostart“ und die zugehörige Beschreibung finde ich
bestens, aber da ich im Raspberry-Programmieren noch absolut neu bin,kann
ich mir da selbst nicht weiter helfen.
Haben Sie bitte eine Idee, die schon sehr gute Beschreibung, einem „Dummy“
noch ausführlicher darzulegen !
Mit freundlichen Grüßen
Friedrich Pischel
D-31303 Burgdorf b. Hannover
Ich habe die .desktop-Datei in den Ordner autostart verschoben. Da fehlt noch ein „cd autostart“ 😉