.xsessionrcからスクリプトファイルをインポートできないのはなぜですか?

.xsessionrcからスクリプトファイルをインポートできないのはなぜですか?

私はDebian LinuxでLXDE / Openboxを実行しています。ログイン後、次のことをしたいと思います。

  • $PATH変数にユーザー固有のディレクトリを追加する(A)
  • 一部(非グラフィック)コマンドの実行(例:マウントディレクトリ)(B)

この設定は、ログインシェル(SSHなど)だけでなく、グラフィカルログインにも適用されます。特に$ PATH変数を拡張する部分が難しいようです...

私の理想的な解決策は、すべてのコマンド(AとB)を別々のスクリプトファイル(F)に入れ、ソース.xsessionrc(セッションマネージャを介したグラフィカルログイン用)と.profile(ログインシェル用)を提供することです。 Fからのインポートは.profileうまくいきますが、Fからのインポートには.xsessionrc失敗しているようです。

.xsessionrc.profileだから私は(そして)から直接新しい$ PATHを設定し、(今はBコマンドのみを含む)からFのみを実行する回避策をとりました。これはうまく機能しますが、これはand(A)に重複したコマンドが表示されるため、あまり満足できません。.xsessionrc.profile.xessionrc.profile

他のファイルを取り出すには魔法をかける必要がありますか.xsessionrc?それとも私のアイデアに他の明らかな欠陥がありますか?

答え1

標準調達文書に従う理由はありません。購入コマンド(tcsh、bash、ksh、およびzshでもサポートされているcshismですが、標準ではありません).は 。source.xsessionrc

ソースファイルの構文が標準構文であることをsh確認する必要があります。

答え2

.xsessionrcシェルで使用されているファイル以外のファイルで.bash_profileこれを行うのはなぜですか?ログイン.bashrc(すべてのシェルで獲得する?と混同しないでください)?ここ(Fedora)に役立つレビューもありますUser specific environment and startup programs...

答え3

ディストリビューションによっては、起動時に自動的に実行するスクリプトを追加できます。 initscriptを使用するとrc.local(/etc/rc.local IIRC)に追加され、systemdを使用するとそのサービスファイルを作成して起動時に実行できるようになります。

Debianの場合はinitscriptsなのでrc.local

インストールは/etc/fstab起動時に実行する必要があります。

関連情報