これは、いくつかのLinuxフレーバーで何度か見た質問です。徹底的に試してみましょう。
ユーザーがデスクトップセッションにログインする前後にスクリプト/コマンド/プログラムを実行する方法は何ですか?
承認された回答:
はじめに
ユーザーがグラフィカル環境にログインする前にグラフィカル環境でプログラムを実行するかどうかは、表示マネージャによって異なります。ディスプレイマネージャは、ログインインターフェイスを提供し、ログイン後にグラフィカル環境をセットアップする責任があります。
最も重要なのは、次のとおりです。
- GDMはGNOMEディスプレイマネージャーです。
- LightDMはクロスデスクトップディスプレイマネージャーであり、任意のツールキットで記述されたさまざまなフロントエンドを使用できます。
- LXDMはLXDEディスプレイマネージャーですが、LXDEデスクトップ環境から独立しています。
- SDDMは、X11およびWaylandの最新のディスプレイマネージャーであり、高速、シンプル、美しいことを目指しています。
ユーザーがログインする前にディスプレイマネージャーがポップアップしたときにコマンドの実行を設定する方法と、誰かが最終的にログインしたときに何かを実行する方法を確認します。
実行しているコマンドがわからない場合は、次の質問を参照してください:
ディスプレイマネージャを教えてくれる簡単なLinuxコマンドはありますか?
重要
始める前に、実行コマンドをroot
と記載している場合を除いて、ファイルを編集します。 。何をしているのかがわかっていて、それらのファイルに何を入れるかに注意する場合を除いて、これらのファイルの既存のものを削除しないでください。これにより、ログインできなくなる可能性があります。
GDM
GDMには注意してください。すべてのスクリプトが`root`として実行されます。0以外のエラーコードはログイン機能を制限する可能性があり、GDMはスクリプトが終了するのを待って、コマンドが実行されている限り応答しなくなります。
完全な説明については[ドキュメントを読む][5]。
ログイン前
ユーザーがログインする前にコマンドを実行する必要がある場合は、ファイルを編集できます:
`/ etc / gdm3 / Init / Default`。
このファイルは、表示前に実行されるシェルスクリプトです。マネージャーがユーザーに表示されます。
ログイン後
ユーザーがログインした後、セッションが初期化される前に実行する必要がある場合は、ファイルを編集します。
`/ etc / gdm3 / PostLogin / Default`
セッション後にコマンドを実行する場合セッション初期化(env、グラフィカル環境、ログイン…)のファイルを編集します:
`/ etc / gdm3 / PreSession / Default`
LightDM
/etc/lightdm.conf.d/*.confについてではなく、lightdm.confについて説明します。重要なことは、使用できるオプションを知ることです。
lightDMには注意してください。編集する前に、構成ファイルを正確に読み取る必要がある他のスクリプトがすでにいくつかある可能性があります。また、これらのスクリプトを配置する順序は、セッションの読み込み方法に影響を与える可能性があります。
LightDMの動作は、実行されるスクリプトを示すためにメインの構成ファイルにオプションを配置する他のファイルとは少し異なります。
メインのlightDMconfファイルを編集します/etc/lightdm/lightdm.conf
。
[Seat:*]
で最初の行を追加する必要があります 、ここに示されているように:
それ以降のバージョンのlightdm(15.10以降)では、廃止された
に置き換えられました。
[SeatDefaults]が[Seat:*]
ログイン前
行を追加します`greeter-setup-script=/ my / path / to / script`
このスクリプトは、lightDMがログインインターフェイスを表示したときに実行されます。
ログイン後
行を追加します`session-setup-script=/ script / to / start / script`
これにより、ユーザーが正常にログインした後、スクリプトが`root`として実行されます。
LXDM
ログイン前
誰かがログインする前にコマンドを実行したい場合は、シェルスクリプトを編集できます:
`/ etc / lxdm / LoginReady`
ログイン後
誰かがログインした後、rootとしてコマンドを実行したい場合は、シェルスクリプトを編集できます。
`/ etc / lxdm / PreLogin`
そして、ログインしたユーザーとしてコマンドを実行したい場合は、スクリプトを編集できます:
`/ etc / lxdm / PostLogin`
SSDM
それに関する適切な情報が見つかりませんでした…この部分を自由に編集してください。