web-dev-qa-db-ja.com

kdeを開始できません

数日間の稼働時間の後、ラップトップを再起動します(そのため、何が問題を引き起こしたのかわかりません)lightdmからログインできないことがわかりました。私のパスワードは受け入れられ、フィールドは消えますが、lightdmの壁紙と(移動可能な)カーソルで立ち往生しています。でもできる

  • ゲストとしてログイン
  • ttyからのstartx

Kdmから試してみると、同じことが起こります。

プロジェクトネオンを起動しようとすると、デスクトップのプログレスバーが表示されますが、読み込みが完了するとlightdmの壁紙に戻り、キーリングパスワードのプロンプトも表示され、入力後、デスクトップが少しの間点滅しました。

.xsessionは、dbus pre-startプロセスがステータス2で終了したと言っています。関連があるかどうかはわかりません。

編集:問題なくlxdeを起動できます。プラズマアクティブを試しましたが、プロジェクトネオンと同じ症状があるため、明らかにこれはkde /プラズマの問題です。しかし、startxが動作するので、問題はlightdm/kdm-kdeの相互作用にあるようです。 lightdmがkde(kwin、プラズマ)を開始する方法を追跡する方法はありますか?

また、ログインに問題はなく、グラフィカルセッションはwhoに表示され、dm-tool list-seatsはユーザー名でSession0を表示します。

編集:私はさらにいくつかのことを試してみました。 project-neonでパスワードプロンプトについて言及しました。しばらく放置すると、デスクトップが表示されて動作します。

また、デバッグ出力をstartkdeおよびstartactiveに追加しようとしました。 startactiveにあるものは機能しますが、instartkdeには機能しません(lightdmまたはkdmから開始する場合、xinit /usr/bin/startkdeから機能します)。したがって、lightdmはstartkde 、ただしlightdm.logに従っています。

3
Evpok

TL; DR~/.cache/upstart/dbus-sessionrm -rf .cache/upstartにパーミッションの問題があり、再起動により解決しました。

将来の読者のための初心者デバッグの洞察(私も含まれる可能性があります)。

質問で言及した~/.xsessionメッセージは、

init: dbus pre-start process (PID XXXX) terminated with status 2

実際には非常に重要でした。調査中にそれが何を意味するかを学びました、私はそれをこのように見つけました

  • まず、問題はkdeにあると思ったので、lightdmがkdeを開始した方法を見つけようとしました。
  • /etc/lightdm/を調べてみました(man lightdmによって示唆された)lightdm構成ファイルはここにありませんでしたが、関連ファイル/var/log/lightdm.logを見つけた/usr/share/lightdm/lightdm.conf.dで(/usr/share/lightdm/lightdm.conf.d/40-kde-plasma.confを調べて見つけました)
  • それによると、kdeでlightdmが開始したのはスクリプト/usr/bin/startkdeだったので、デバッグecho 'startkde is at line ##' > /home/evpok/delog行を追加して、どこで失敗したかを確認しましたが、どれも実行されませんでした。
  • もう一度確認/var/log/lightdm.log私は行を見ました
    Running command /usr/sbin/lightdm-session /usr/bin/startkde
    だから私はusr/sbin/lightdm-sessionを調べ、それにデバッグecho行を再度追加しました
  • いくつかの手探りの後、問題はXsessionスクリプト/etc/X11/Xsession.d/99x11-common_startのロードにあることがわかりました。それで私はそれを調べました。正常にロードされているようで、exec $STARTUPが1行しかありません。 echoを追加して、$STARTUPの内容を確認します。init --userであることがわかりました。 initをいじりたくなかったので、この行をコメントアウトし、代わりに追加して出力をトレースしました。
    exec init -v --user > /home/evpok/initlog 2> /home/evpok/initerrlog
  • これらのログを調べると、initerrlogにこのメッセージが表示されました

    dbus pre-start process (PID XXXX) terminated with status 2
    しかし、私はそれをどうしたらいいのかまだわかりませんでしたので、initlogを調べて見ました
    Loading configuration from /usr/share/upstart/sessions

  • startkde.confを見たそのディレクトリを調べました。 upstart job confsのドキュメントを調べたところ、
    start on started dbus and xsession SESSION=kde-plasma
    明らかにstartkdeが起動しなかった理由です。エラーが発生したdbusが必要だったため、dbus.confを調べました
  • そこには、pre-start scriptスタンザがありました、ちょっと!それがinitのerrlogおよび.xsession-errorsにあるものです。そのため、問題が次の行にあったことを見つけるために、エコーを再度追加しました。
    echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >$HOME/.cache/upstart/dbus-session(デバッグエコーの1つではありません)
  • いくつかの手探りの後、アクセス権の問題のため、存在しないファイル~/.cache/upstart/debus-sessionに触れることができないことがわかりました。 Sudoの下に作成してみましたが、適切な許可を与えて私に見せかけましたが、うまくいきませんでした。したがって、私はrm -rf.cache/upstartしただけです。
  • 再起動後、すべてが期待どおりに機能しました。

結局のところ、私は内部を恐れて手を汚すのをやめる必要がありました。

3
Evpok

Ubuntu 13.10からUbuntu 14.04にアップグレードした後、同じ問題が発生しました。また、.x​​session-errorsファイルには最後の行があります。

init: dbus pre-start process (PID XXXX) terminated with status 2

問題は.cache/upstartディレクトリにもありました。 drw-------パーミッションを持っていたので、私もそれにアクセスできませんでした。実行ビットを追加してXを再起動したところ、動作するようになりました。

1
user3497625