ubuntuusers.de

Autostart

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./sitzungsverwaltung.png In diesem Artikel geht es um den automatischen Start von Anwendungsprogrammen nach dem Anmelden an der grafischen Oberfläche. Anwendungsbeispiele sind etwa der automatische Start von Instant-Messaging-Programmen wie Pidgin, oder ein Terminalfenster automatisch laden zu lassen. Möchte man bereits während des Systemstarts Befehle oder Dienste ausführen lassen, so benutzt man dafür besser systemd/Service Units.

Wer sich dafür interessiert, welche Programme nach der Anmeldung bereits automatisch im Hintergrund gestartet werden, findet im Artikel Autostart/Erläuterung weitere Informationen.

Grundlegendes

Um Startprogramme zu erstellen oder zu bearbeiten, bieten manche Desktop-Umgebungen und Fenstermanager grafische (Teil-)Programme an. Man kann die entsprechenden Dateien grundsätzlich aber auch manuell erstellen/bearbeiten.

Oft, aber nicht immer, werden .desktop-Dateien verwendet. Weitere Informationen zum Aufbau dieser Dateien enthält der Artikel .desktop-Dateien. Über deren genaue(n) Speicherort(e) bzw. Speicherort(e) anderer Autostart-Dateitypen klären im einzelnen die folgenden Abschnitte auf, zusammenfassend dann der Abschnitt Autostart-Pfade.

Startprogramme unter Unity/GNOME 3

./gnome_autostart.png

In der GNOME Shell bzw. Unity kann man das Programm Startprogramme über die "Dash" (das Unity/Unity Startmenü (Abschnitt „Schnellstart Schnellstart“)) oder aus dem Terminal mit

gnome-session-properties 

aufrufen.

Das Menü enthält eine Liste der ggf. voreingestellten Programme bzw. Dienste, rechts daneben drei Knöpfe für "Hinzufügen", "Entfernen" und "Bearbeiten". Mit letzterem kann man Titel, Befehl oder Kommentar eines bestehenden Eintrags nachträglich verändern.

Im Dialog "Startprogramm bearbeiten", den man durch Klick auf "Hinzufügen" oder "Bearbeiten" erhält, wird im Feld "Name:" ein Freitext eingetragen, der diese Konfiguration in vorgenannter Liste repräsentiert, z.B. GKrellM System Monitor - Autostart. Im Feld "Befehl:" kann ein Shell-Befehl eingegeben werden, im einfachsten Fall der tatsächliche Name des zu startenden Programms. In diesem Beispiel gkrellm um GKrellM beim Starten des Desktops automatisch zu starten. Ggf. vom Programm benötigte Parameter werden dahinter angegeben. Die dritte Zeile "Kommentar:" dient nur der Dokumentation, kann also leer bleiben oder beliebige eigene Notizen enthalten. Nun mit "Speichern" abschließen.

Alternativ kann der Autostart mit dem Optimierungswerkzeug bearbeitet werden.

Die Einstellungen für den Autostart neu eingebundener Medien (z.B. USB-Stick, CD, DVD) sind im Artikel GNOME3 Systemeinstellungen (Abschnitt „System“) beschrieben.

MATE

MATE als Nachfolger der Desktop-Umgebung GNOME 2 verhält sich genauso wie sein Vorgänger. ./mate_autostart.png

Für aktuellen Benutzer

Um unter MATE Programme automatisch starten zu lassen, nutzt man den Dialog unter:

  • "Menü → Einstellungen → Startprogramme" oder

  • "Menü → Steuerzentrale → Persönlich → Startprogramme"

Die dort unter dem Reiter "Startprogramme" eingetragenen Programme werden dann mit jedem Start von MATE geladen. Eine Eintragung ist über die Schaltfläche "Hinzufügen" möglich. Alternativ kann man aus dem Menü "Anwendungen" das Programmsymbol in das Feld der Programme ziehen. Es wird dann automatisch eingetragen.

Hat man dort Programme eingetragen, die den korrekten Start von MATE behindern, so kann man diese Einträge auch von Hand im Dateisystem löschen. Im Homeverzeichnis des Benutzers finden sich dann im Ordner ~/.config/autostart/ die entsprechenden .desktop-Dateien, die man bei Bedarf wieder löschen kann.

Dokumente automatisch starten

Auch Dokumente und Dateien können beim Start automatisch geladen werden. Dazu muss man festlegen, mit welchem Programm dies geschehen soll. Dies wird mit dem Befehl vor dem Pfad beschrieben. Um beispielsweise OpenOffice mit einer Datei zu starten, wird in den Startprogrammen folgender Befehl angelegt:

ooffice -writer Pfad/zur/Datei.odf

