Linuxデスクトップシステムでユーザーがログインしたときにコマンドを実行したいと思います。
他の投稿を読んだ後、成功しないままコマンドを挿入してみました~/.bashrc
。さらに、システムはユーザーログインにグラフィカルインタフェースを使用するため、このコマンドはシェルの起動に関連してはいけません。
/etc/profile.d
また、結果のない埋め込みスクリプトの1つにコマンドを追加してみました。
別の方法がありますか?ログイン後、システムはどのファイルを読みますか?
ベストアンサー1
グラフィックディスプレイマネージャがクラシックスタートファイルを読み取るという保証はありません。これはリリースとディスプレイマネージャの間で変わります。ただし、次のいずれかが機能するはずです。
デスクトップ環境の基本的な方法を使用して起動アプリケーションを設定します。詳細は使用しているDEによって異なりますが、コマンドを実行するスクリプトを生成して起動アプリケーションのリストに追加できます。たとえば、私のシステム(Cinnamon)では、「システム設定」=>「アプリケーションの実行」でこれを行うことができます。
使用
~/.xprofile
、これがソースです少なくとも、GDM、LDM、LightDM、およびLXDMログインマネージャによって実行されます。上記のいずれの方法も機能しない場合は、次のコマンドを追加してみてください
~/.profile
。これはログインシェルのデフォルトの初期化ファイルであり、ログイン時に一部のグラフィックシェルからも読み取られます。@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
これはまったく関係がなく、対話型の非ログインシェルからのみ読み取ることができるため、グラフィックであるかどうかにかかわらず、ログインシェルでは無視されます。