新しいDISPLAY用の追加のXセッションを開く

新しいDISPLAY用の追加のXセッションを開く

私はX用のウィンドウマネージャを作成してデバッグしています。

私のアプリケーションでgdbを実行できるようにしたいです。このアプリケーションにはXモニターが必要です。 2つのセッションを並列に実行したいと思います。 1つは開発してgdbとアプリケーションを実行するセッション、もう1つはアプリケーションをリダイレクトするセッションです。

私はVTを何度も試しました。

  • gdm を使用して開発セッションにログインします。
  • 別のVTに移動するには、Ctrl + Alt + F3を使用してください(私はUbuntu 20.04を使用しています)。
  • 新しいXセッションを開始sudo X :2

最後のコマンドは、tty2の開発セッションとtty1のgdmログインを含む他のすべてを終了します。黒い画面が残りました。

私もそれを試しましたが、startxデスクトップ環境が開きます(GNOMEのように見えます)。~/.xinitrc、をに変更しようとしましたが、unset XDG_RUNTIME_DIR && sleep 6060秒間他のttyにアクセスできませんでした。

unset XDG_RUNTIME_DIR && X :2実際には失敗せずにすぐに返されます。

別のTTYで自分のアプリケーションを実行してデバッグできるように、TTYから別々のXセッションを取得するにはどうすればよいですか?

答え1

奇妙なことに、Ubuntu 20.04ではX :1 vt3 &

しかし、私はそれから始めることができますstartx


私の現在のソリューション:

存在する~/.xinitrc

unset XDG_RUNTIME_DIR && xhost +local: && tail -f /dev/null

XDG_RUNTIME_DIRファイルを混在させないでください。xhost他のVTのプログラムが新しいVTに出力され、tail何も実行せずに待機できます。

新しいVT(VT3)では、.loginを使用してログインしてXサーバーを起動できるようになりましたstartx

その後、最初のVT(VT2)でDISPLAYコマンドを使用して別のVTの変数を確認し、w私のアプリケーションでgdbを実行できます。

DISPLAY=:1 gdb ./my_app

これは間違いなく解決策のように感じます。 .を使用して最初のサーバーをシャットダウンせずに新しいXサーバーを起動する方法が必要ですが、X現時点ではこの方法で十分です。

関連情報