bzw.

oowriter Pfad/zur/Datei.odf

Sucht man eine universelle Lösung, kann auch

xdg-open Pfad/zur/Datei.odf

verwendet werden, um sie mit dem jeweiligen Standardprogramm zu öffnen (siehe auch xdg-utils).

Für alle Benutzer

Eine Sitzung gilt natürlich immer nur für den Benutzer, der gerade angemeldet ist. Soll ein Programm immer gestartet werden, egal welcher Benutzer sich gerade anmeldet, so ist dies auch möglich. Dazu muss man im Verzeichnis /etc/xdg/autostart/ mit Root-Rechten eine .desktop-Datei für das zu startende Programm mit einem Texteditor [1][2] anlegen. Die Datei darf einen beliebigen Namen besitzen, muss aber die Endung .desktop haben, z.B. MeinStartProgramm.desktop. Eine minimale .desktop-Datei hat folgendes Format:

[Desktop Entry]
Type=Application
Name=Musterprogramm
Exec=Auszuführendes Kommando

Will man zusätzlich steuern, in welchen Desktop-Umgebungen der Autostart ausgeführt wird, benötigt man eine weitere Zeile wie:

OnlyShowIn=GNOME;Unity; # diese Datei wird nur in GNOME und Unity gestartet
# oder alternativ
NotShowIn=KDE; # dieser Datei wird nicht in KDE gestartet

Sitzung automatisch wiederherstellen (Autostart)

Wenn man möchte, dass alle Programme wieder gestartet werden, die vor dem Abmelden oder einem Neustart bzw. Herunterfahren geöffnet waren, erreicht man dies, indem man im Dialog "Menü → Einstellungen → Startprogramme → Optionen" die Auswahl "Automatisch die laufenden Programme beim Abmelden merken" aktiviert. Ab sofort werden alle geöffnet Programme nach dem Neustart oder Herunterfahren wieder geöffnet.

Kubuntu / KDE

KDE-Sitzungsverwaltung

Über die Sitzungsverwaltung von KDE Plasma kann man das Verhalten von Plasma nach dem Anmelden des Benutzers einstellen. Die Sitzungsverwaltung findet man in den KDE Systemeinstellungen unter

kde_sitzung.png
KDE Arbeitsflächen-Sitzung
  • "Systemeinstellungen → Arbeitsbereich → Starten und Beenden → Arbeitsflächen-Sitzung"

dort gibt es drei Kategorien:

  • "Allgemein" - Einstellungen für die Schalter beim Abmelden und Herunterfahren.

  • "Standardeinstellungen für das Abmelden" - Darstellung des Abmeldedialogs

  • "Bei der Anmeldung" - Verhalten für Sitzungen einstellen.

Autostart-Verwaltung

In KDE gibt es eine bequeme Möglichkeit zum Verwalten der Autostart-Funktion unter:

kde_autostart.png
KDE Autostartverwaltung
  • "Systemeinstellungen → Arbeitsbereich → Starten und Beenden → Autostart"

Hier im Bereich Einrichtungs-Datei kann man vorhandene Einträge verändern, löschen oder neue Skripte und Programme (.desktop-Dateien) hinzufügen. Dazu klickt man entweder auf den Knopf "Programm hinzufügen ..." oder auf "Skript hinzufügen ...." um ein Programm oder Skript hinzuzufügen.

Im mittleren Teil des Fensters sind alle .desktop-Dateien, Skripte und Links aufgelistet. Skripte und Links zu Programmen werden beide unter der Rubrik "Skript-Datei" gelistet.

.desktop-Dateien bieten die meisten Eigenschaften, dazu aktiviert man einen Eintrag mit der linken Maustaste und wählt "Eigenschaften" aus, es werden aber nicht alle Einträge aus der .desktop-Datei angezeigt.

Über "Erweitert" im rechten Teil des Fensters und im weiter erscheinenden Dialog kann ausgewählt werden, ob die Datei nur in KDE ausgeführt werden soll.

Skripte und Links bieten 3 Eigenschaften, die mit der Dropdownschaltfläche "Vor der KDE-Anmeldung" eingestellt werden:

  • "Anmelden" aktiviert das auszuführende Skript/Link.

  • "Abmelden" führt das Skript/Link beim Herunterfahren aus.

  • "Vor Sitzungsstart" führt das Skript/Link vor dem Start von KDE aus.

Die Eigenschaft "Vor Sitzungsstart" kann von KDE nur ausgeführt werden, wenn das Skript die Endung .sh hat z.B. StartScript.sh. Wenn dies nicht der Fall ist, erscheint beim Auswählen dieser Eigenschaft ein Dialog mit einer entsprechenden Fehlermeldung.

