Wie funktioniert "Startup Applications"?

10

Ich bin daran interessiert zu wissen, wie "Startup Applications", auf die Sie vom Dock aus zugreifen können, funktionieren.

Ich möchte dies wissen, weil ich den Unterschied zwischen dem Hinzufügen eines Eintrags an folgenden Stellen kennen möchte:

/etc/rc.local 
/etc/profile  
/home/$USER/.profile

und dasselbe über diese GUI-Anwendung tun. Was mich verwundert ist, dass ich nicht sehe, dass das Programm Einträge in den oben genannten Dateien erstellt.

daltonfury42
quelle

Antworten:

8
  • /etc/rc.local

    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    

    Im Wesentlichen bedeutet der Mehrbenutzer-Runlevel, wenn Sie hochfahren.

  • /etc/profile

    Diese Datei wird nur für Login-Shells aufgerufen, da dies der spezifische Zweck ist.

    /etc/profile, wird von allen Bourne-kompatiblen Shells (einschließlich bashund dash) ausgeführt, wenn sie als Login-Shell gestartet werden.

  • /home/$USER/.profile

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash if ~/.bash_profile or ~/.bash_login
    # exists.
    

    Sowohl das ~/.bashrcals auch ~/.bash_profilesind Skripte, die ausgeführt werden können, wenn bash aufgerufen wird. Die ~/.bashrcDatei wird ausgeführt, wenn Sie bash mit einer interaktiven Shell ausführen, die keine Anmeldeshell ist. Das wird ~/.bash_profilenur während einer Login-Shell ausgeführt.

    Quelle

    Ich denke also, .profilewird hingerichtet, wenn keiner von beiden war (aus welchem ​​Grund auch immer).

  • Schließlich setzt Ihre GUI-Methode wahrscheinlich Starter .desktopein/home/$USER/.config/autostart

    Dies wird bei der Benutzeranmeldung ausgeführt (nur GUI-Anmeldung, glaube ich - startxwürde sich aber nicht ttyanmelden).

Meine Pronomen sind Er / Ihn

Tim
quelle
Werden bei der GUI-Anmeldung keine .profile-Befehle ausgeführt?
Daltonfury42
@ user3073656 hmmm wie heißt die GUI-Anwendung?
Tim
Entschuldigung, unachtsamer Fehler! Du hattest Recht.
Daltonfury42
@ user3073656 bearbeitet
Tim
8

Jede Desktop-Umgebung, die den Freedesktop-Spezifikationen (auch bekannt als XDG) entspricht, sollte Autostart-Anwendungen bei der Benutzeranmeldung oder bei jedem Einlegen eines Wechselmediums verwenden.

Zum automatischen Starten einer Anwendung bei der Benutzeranmeldung sucht die Desktop-Umgebung nach einer .desktopDatei, um die dort angegebene Anwendung auszuführen. Diese .desktopDateien befinden sich normalerweise in

$XDG_CONFIG_DIRS/autostart

Wir können sie aber auch an folgenden Orten haben:

~/.config/autostart/ ## if $XDG_CONFIG_HOME is not set
etc/xdg/autostart/ ## if $XDG_CONFIG_DIRS is not set

In jedem Fall wird eine .desktopDatei in ~/.config/autostartals die wichtigste auszuführende Datei definiert, wodurch .desktopDateien an anderen Speicherorten überschrieben werden.

Ubuntu erfüllt diese Spezifikation und Benutzer können Anwendungen mit einem GUI-Ansatz zu "Autostart Applications" hinzufügen.

Die Anwendung kann unabhängig vom Desktop von verschiedenen anderen Standorten aus automatisch gestartet werden, z. B. ~/.profilefür die Shell, /etc/rc.localzum Ausführen beim Systemstart oder in jüngerer Zeit mithilfe von systemd .

Takkat
quelle
Das Hinzufügen der Befehle auf diese Weise ist am besten, da dies im Vergleich zur .profile-Datei, in der wir unsere Startbefehle hinzufügen, buchstäblich keine Zeit in Anspruch nimmt. Ich habe beide auf meinem Dell Inspiron 7560 mit Ubuntu 16.04 getestet und dieser Weg scheint besser zu sein.
Jasser
Ich denke auch, dass dies besser ist als das Bearbeiten der Datei / etc / profile, da sie nur für Login-Shells aufgerufen wird, nachdem die Desktop-Umgebung gestartet wurde. Ja, das habe ich auch getestet. Ich lag richtig.
Jasser