柘植です。こんばんは。
このあたりはきちんと知りたいところですね。
私も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
|