ユーザーがログインしたときにコマンドを実行する

ユーザーがログインしたときにコマンドを実行する

Linuxデスクトップシステムでユーザーがログインしたときにコマンドを実行したいと思います。

他の投稿を読んだ後、成功しないままコマンドを挿入してみました~/.bashrc。さらに、システムはユーザーログインにグラフィカルインタフェースを使用するため、このコマンドはシェルの起動に関連してはいけません。

/etc/profile.dまた、結果のない埋め込みスクリプトの1つにコマンドを追加してみました。

別の方法がありますか?ログイン後、システムはどのファイルを読みますか?

ベストアンサー1

グラフィックディスプレイマネージャがクラシックスタートファイルを読み取るという保証はありません。これはリリースとディスプレイマネージャの間で変わります。ただし、次のいずれかが機能するはずです。

  1. デスクトップ環境の基本的な方法を使用して起動アプリケーションを設定します。詳細は使用しているDEによって異なりますが、コマンドを実行するスクリプトを生成して起動アプリケーションのリストに追加できます。たとえば、私のシステム(Cinnamon)では、「システム設定」=>「アプリケーションの実行」でこれを行うことができます。

  2. 使用~/.xprofileこれがソースです少なくとも、GDM、LDM、LightDM、およびLXDMログインマネージャによって実行されます。

  3. 上記のいずれの方法も機能しない場合は、次のコマンドを追加してみてください~/.profile。これはログインシェルのデフォルトの初期化ファイルであり、ログイン時に一部のグラフィックシェルからも読み取られます。

  4. @derobertがコメントで指摘したように、以下を使用することもできます.無料デスクトップ標準:

    自動起動ディレクトリは、「デスクトップの基本ディレクトリ仕様」の「この仕様を参照」セクションで定義されているように$ XDG_CONFIG_DIRS / autostartです。

    同じファイル名が複数の自動起動ディレクトリにある場合は、最も重要なディレクトリのファイルのみを使用してください。

    例: $XDG_CONFIG_HOME が設定されていない場合、ユーザーのホームディレクトリの自動起動ディレクトリは ~/.config/autostart/ です。

    例:$ XDG_CONFIG_DIRSが設定されていない場合、システム全体の自動起動ディレクトリは/ etc / xdg / autostart /です。

    例: $XDG_CONFIG_HOME および $XDG_CONFIG_DIRS が設定されておらず、/etc/xdg/autostart/foo.desktop ファイルと ~/.config/autostart/foo.desktop ファイルの両方が存在する場合は ~/.config/autostart/foo. ~/.config/autostart/ は /etc/xdg/autostart/ よりも重要なので、デスクトップが使用されます。

~/.bashrcこれはまったく関係がなく、対話型の非ログインシェルからのみ読み取ることができるため、グラフィックであるかどうかにかかわらず、ログインシェルでは無視されます。

おすすめ記事