誤ってX.orgを切り替えた後に実行中のアプリケーションに再度アクセスするにはどうすればよいですか?

誤ってX.orgを切り替えた後に実行中のアプリケーションに再度アクセスするにはどうすればよいですか?

ただ偶然に当たったCtrlAltBackspace。これは明らかに攻撃されたXサーバー。画面がしばらく点滅した後、ウィンドウマネージャが再度ログインするように求められ、空の画面に戻ります。 Quickでは、ps -ax私のアプリはまだ実行中であることを示していますが、そのアプリをフォアグラウンドに戻す方法がわかりません。 (fg <foo>いいえ。)

誤ってX.orgを切り替えた後に実行中のアプリケーションに再度アクセスするにはどうすればよいですか?

構成:無料BSD 11.2、i3-4.16、xorg-7.7_3。

ベストアンサー1

X11サーバーを切り替えて再度ログインした後、UNIX X11ソケットが削除され再/tmp/.X11-unix/X0生成され、X11セッションCookieが~/.Xauthority新しいランダムCookieに置き換えられました。

DISPLAY環境変数の値が同じであっても、アプリケーションはソケットを閉じて再度開き、Cookieを再度読み取る必要があります。私が知っている限り、X11アプリケーションにこれを行うように指示する普遍的なメカニズムはありません。これは最初のステップです。その後、アプリケーションはX11サーバーを使用してすべてのウィンドウと他のGUIオブジェクトを完全に再作成し、その状態をプログラムの内部状態と一致するように復元する必要があります。この機能が存在しないようです。

最善の方法は、kill -HUPアプリケーションを停止し、保存されていないジョブを自動的に保存する機会を提供し(プログラムされている場合)、通常どおり再起動することです。

(これは実際には信号の元の意味と正確に一致していますHUP。元々はユーザーの有線モデムの接続が失われ、アプリケーションが新しいセッションで再開してエクスポートできるように、保存されていないすべてのタスクを何とか保存する必要がありました。)

おすすめ記事