ubuntuusers.de

ubuntuusers.deWikiAutostart

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. Also z.B. um Instant-Messaging Programme 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 rc.local.

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

Ubuntu (Unity)

Um unter Unity in Ubuntu 11.10 und 12.04 Programme automatisch starten zu lassen, kann man die Sitzungsanzeige ./unity_sitzungsanzeige.png oben rechts auf dem Panel verwenden. Dazu klickt man das Symbol mit links linke Maustaste an und wählt aus dem Menü den Eintrag "Startprogramme".

Ab Ubuntu 12.10 kann man das Programm "Startprogramme" über die Dash oder die Programm-Linse starten. Oder aus dem Terminal mit

gnome-session-properties 

Der folgende Dialog ähnelt dem von GNOME (siehe unten), ist gegenüber diesem aber stark vereinfacht: Unter dem Titel "Zusätzliche Startprogramme" befinden sich Einträge für die bereits aktiven Startprogramme, 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.

Ubuntu (GNOME)

Hinweis:

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

Für aktuellen Benutzer

Um unter GNOME Programme automatisch starten zu lassen, muss man sie im Sitzungsdialog von GNOME eintragen. Diesen findet man unter

./gnome_autostart.png

  • "System -> Einstellungen -> Sitzungen" bzw.

  • "System -> Einstellungen -> Startprogramme" (bei GNOME 3 einfach den Befehl gnome-session-properties in ein Terminal eingeben)

  • In der Suche auf der Dash Startseite einfach Startprogramme eingeben.

Die dort unter dem Reiter "Startprogramme" eingetragenen Programme werden dann mit jedem Start von GNOME geladen. Eine Eintragung ist über den Button "hinzufügen" möglich. Alternativ kann man vom Feld "Anwendungen" das Programmsymbol in das Feld der Programme ziehen, es wird dort automatisch eingetragen. Hat man dort Programme eingetragen, die den korrekten Start von GNOME 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/ eigene .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 bestimmen, 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 folgenden 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.

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. Es ist sehr einfach möglich, Startprogramme für alle Benutzer festzulegen. Dazu muss man im Verzeichnis /etc/xdg/autostart/ eine Desktop Datei für das zu startende Programm mit einem Texteditor [1] 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 steuern in welchen Desktopumgebungen der Autostart ausgeführt wird, benötigt man eine zusätzliche 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 beim Neustart / Herunterfahren geöffnet waren. Dann muss man unter:

  • "Systemeinstellungen -> Einstellungen -> Startprogramme"

unter "Optionen" einen Haken setzen bei: "Automatisch die laufenden Programme beim Abmelden merken". Ab sofort werden alle geöffnet Programme nach dem Neustart oder Herunterfahren wieder geöffnet.

Kubuntu / KDE

./kde_sitzung.png

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

  • "Systemeinstellungen -> Systemverwaltung -> Starten und Beenden -> Sitzungsverwaltung"

dort gibt es drei Kategorien:

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

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

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

Einstellungen für das Verhalten beim Anmelden, wie zum Beispiel das Anmelden ohne Passworteingabe, findet man im Anmeldemanger KDM.

./kde_autostart.png

Autostart-Verwaltung

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

  • "Systemeinstellungen -> Systemverwaltung -> Starten und Beenden"

Hier 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 der KDE-Anmeldung" führt das Skript/Link vor dem Start von KDE aus.

Die Eigenschaften "Abmelden" und "Vor der KDE-Anmeldung" können von KDE nur ausgeführt werden wenn das Skript die Endung .sh hat z.B. StartScript.sh, beim Auswählen dieser Eigenschaften erscheint ein Dialog mit einer Fehlermeldung, die dies beinhaltet.

Alternative Methode

Die folgende Methode ist von der Sitzungsverwaltung unabhängig. Im Homeverzeichnis des Benutzers gibt es den Ordner ~/.kde/Autostart. Alle Programme, Skripte oder Links zu solchen 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. Nun wechselt man in das versteckte Verzeichnis .kde, anschließend in den Unterordner 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 "Hiermit 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.

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 dorthin navigieren und mit Root-Rechten die entsprechenden .desktop-Dateien löschen.

./xfce_autostart.png

Xubuntu / Xfce

Auch unter Xfce gibt es Werkzeuge, um beim Anmelden des Benutzers auszuführende Programme zu verwalten.

Ab Xubuntu 10.10

Die Sitzungsverwaltung befindet sich unter

  • "Einstellungen -> Einstellungsverwaltung für Xfce4 -> Sitzung und Startverhalten -> Automatisch gestartete Anwendungen"

bzw.

  • "Einstellungen -> Einstellungen -> Sitzung und Startverhalten -> Automatisch gestartete Anwendungen"

Bis Xubuntu 10.04

Hier öffnet man die Sitzungsverwaltung über

  • "Einstellungen -> Alle Einstellungen -> Autostarted apps"

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

Lubuntu / LXDE

Neben den systemweiten Einstellungen (siehe Openbox) verwenden LXDE und Lubuntu den gleichen Mechanismus wie GNOME und Xfce: .desktop-Dateien im Ordner ~/.config/autostart. Unter Lubuntu existiert mit "Einstellungen -> Sitzungseigenschaften" (oder "Einstellungen -> Desktop-Sitzungseinstellungen") ein grafisches Werkzeug, das das De-/Aktivieren von Autostart-Einträgen, aber (bisher) nicht das Hinzufügen bzw. Entfernen von Programmen ermöglicht (siehe auch LXDE Einstellungen).

Hinweis:

Ab Lubuntu 13.10 müssen benutzerdefinierte Autostarts über "Einstellungen -> Default applications for LXSession -> Autostart -> Disable autostarted applications -> no" erst erlaubt werden.

Fluxbox

Wie man ein Programm in den Autostart einträgt, ist im Fluxbox-Artikel beschrieben.

Desktop-Unabhängig

Bei Anmeldung am Terminal kann man dafür sorgen, dass ein Befehl ausgeführt wird, indem man den Befehl mit einem Editor in ~/.profile einträgt [1].

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, LXDE: ~/.config/autostart/

    • KDE SC: ~/.kde/Autostart/, seltener ~/.kde/share/config/

  • systemweit:

    • Unity, GNOME, XFCE, LXDE: /etc/xdg/autostart/ (manchmal auch andere Ordner unterhalb von /etc/xdg/)

    • KDE SC: /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 schnell deutlich...

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

Autostart über Skript

Es kommt gerade beim Autostart immer wieder vor, dass die Zeile mit exec=... nicht zum Erfolg führt. Dann ist ein Umweg erforderlich. Dazu erstellt man sich im Ordner /usr/local/bin mit Root-Rechten ein Shellskript test.sh mit dem problematischen Befehl und macht die Datei nach dem Speichern ausführbar. Beispiel:

1
2
#!/bin/sh
befehl

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

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 Programmstarter).

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 21. April 2014 19:26 von Win32netsky erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: KDE, GNOME, Xfce, LXDE