User Tools

Site Tools


linux:ytvi_autostart_in_linux

This is an old revision of the document!


YTVI Autostart in Linux

### Übersicht von Autostart-Dateien und Mechanismen unter Debian/Ubuntu

Datei / Mechanismus Startzeitpunkt Benutzerbereich Kontext (Konsole oder X) Ruft andere Skripte auf Besonderheiten und Hinweise Beispiele für typische Einträge
/etc/profile Login-Shell Global (Alle Benutzer) Konsole (Bash/Zsh) Ruft /etc/profile.d/* auf Diese Datei wird bei der Anmeldung eines Benutzers (Login-Shell) ausgeführt. Sie wird bei Terminal-Anmeldung oder SSH verwendet, aber nicht bei X-Session-Starts. Standardmäßig für systemweite Umgebungsvariablen geeignet. Setzen von systemweiten Umgebungsvariablen (export PATH=…)
~/.profile Login-Shell Spezifisch für den Benutzer Konsole und X Ruft ~/.bash_profile oder ~/.bashrc auf (abhängig von der Konfiguration) Wird bei der Anmeldung mit einer Login-Shell oder bei X-Anmeldung verwendet. Wird oft verwendet, um benutzerspezifische Umgebungsvariablen zu setzen. In Bash ist .profile die Standarddatei für Login-Shells. Wird von Bash, Dash und möglicherweise auch X-Session gelesen. Setzen von benutzerspezifischen Aliases und Umgebungsvariablen
~/.bashrc Nicht-Login-Shell Spezifisch für den Benutzer Konsole (Bash) Wird durch ~/.profile aufgerufen, wenn es eine Login-Shell ist Diese Datei wird bei jedem Start einer neuen nicht-Login-Bash-Shell ausgeführt. Üblicherweise für Terminal-Fenster und interaktive Shells verwendet, jedoch nicht für grafische Sitzungen oder Login-Shells. Aliases (alias ll='ls -la') und benutzerspezifische Funktionen
~/.zshrc Nicht-Login-Shell Spezifisch für den Benutzer Konsole (Zsh) - Ähnlich wie .bashrc, jedoch für die Zsh-Shell. Wird jedes Mal ausgeführt, wenn eine Zsh-Instanz gestartet wird (nicht-Login-Shell). Aliases und benutzerspezifische Zsh-Einstellungen
/etc/rc.local Systemstart (letzte Phase) Global (Alle Benutzer) Nicht spezifiziert (Systemebene) - Diese Datei wird in der letzten Phase des Systemstarts ausgeführt. Sie eignet sich, um systemweite Dienste oder Befehle auszuführen. Seit neueren Versionen von Debian/Ubuntu kann es sein, dass /etc/rc.local standardmäßig deaktiviert ist. Man kann sie manuell aktivieren. Wird als root ausgeführt, da es Teil des Systemstarts ist. Starten von benutzerdefinierten Diensten (/usr/bin/mein_dienst &)
/etc/X11/Xsession Start der X-Sitzung Global (Alle Benutzer) X (Grafische Umgebung) Ruft benutzerspezifische ~/.xsession auf (falls vorhanden) Diese Datei wird verwendet, um die X-Session (Grafiksession) zu initialisieren. Sie ist ein zentraler Punkt für die Konfiguration der X-Sitzung und wird vor der Ausführung von Desktop-Umgebungen (wie GNOME oder KDE) aufgerufen. Setzen von Umgebungsvariablen für X (export GTK_THEME=…)
~/.xinitrc Start von X via startx Spezifisch für den Benutzer X (Grafische Umgebung) - Diese Datei wird verwendet, wenn ein Benutzer den X-Server mit dem Befehl startx startet. Typischerweise für Benutzer, die keine Display-Manager wie gdm oder lightdm verwenden. Starten des Fenstermanagers (exec i3)
~/.xsession Login über Display-Manager Spezifisch für den Benutzer X (Grafische Umgebung) - Diese Datei wird ausgeführt, wenn der Benutzer sich über einen Display-Manager (z.B. gdm oder lightdm) anmeldet. Sie ermöglicht benutzerspezifische Konfigurationen für die grafische Session. Setzen von benutzerspezifischen Umgebungsvariablen
/etc/init.d/* (SysV) Systemstart Global (Alle Benutzer) Nicht spezifiziert (Systemebene) - Wird verwendet, um systemweite Dienste zu starten. Veraltet zugunsten von systemd, aber immer noch in Verwendung bei älteren Systemen. Starten eines systemweiten Dienstes (/etc/init.d/apache2 start)
systemd Units (/etc/systemd/system/*) Systemstart / Benutzeranmeldung Global oder Benutzerabhängig (je nach Konfiguration) Nicht spezifiziert (Systemebene) Kann andere Units oder Skripte per ExecStart aufrufen Systemd ist der aktuelle Standard für den Dienststart auf modernen Debian/Ubuntu-Systemen. Man kann eigene Units definieren, die Programme oder Skripte bei Systemstart oder bei Benutzeranmeldungen ausführen. Definieren eines Dienstes (ExecStart=/usr/bin/mein_dienst)
~/.config/autostart/*.desktop Login der grafischen Session Spezifisch für den Benutzer X (Grafische Umgebung) - Diese Methode wird verwendet, um Anwendungen automatisch beim Start der grafischen Desktop-Umgebung (wie GNOME oder KDE) zu starten. Dateien im .desktop-Format definieren, welche Programme gestartet werden sollen. Starten einer Anwendung (Exec=/usr/bin/firefox)
/etc/xdg/autostart/*.desktop Login der grafischen Session Global (Alle Benutzer) X (Grafische Umgebung) - Ähnlich wie ~/.config/autostart, aber systemweit für alle Benutzer. Diese Methode wird ebenfalls von Desktop-Umgebungen genutzt, um Programme automatisch zu starten. Starten einer systemweiten Anwendung (Exec=/usr/bin/gnome-shell)

### Detaillierte Hinweise und Empfehlungen

1. Unterschied Login-Shell vs. Nicht-Login-Shell:

  1. Eine Login-Shell ist die erste Shell, die gestartet wird, wenn ein Benutzer sich im System anmeldet (z.B. über SSH oder die Konsole).
  2. Eine Nicht-Login-Shell wird beispielsweise durch das Starten eines Terminal-Fensters aus einer bestehenden Sitzung heraus geöffnet.

2. Global vs. Benutzerspezifisch:

  1. Dateien unter `/etc/` sind normalerweise global, d.h. sie gelten für alle Benutzer.
  2. Dateien in den Home-Verzeichnissen (`~/.bashrc`, `~/.profile` etc.) gelten nur für den spezifischen Benutzer.

3. Grafische Umgebung vs. Konsole:

  1. Einige dieser Dateien sind speziell für die grafische Umgebung (X) gedacht (`~/.xinitrc`, `~/.xsession`, `~/.config/autostart/`).
  2. Andere wiederum sind speziell für Shell-Sitzungen (Login und Nicht-Login) gedacht (`~/.bashrc`, `/etc/profile`).

4. Systemd für modernere Verwaltung:

  1. Neuere Versionen von Debian/Ubuntu setzen hauptsächlich auf `systemd`, um Startprozesse zu verwalten. Man kann dafür eigene “Service”-Dateien erstellen, um Programme beim Systemstart oder bei Benutzeranmeldungen auszuführen.

5. .desktop-Dateien für die grafische Umgebung:

  1. `.desktop`-Dateien, die in den Autostart-Ordnern (`~/.config/autostart/` oder `/etc/xdg/autostart/`) gespeichert werden, dienen dazu, Anwendungen automatisch beim Login in einer grafischen Session zu starten. Diese Methode ist besonders praktisch für Anwendungen mit GUI.

### Baumstruktur der zeitlichen Abfolge der Autostart-Dateien

``` Systemstart

Benutzeranmeldung (Login-Shell)

Start von nicht-Login-Shell (z.B. neues Terminal)

Start der grafischen Umgebung (X-Session)

```

### Beispiel-Szenarien

1. Skript systemweit beim Booten ausführen:

  1. Verwenden Sie `/etc/rc.local` oder erstellen Sie eine `systemd` Unit, um ein Skript auszuführen, bevor Benutzer sich anmelden.

2. Umgebungsvariablen für alle Benutzer setzen:

  1. Verwenden Sie `/etc/profile`, wenn es systemweite Variablen betrifft, oder `~/.profile` für spezifische Benutzer.

3. Programm für grafische Sitzung eines Benutzers starten:

  1. Platzieren Sie eine `.desktop`-Datei in `~/.config/autostart/`, um sicherzustellen, dass das Programm automatisch beim Anmelden an die grafische Benutzeroberfläche gestartet wird.
linux/ytvi_autostart_in_linux.1728797266.txt.gz · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki