あなたのセッションは10秒以上続きませんでした


CentOS入れてみてちょっとトラブルに遭ったのでその解決法をメモ。


で、トラブルってのはこんな感じのトラブル。
同じ症状に遭ってる人も結構いるみたい。
具体的に言うと、CentOSのログイン画面(GUI)までは出るんだけど、
ユーザ名とパスワード入れて、画面が暗くなった時にいきなり
「あなたのセッションは10秒以上続きませんでした。もし?」とかいうメッセージが出てくる。
(詳しいメッセージは上のリンクから見れる)


自分は最初このメッセージを見たときにとりあえずCtrl+Alt+F1押して
CUIでログインしたんだけど、ログインは正常にできる。
ここで自分の~/.bashrcとかの設定が違うんじゃないかっていう疑いは一応薄れた。

で、次に再起動してから何を変更したか(最初にこれ疑うのが普通だと思うけどorz)を思い出してみると
chkconfigコマンドでいくつかのサービス(デーモン?)の起動を止めたのと
githubから自分のホームディレクトリのドットファイルを持ってきてコピーしたことを思い出した。

なのでとりあえずserviceコマンドで全部のサービス立ち上げてみた。変わらず。
次にchkconfigコマンドで全部のサービスonにして再起動。変わらず。
というわけでたぶんサービスは関係ないと思って~/.bashrcを変更してみることにする。
でも変わらない。
おかしいなーと思っていろいろいろいろ試行錯誤してふと
chshでシェルを/bin/shに変えてみた。
そしたらGUIでも正常なくログインできるように。


原因はたぶん~/.bashrcに

if [ -x "$(which zsh)" ]; then
    exec zsh
fi

と書いてたのが原因だと思う。(って原因自分じゃんorz
/bin/zshをログインシェルにするのはまずいと思ったのでこう書いてた(っていうかそういうTipsをどこかで見た)
んだけどこれだとまずいらしい。


でも我慢して/bin/shを使うのはzshに慣れてしまった自分にはつらすぎる。
(っていうと玄人っぽく聞こえるけどあれは初心者こそ使うべきものだと思う。補完パネェ。マジ便利)

なのでとりあえずログインシェルを/bin/bashに戻した後、
/etc/inittabをいじってCUIでスタートするようにしてみた。
するとエラーメッセージが出ない。ktkr。


というわけで~/.bashrcからzshを呼び出してるような人の解決策としては

  1. /etc/inittabを編集してCUIでスタート
  2. ユーザ名とパスワード入れてログイン
  3. startxと入れてGUIを立ち上げる

がいいみたい。