web-dev-qa-db-ja.com

パイプが壊れた後にプロセスGUIを回復する方法

Ssh -Xを使用して、リモートコンピューターのコマンドラインからGUIでプロセスを開始しました。それを実行するのに長い時間がかかることを知っていたので、私はそれをバックグラウンドに残し、勘当しました。

恐れていたのですが、接続が終わる前に接続に問題があり、パイプが壊れていました。再接続できた後、 reptyr を使用してプロセスの所有権を回復しました。ここまでは順調ですね。しかし、プロセスを再び所有しているので、GUIを再度開く方法はありますか?

1
franchzilla

それはおそらく不可能です。プロセスがXサーバーとの接続を失うと、通常、GUIに関連付けられているすべての内部データがクリーンアップされます。必ずしもそうする必要はありませんが、プログラマーの側でかなりの労力が必要になります(標準ライブラリを回避する必要があります)。ほとんどのプログラムには、既存のGUIウィンドウが閉じられている場合に、新しいGUIウィンドウを開くオプションもありません。

接続が不安定になることが心配な場合は、アプリケーションとXサーバー間のプロキシとして xpra を使用できます。 Xpraは、アプリケーションとサーバーの間に絶縁層を作成し、アプリケーションをあるサーバーから別のサーバーに移動できるようにします。これは、GUIアプリケーションに対して、Screenがテキストモードアプリケーションに対して行うことを行います。ただし、アプリケーションを起動するときはXpraを使用する必要があります。その後は手遅れです。