Plasma / KDEが停止したときに自動的に再起動を有効にする方法は?

Plasma / KDEが停止したときに自動的に再起動を有効にする方法は?

使ったオープン水勢数年が経ちました。このディストリビューションで私のお気に入りの1つは、プラズマ/ KDEの問題を処理する方法です。時々、パネルがしばらく消えてプラズマデスクトップがクラッシュして再起動したことを知らせるメッセージボックスが開き、デバッグ送信を選択するように求められます。開発チームにデータを渡します。

数ヶ月間、私はFedoraベースのディストリビューション(QubesOS、Fedora 20ベース)。このディストリビューションは、次の理由でデフォルトでこの動作を提供していないようです。

  • このメッセージボックスは再び表示されません。
  • しかし、デスクトップが数回完全に停止し(画面とキーボードが停止し、サウンドとマウスポインタが正常)、コンピュータを残酷にシャットダウンする必要がありました。進行中のすべての作業が失われることが、この残酷な終了の唯一の副作用になることを祈りながらです。

10年以上前、私が学生だった時、私たちの大学でも実習のためにFedoraを使っていました。当時、同様の凍結状況に直面してSSHを介してリモート接続し、デスクトップマネージャを終了して自動的に再起動し、グラフィカル環境をロック解除するソリューションを見つけました。

残念ながら、Qubes OSの特定の設計により、この高速で汚れたSSHソリューションはここでは機能しません。しかし、OpenSuseのメッセージボックスツールは正しい方法で同様のことをすることができるようです。つまり、Plasma/KDE が応答しない時を検出し、終了して再起動する一種の監視装置を実装することです。

だから私が知りたいのは次のとおりです。このツールはOpenSUSE²に固有のものですか?または、現在のインストールでこの動作を有効にするには、一部のパッケージをインストールするか、一部の構成を変更する必要がありますか?

デスクトップの停止は特に残念です。特に、アプリケーション自体がまだうまく動作する可能性が高く、単にプラズマプロセスを再起動すると、すべてが正常に戻ることができることがわかっている場合はさらにそうです。


1:Qubes OSでは、ネットワーク接続はXenドメインから隔離され、KDEはネットワークなしでDom0にあります。セキュリティ上の理由から、Qubes OSはネットワークからユーザーインターフェイスにアクセスしないように慎重に設計されています。

²:過去に(今はそうでない場合)、OpenSUSEは内部的に大幅に修正されたKDEを使用して安定したKDE4を提供する最初のディストリビューションになったため、このツールがほんの一部であるかどうか心配されます。キャンディ。 ..

ベストアンサー1

簡単に言うと:ここでの問題はOpenGLとKWinの間の問題によって引き起こされるようです(ほとんど曖昧な競争条件である可能性が高い)。

この問題を解決するには、OpenGLを無効にしてXRenderを使用する必要があります(システム構成>デスクトップ効果>詳細>合成タイプでデフォルトのOpenGLの代わりに「XRender」を選択)。

一部のデスクトップ効果は使用できなくなりますが、少なくともシステムは安定しており、もはや遅延しません。


非常に長い話:

問題は数週間に1回ランダムに発生し、時には1日に数回、時には問題なく2〜3週間にわたって発生するため、分析することは困難です(しかし、ある時点で別のグラフィックカードであるRadeonからIntel i915に切り替えました。は発生しません)。効果なので、グラフィックカードやドライバとは何の関係もありません)。

私はバックグラウンドで実行されるスクリプトを残し、無限ループで3分ごとに自動チェックを実行し、デスクトップが停止したときに何かを見つけることができることを願っています。

実際、停止はqdbusを介してプログラムで検出できます。特に、この呼び出しはデスクトップがハングしている場合にのみ失敗します。

qdbus org.kde.Kwin /App org.freedesktop.DBus.Peer.Ping

通常、出力がなくコード0を返しますが、デスクトップがフリーズすると、このコマンドはコード2と「NoReply」エラーメッセージで失敗します。

ちなみにorg.kde.plasma-desktop、org.kde.kuiserver、org.kde.kdedの状態も確認してみましたが、フリーズ発生当時はすべて正常に見えましたが、KWinが本当の犯人のようです。

デスクトップ環境の整合性を復元するためにさまざまな方法を試しましたが、成功しませんでした。 KWinを使用しkquitapp kwinたり、完全に再起動してもkwin --replace目立つ効果はないようです。私は次のように完全なデスクトップ環境を終了して再構築してみました。

kbuildsycoca4
kquitapp plasma-desktop
kquitapp kwin
kquitapp kuiserver
sleep 2
killall plasma-desktop kwin kuiserver; sleep 2
killall -9 plasma-desktop kwin kuiserver; sleep 2
kstart kuiserver
kstart kwin
kstart plasma-desktop

デスクトップは自動的にアンロックされます! ...しかし、1つのフレームにのみ適用されます。画面(タスクバーの時計を見ると表示されます)が更新され、すぐに再び停止します。

しかし、犯人を探す古い「高くて重要だがあいまいなので解決できない」問題。同じ症状、同じ診断手順、および最後に提案された回避策:OpenGLの代わりにXRenderを使用してください。

この変更を適用してから数ヶ月が経過し、それ以降はフリーズが発生しませんでした。

おすすめ記事