Alternative Methode

Die folgende Methode ist von der Sitzungsverwaltung unabhängig. Im Homeverzeichnis des Benutzers gibt es einen Autostart-Ordner. Alle Programme hier werden beim Anmelden ausgeführt. Mit dem Dateimanager öffnet man den persönlichen Ordner und lässt sich mit

  • "Ansicht → Versteckte Dateien anzeigen"

die versteckten Dateien anzeigen. Bei Kubuntu ab Version 16.04 wechselt man in .config und anschließend in autostart. Nun teilt man die Ansicht oder öffnet ggf. einen zweiten Dateimanager und navigiert zu der ausführbaren Datei, die man starten will; die meisten befinden sich im Verzeichnis /usr/bin/. Die gewünschte Datei fasst man nun mit der linken Maustaste an und zieht sie in den Autostartordner. Im darauf folgenden Dialog wählt man "Hierher verknüpfen".

Es können im Autostart-Ordner auch .desktop-Dateien wie oben beschrieben abgelegt werden. Dies geht am einfachsten, indem man einen Menüeintrag aus dem K-Menü mittels Drag&Drop in den Autostart Ordner zieht und eine Kopie erstellt. Die .desktop-Datei enthält dann alle benötigten Werte.

Für Skripte und Verknüpfungen gibt es in KUbuntu ab Version 18.04 im Ordner .config den Unterordner autostart-scripts. Analog zu Programmen werden hier Skripte und Verknüpfungen abgelegt.

Probleme mit selbst-startenden Programmen

Hat man ein Programm , dass sich selbst startet aber nicht an den oben beschriebenen Stellen eingetragen ist, so lohnt sich der Blick in ~/.kde/share/config. In der zugehörigen Konfigurationsdatei (meist PROGRAMMNAMErc) ist eine Autostarteinstellung auch möglich. Man öffnet diese Datei mit einem Editor und setzt Autostart=0.

Eine weitere Stelle, um nach Startern zu suchen, ist /usr/share/autostart. Im Terminal kann man dorthin navigieren und mit Root-Rechten die entsprechenden .desktop-Dateien löschen [2][3].

./xfce_autostart.png

Xubuntu / Xfce

Auch unter Xubuntu gibt es Werkzeuge, um beim Anmelden des Benutzers auszuführende Programme zu verwalten. Die Sitzungsverwaltung ist folgendermaßen über das Startmenü zu erreichen:

  • "Einstellungen → Sitzung und Startverhalten". Hier findet sich der Reiter "Automatisch gestartete Anwendungen".

Unter diesem kann man vorhandene Einträge (de-)aktivieren und über "Hinzufügen" weitere zu startende Programme einfügen.

Ab Xubuntu Version 18.04 findet sich bei Wahl einer Xfce-Sitzung der Bereich für die Autostart-Einstellungen über den gleichen Menüpfad wie unter Xubuntu (siehe oben).

Lubuntu / LXDE

Neben den systemweiten Einstellungen (siehe Openbox (Abschnitt „autostart“)) verwenden LXDE und Lubuntu ein grafisches Werkzeug für den Autostart-Mechanismus. ./lxsession_autostart.png

Dessen Bedienung erfolgt im Startmenü über "Einstellungen → Default applications for LXSession → Autostart". Dazu gibt man den Namen der Programmdatei ein und klickt auf die Schaltfläche "Hinzufügen". Hierüber können auch bestehende Einträge deaktiviert oder wieder aktiviert werden. Es wird empfohlen, auf die früher benutzten .desktop-Dateien im Ordner ~/.config/autostart/ zu verzichten und den Inhalt des Ordners zu löschen.

Alternativ können Autostart-Programme in die Datei ~/.config/lxsession/Lubuntu/autostart eingetragen werden [1]. Beispiel (Anzeige des Symbols für den NetworkManager und die fiktiven Programme foo und bar):

nm-applet
foo argument1 argument2
# ein Kommentar
@bar

Optional kann man dem Programmnamen das Zeichen @ voranstellen. Dieses sorgt bei einem Fehler für das erneute Ausführen des jeweiligen Programms. Ein nachgestelltes & wie z.B. bei Fluxbox ist nicht erforderlich. Man beachte, dass Shell-Funktionen wie Anführungszeichen, Escapen oder mehrzeilige Kommandos hier nicht unterstützt werden. Kompliziertere Kommandos sollte man stattdessen in ein eigenes Shell-Skript auslagern und dieses Skript per Autostart aufrufen.

Budgie

