Autostart

Aus m-wiki
Zur Navigation springen Zur Suche springen

Der Autostart Wird in zwei verschiedenen Bereichen verwendet. Zuerst einmal beim Start des Computers, bei dem festgelegt wird, welches Startprogramm ausgeführt werden soll und dann noch beim Start des Betriebssystems bei dem man festlegen soll, welche zusätzlichen Programme nach der Initialisierung des Systems gestartet werden sollen.

Start beim Einschalten des Computers

Hier wird immer eine definierte Speicheradresse angesprungen. Befindet sich diese im ROM, so wird anschliessend zwingend das dort abgelegte Programm abgearbeitet. Befindet sich die Adresse in einem beschreibaren Speicherbereich, so kann konfiguriert werden, wie sich das Startprogramm verhalten soll. Dies wird etwa im BIOS/UEFI konfiguriert. Bei fixen Einplatinen-Computern in Waschmaschinen usw. wird hingegen ein ROM-Baustein verwendet, welcher garantiert, dass die gespeicherten Programme nicht verändert werden können und sich das Verhalten des Geräts nicht ändert.

Bei allgemeinen Computern ist aber Universalität gefordert. Entsprechend muss sich auch das Startverhalten ändern können, wenn man etwa ein anderes Betriebssystem verwenden möchte. Dies wird dadurch ermöglicht, dass das Betriebssystem nicht im ROM abgelegt wird, sondern in einem externen Speicher, welcher sich auf einer Festplatte oder einem anderen wechselbaren Datenträger wie einer SD-Karte befinden kann. Damit dies möglich ist, muss sich im Speicher aber ein Programm befinden, das weiss, wie dieser externe Datenträger angesprochen werden muss, um von dort das Betriebssystem in den Arbeitsspeicher zu laden, so dass dieses anschliessend die Steuerung übernehmen kann.

Programm nach dem Start des Betriebssystems ausführen

Hier ist der Aufruf abhängig vom Betriebssystem. Entsprechend werden hier nur die Systeme aufgeführt, die getestet wurden.

Raspberry Pi

Da es sich um ein Linux-System handelt, werden automatische Programmstarts seit ein paar Jahren per systemd gesteuert. Eine Datei, welche beim aufstarten des Systems abgearbeitet wird, ist die rc.local, welche einfach mit dem gewünschten Programmaufruf ergänzt werden kann. Die Datei findet sich direkt im Verzeichnis /etc und muss entsprechend als superuser bearbeitet werden. Ein detailliertes Beispiel findet sind im Internet. Will man etwa ein Python-Script automatisch ausführen, so wird es einfach vor dem abschliessenden exit 0 eingefügt.

python /pfad/zum/script.py
exit 0

Soll im Gegensatz dazu ein Dienst aktiviert werden, den das System zur Verfügung stellt, so aktiviert man diesen mit folgendem Befehl.

sudo systemctl enable x.service

Hier muss man x natürlich mit dem Dienstnamen ersetzen, den man aktivieren will. Wie man eigene Services für systemd erstellt, ist in einem Artikel von ubuntuusers erklärt.