「啟動應用程式」如何運作?

「啟動應用程式」如何運作?

我有興趣了解您可以從擴充座存取的“啟動應用程式”的工作原理。

我想知道這一點,因為我想知道在這些地方添加條目之間的區別:

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

並透過此 GUI 應用程式執行相同的操作。讓我困惑的是,我沒有看到程式在上述文件中建立任何條目。

答案1

  • /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.
    

    本質上,多用戶運行級別意味著啟動時。

  • /etc/profile

    該檔案僅針對登入 shell 調用,因為這是其特定用途。

    /etc/profile,當作為登入 shell 啟動時,由所有 Bourne 相容 shell(包括bash和)運行。dash

  • /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.
    

    ~/.bashrc都是~/.bash_profile在呼叫 bash 時可以執行的腳本。~/.bashrc當您使用非登入 shell 的互動式 shell 執行 bash 時,該檔案將會執行。唯一~/.bash_profile在登入 shell 期間執行。

    來源

    所以我認為.profile如果兩者都不是(無論出於何種原因),就會被處死。

  • 最後,你的 GUI 方法是大概.desktop發射器放入/home/$USER/.config/autostart

    這是在使用者登入時運行的(我認為只有 GUI 登入 - 所以startx會但不能tty登入)。

我的代名詞是他/他

答案2

以下任何桌面環境自由桌面規格(又名 XDG)應該利用自動啟動應用程式使用者登入時或插入可移動媒體時。

為了在使用者登入時自動啟動應用程序,桌面環境會尋找.desktop檔案來執行其中指定的應用程式。該.desktop文件通常位於

$XDG_CONFIG_DIRS/autostart

但我們也可以將它們放在以下位置:

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

在任何情況下,.desktop位於的文件~/.config/autostart都被定義為要運行的最重要的文件,從而覆蓋.desktop其他位置的文件。

Ubuntu 滿足此規範,使用者可以透過 GUI 方式將應用程式新增至「自動啟動應用程式」。

應用程式可以從各種其他位置獨立於桌面自動啟動,例如~/.profile對於 shell,在/etc/rc.local系統啟動時運行,或最近透過使用系統

相關內容