次の状況で自動的にスクリプトを実行しようとします。
- 特定のユーザーログイン。
- ユーザーに依存しないログイン方法:シェル、デスクトップ環境セッション、またはその他の手段を介して。
これを達成するために、私は好奇心を持って起動プロセスのさまざまな段階のinitスクリプトを調査しています。私の特定の問題は、プロセスの理解を考慮すると多くの作業が必要なようです。もっと良くて簡単な方法があるかどうか疑問に思います。どうやって理解したのか説明しましょう。
コンピュータの起動時に何かを実行する一般的な方法はを使用することです/etc/init.d
。これはログイン前に実行されるため、必要なものとは離れています。
ログイン時に何かを実行する一般的な方法は、
/etc/profile
スクリプトを使用するか、より適切に使用することです/etc/profile.d
。すべてのユーザーが実行したいスクリプトをロードし、デフォルトではDEでは実行されないため、これは必要ではありません。
特定のユーザーがシェルにログインしたときに何かを実行する一般的な方法は、を使用することです(~/.profile
またはデフォルトのシェルに応じた同等の方法:~/.bash_profile
、、など)。これは特定のユーザーに対してのみ行われ、これは原則として私に必要なものです。問題はと同じです。これらのスクリプトは、デスクトップ環境の「セッションログイン」では実行されません。~/.bash_login
~/.login
/etc/profile
もちろん、特定のデスクトップ環境の機能を使用してスクリプトを実行できます。しかし、これはディストリビューション間で移植可能ではなく、これは私が望むものではありません。たとえば、Ubuntuでは.desktop
ファイルを生成して~/.config/autostart
。また、私はここで読んだ。http://www.linuxmisc.com/11-unix-aix/6118cce17a587c8d.htmDEでのetc/profile実行の不安定性に関しては、これは良い解決策ではありません。
だから私が必要なことを達成するための明確な場所がないようです。問題は次のとおりです。
- ユーザーがすべてのログインフォームに共通であることを考慮すると、シェルログインとDEの間に共通点がありますか?このスクリプト/コマンドはどこ/何ですか?
- 1への答えがどこにも接続されていない場合は、次のように尋ねたいと思います。ログインフロントエンドとは無関係にタスクを実行できる場所/スクリプトが必要なのは明らかですが、なぜ存在しないのですか?