web-dev-qa-db-ja.com

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

ドックからアクセスできる「スタートアップアプリケーション」がどのように機能するかを知りたいと思っています。

これらの場所にエントリを追加することの違いを知りたいので、これを知りたいです:

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

このGUIアプリケーションを介して同じことを行います。私が困惑しているのは、プログラムが上記のファイルにエントリを作成していないことです。

10
daltonfury42
  • /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_profileは両方とも、bashが呼び出されたときに実行されるスクリプトです。ログインシェルではないインタラクティブシェルを使用してbashを実行すると、~/.bashrcファイルが実行されます。 ~/.bash_profileは、ログインシェル中にのみ実行されます。

    Source

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

  • 最後に、GUIメソッドはおそらく.desktopランチャーを/home/$USER/.config/autostartに配置します

    これはユーザーログオン時に実行されます(GUIログインのみ-startxはログインしますが、ttyはログインしません)。

8
Tim

freedesktop specification (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など、最近では systemd を使用して自動起動できます。 。

8
Takkat