Ubuntu & Mint

So beherrschen Sie den Linux-Autostart

Autostart checken via „.bashrc“ auf Linux-Servern

„Startprogramme“ ohne Vorfilter: gnome-session-properties zeigt sämtliche Autostarts an, wenn in den zugehörigen Starterdateien das Flag „NoDisplay“ abgeschaltet wird.
„Startprogramme“ ohne Vorfilter: gnome-session-properties zeigt sämtliche Autostarts an, wenn in den zugehörigen Starterdateien das Flag „NoDisplay“ abgeschaltet wird.

Die versteckte Datei „.bashrc“ liegt im Home-Verzeichnis jedes Benutzers und gilt folglich für den angemeldeten Benutzer. Alle dort enthaltenen Kommandos werden beim Start des Terminals abgearbeitet. Normalerweise dienen die „Bash Run Commands“ (bashrc) allein dem Terminal-Komfort mit Aliases, Functions, Prompt und Definitionen weiterer Variablen. Es ist auch sicher nicht praktikabel, jeden Terminal-Start mit diversen, eventuell sogar grafischen Programmen zu begleiten.

Etwas anders steht es auf Servern, die per SSH im Terminal verwaltet werden: Hier kann es durchaus sinnvoll sein, mit dem Start der Konsole auch gleich einen Dateimanager oder ein System-Tool wie htop zu laden. Ferner bietet es sich hier, die wesentlichen Serverfunktionen gleich mit der „.bashrc“ zu kontrollieren und gegebenenfalls zu korrigieren. Typische Frage wäre etwa, ob die angeschlossenen Laufwerke gemountet sind:

if mount -l | grep /sda1 > /dev/null; then echo "Drive 1 ist gemountet" else mount /dev/sda1 ~/sata1 fi

Wer mehrere Server betreibt, kann sich von der „.bashrc“ mit uname -a oder einem Tool wie inxi informieren lassen, auf welchem Gerät er sich befindet.

Tipp: Beim Start eines Terminals wird auch noch die Datei „.profile“ im Home-Verzeichnis berücksichtigt. Weil die hier enthaltenen Befehle genau wie jene in der „.bashrc“ für den angemeldeten Benutzer gelten, können Sie ebenso gut diese nutzen. Lediglich für die Startanalyse kann es wichtig sein, auch diese Startrampe zu kennen.

„Bash Run Commands“ als Autostarter: Auf Servern, die nur gelegentliche SSH-Anmeldung erfordern, kann die standardmäßig abgearbeitete „.bashrc“ Routinearbeiten übernehmen.
„Bash Run Commands“ als Autostarter: Auf Servern, die nur gelegentliche SSH-Anmeldung erfordern, kann die standardmäßig abgearbeitete „.bashrc“ Routinearbeiten übernehmen.

Terminalbefehle in der „rc.local“

Befehle, die unabhängig vom angemeldeten Benutzer in jedem Fall abgearbeitet werden sollen, können Sie auf Debian-basierten Systemen (Debian, Ubuntu, Mint, Raspbian) in der Datei „/etc/rc.local“ unterbringen. Diese Befehle werden schon vor der Benutzeranmeldung ausgeführt. Nur Abmelden und nachfolgendes Neuanmelden löst daher die „rc.local“ nicht aus. Um die Datei zu bearbeiten, benötigen Sie root-Recht:

sudo gedit /etc/rc.local

Vor der letzten Zeile „exit 0“, die bleiben muss, tragen Sie die gewünschten Kommandos ein. Grafische Programme scheiden an diesem Ort aus. Eingetragene Terminal-Befehle werden mit root-Recht ausgeführt und benötigen daher kein „sudo“. Eine Kennwortabfrage ließe sich bei der nicht interaktiven „rc.local“ sowieso nicht beantworten.

Bei Syntaxfehlern in der „rc.local“ steigt das Betriebssystem sofort aus und ignoriert einfach den Rest der Datei. Die Fehlersuche in der „rc.local“ ist daher schwierig, und empirisches Ausprobieren erfordert jeweils einen Rechnerneustart. Kommandos in dieser Startdatei sollten daher vorab genau getestet werden. Beachten Sie dabei, dass die Pfadvariable des Benutzerkontos zum Zeitpunkt der „rc.local“ noch nicht gilt und daher Programmaufrufe mit vollem Pfad anzugeben sind.