Vitruvian Penguin
knoppix

[knoppix:2790] Re: .xsession

Date: Fri, 23 Jan 2004 20:22:31 +0900
X-mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu)
柘植です。こんばんは。

このあたりはきちんと知りたいところですね。
私もMaxさんの [knoppix:2729] を参考にしながらお勉強中(^^;

T.AさんのHDインストール後の状況と、.xsessionを使う目的がいまいち
はっきりとはわからないのですが、[knoppix:2683]の 

「Windowsキーを使用したくてホームディレクトリに.xinitrcを作成」

という話の流れなんでしょうか。

さて、KDMの画面が表示されログインするユーザを選択し、
Session typeを選択してからログインするわけですが、この時に
選択したSession typeを引数として、

  $ /etc/kde3/kdm/Xsession [Session type]

が実行されるみたいなのですが、このスクリプトは /etc/X11/Xsession
を読み込んで実行し、/etc/X11/Xsessionは /etc/X11/Xsession.d
ディレクトリに存在する各ファイルを読み込んで実行し、

最後に/etc/X11/Xsession.d/99xfree86-common_startで
 
  exec $REALSTARTUP

としてWindow Managerが起動します。

で、問題はこの時に$REALSTARTUPという変数の中に実際に入るのは
何か、ということだと思います。

関連するファイルをひとつひとつ読んでいくと、

Session typeに`default'を選択しており、なおかつ、
$HOME/.xsession かあるいは $HOME/.Xsessionが存在している場合
$REALSTARTUP には

  /usr/bin/ssh-agent $HOME/.[xX]session

.[xX]session に実行属性がついていなければ、

  /usr/bin/ssh-agent sh $HOME/.[xX]session

が入るようです。

ですから、$HOME/.xsessionが空ファイルだとすぐに実行終了してしまい
KDMのログイン画面に戻ってしまうということなんだと思います。

ちなみに通常は`default'の場合

  /usr/bin/ssh-agent x-session-manager

が実行されます。(x-session-managerの実体は/usr/bin/kde3)

ということなので、$HOME/.xsessionを作る場合は、その中に
Window Managerを起動する記述が必要になりそうです。

最後に、Knoppixでは、自分自身で追加しないかぎり、/etc/skelに
.xsessionファイルがありませんから、通常の方法でユーザを追加しても
$HOMEには.xsessionは存在してないはずですね。

-- 
Tsuge Akihide
<Prev in Thread] Current Thread [Next in Thread>