2111764

Cron: Linux-Tools und Befehle beim Boot ausführen

01.09.2015 | 12:31 Uhr |

Für Scripts und Hintergrundprogramme, die beim Systemstart ausgeführt werden sollen, eignet sich der Taskplaner Cron mit der variablen Zeitangabe „@reboot“.

Es gibt unter Linux Aufgaben, im Grunde genommen einfach wären, deren Lösung aber wegen der Unterschiede zwischen den Linux-Distributionen alles andere als trivial ist. Dazu gehören der Start eigener Programme und Scripts beim Boot des Systems. Eigentlich sollte dies stets über den Init-Daemon mit einem passenden Start-Script geschehen. Ist für den gewünschten Zweck keines vorhanden, ist man gezwungen, selbst eines zu schreiben. Aber es gibt noch einen einfacheren Weg.

Zwölf Shell-Erweiterungen für jeden Zweck

Debian und davon abstammende Linux-Distributionen, etwa Ubuntu und Raspbian , sehen für eigene Scripts und Programme die Datei „/etc/rc.local“ vor. Was dort vor der abschließenden Zeile „exit 0“ eingetragen wird, führt das System beim Boot mit root-Rechten aus.

Damit die Angaben der „rc.local“ nicht den Systemstart beeinträchtigen, ignoriert das System alle Fehler und überspringt den Rest der Datei ab dem ersten fehlerhaften Befehl. Falls etwas nicht auf Anhieb klappt, ist eine Fehlersuche in der „rc.local“ deshalb schwierig. Und für Distributionen außerhalb des Debian -Stammbaums ist die Startmethode sowieso irrelevant, da es dort keine „rc.local“ gibt.

Eine etwas bessere, ebenfalls unkomplizierte Methode, Scripts und Programme automatisch beim Boot auszuführen, liefert der Taskplaner Cron. Dieser unterstützt als Zeitangabe das Schlüsselwort „@reboot“, das den Systemstart als Zeitpunkt festlegt. Ob Neustart oder Kaltstart, spielt dabei keine Rolle.

Ein Vorteil ist, dass Cron die eingetragenen Befehle nicht nur als root ausführen kann. Jeder Benutzer des Systems kann also Autostart-Befehle in der eigenen Cron-Tabelle unterbringen, die dann in diesem Benutzerkontext ausgeführt werden.

Um die eigene Cron-Tabelle zu bearbeiten, geben Sie

crontab -e  

im Terminal ein. Mit

sudo crontab -e  

bearbeiten Sie Cron-Einträge für das root-Konto. Im aufgerufenen Editor definieren Sie einen Autostart-Aufruf mit „@reboot“ am Anfang der Zeile und dem exakten Pfad zum Script oder der Programmdatei:

@reboot [Pfad/zum/Befehl]  

Genau wie in der rc.local“ können Sie keine grafischen Anwendungen starten, auch keine Programme, die ein Terminal voraussetzen. Es gibt aber einen Trick mit Hilfe des Tools screen, um Terminal-Programme im Hintergrund zu starten. So führt beispielsweise die Zeile

@reboot /usr/bin/screen -d -m rtorrent  

den Bittorrent-Client rtorrent in einer Screen-Sitzung aus, die Sie dann mit

screen -x  

jederzeit in den Vordergrund holen können.

0 Kommentare zu diesem Artikel
2111764