./budgie_autostart.png Unter Ubuntu Budgie existiert ein einfaches grafisches Werkzeug für den Autostart-Mechanismus. Dessen Bedienung erfolgt im Startmenü über "Einstellungen → Startprogramme". Dazu klickt man auf die Schaltfläche "Hinzufügen" und es kann wie bei MATE oder GNOME die zu startende Anwendung eingetragen werden. Hierüber können auch bestehende Einträge geändert, deaktiviert oder wieder aktiviert werden.

Alternativ können für einzelne Benutzer auch hier Einträge von .desktop-Dateien im Ordner ~/.config/autostart bearbeitet oder geschrieben werden.

Fluxbox

Wie man ein Programm in den Autostart einträgt, ist im Fluxbox (Abschnitt „Autostart“)-Artikel beschrieben.

Problembehebung

Hinweis:

Neben dieser Problembehebung siehe bitte auch noch .desktop-Dateien (Abschnitt „Problembehebung“).

Autostart-Pfade

Da bei den verschiedenen Ubuntu-Varianten und -Versionen schon mal der Überblick verloren gehen kann, hier eine kurze Zusammenfassung:

  • pro Benutzer:

    • Unity, GNOME, XFCE, KDE, Budgie: ~/.config/autostart/

    • LXDE: ~/.config/lxsession/Lubuntu/autostart

  • systemweit:

    • Unity, GNOME, XFCE, LXDE, Budgie: /etc/xdg/autostart/

    • KDE: /usr/share/autostart/

Ein weiterer Sonderfall sind eigenständige Fenstermanager. Hierzu sei (soweit vorhanden) auf die jeweiligen Artikel zu den einzelnen Programmen verwiesen. Wie komplex das im Einzelfall sein kann, wird am Beispiel Openbox (Abschnitt „autostart“) schnell deutlich...

Manchmal findet man auch Autostart-Einträge (wie beispielsweise das Aktivieren des Zahlenblocks), die über einen Displaymanager realisiert sind.

Exec-Zeile bleibt wirkungslos

Es kommt gerade beim Autostart immer wieder vor, dass in der .desktop-Datei die Zeile mit Exec=... nicht zum Erfolg führt. Dann gibt es zwei Möglichkeiten:

  • entweder, der Befehl ist einzeilig oder man kommt ohne Rückmeldung aus, dann siehe .desktop-Dateien (Abschnitt „Optionen-uebergeben“)

  • oder aber der Befehl ist mehrzeilig oder man braucht eine Rückmeldung, dann ist ein Umweg erforderlich, welcher je nachdem, ob der automatische Start des Anwendungsprogramms benutzerspezifisch oder systemweit erfolgen soll, unterschiedlich aussieht:

Autostart über Skript

Für aktuellen Benutzer

Dazu erstellt man sich entweder im Ordner ~/bin oder im Ordner ~/.local/bin ein Shell-Skript test.sh mit dem problematischen Befehl und macht die Datei nach dem Speichern ausführbar. Beispiel [1]:

1
2
#!/bin/sh
befehl

Dann verweist man in der .desktop-Datei je nach Speicherort des Shellskriptes entweder mit Exec=~/bin/test.sh oder aber mit Exec=~/.local/bin/test.sh auf dieses.

Für alle Benutzer

Dazu erstellt man sich im Ordner /usr/local/bin mit Root-Rechten ein Shell-Skript test.sh mit dem problematischen Befehl und macht die Datei nach dem Speichern ausführbar. Beispiel [1][2]:

1
2
#!/bin/sh
befehl

Dann verweist man in der .desktop-Datei mit Exec=/usr/local/bin/test.sh auf dieses Shellskript.

Skript für Befehl mit Rückmeldung

Wenn man einen Befehl nicht nur ausführen, sondern auch die Rückmeldung sehen möchte, bastelt man sich ein Shell-Skript nach folgendem Muster:

1
2
3
4
#!/bin/sh
echo | befehl
echo "press any key"
read -s

Damit wird das Beenden der Ausgabe solange verhindert, bis eine beliebige Taste gedrückt wird. Zum Start des Skripts sollte die dazugehörige .desktop-Datei in diesem Fall die Zeile

Terminal=true

enthalten (siehe bitte auch .desktop-Dateien).

Für die übrigen Modalitäten (Ordner/Pfade) siehe bitte den Abschnitt Autostart über Skript.

Autostart verzögern

Möchte man, dass ein Programm später ausgeführt wird, so kann man folgenden Befehl für den Autostart verwenden:

sh -c "sleep ZEIT ; BEFEHL"

Möchte man z.B. Firefox 20 Sekunden nach dem Anmelden starten, so gibt man ein:

sh -c "sleep 20 ; firefox"

Diese Revision wurde am 8. Januar 2020 14:59 von mubuntuHH erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: MATE, GNOME 3, Unity, LXDE, Xfce, KDE