「スタートアップアプリケーション」はどのように機能しますか?

「スタートアップアプリケーション」はどのように機能しますか?

ドックからアクセスできる「スタートアップ アプリケーション」がどのように動作するのかを知りたいです。

これを知りたいのは、次の場所にエントリを追加する場合の違いを知りたいからです。

/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

    このファイルは、ログイン シェルに対してのみ呼び出されます。これがその特定の目的だからです。

    /etc/profileは、ログイン シェルとして起動されると、すべての Bourne 互換シェル (およびを含む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_profilebash が呼び出されたときに実行されるスクリプトです。~/.bashrcファイルは、ログイン シェルではない対話型シェルを使用して bash を実行するときに実行されます。 は、~/.bash_profileログイン シェル中にのみ実行されます。

    ソース

    .profileしたがって、どちらも実行されなかった場合は(理由は何であれ)、実行されると思います。

  • 最後に、GUIメソッドはおそらく.desktopランチャーを入れる/home/$USER/.config/autostart

    これは、ユーザーのログオン時に実行されます (GUI ログインのみだと思います - そうなのstartxでしょうが、ログインではありませんtty)。

私の代名詞はHe / Himです

答え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アプリケーションは、シェル、システム起動時に実行されるなど、デスクトップとは独立してさまざまな場所から自動的に起動できます。/etc/rc.local最近では、システム

関連情報