異なるttyで2つの異なるデスクトップ環境を起動する

異なるttyで2つの異なるデスクトップ環境を起動する

この質問に関するいくつかの背景知識を提供するために、私はRaspberry Piでこれを実行しています。デフォルトのOSはDebian Raspbian GNU / Linux 10(buster)、カーネル:Linux 4.19.97-v7l +です。

現在のシステムが起動し、TTY 2 からモノラルでカスタム .exe ファイルを実行します。すべてが機能しますが、ユーザーインターフェイスは非常にシンプルで制限的です(これは人々が問題を引き起こさないように意図的に行われました)。ターミナル以外の実行可能ファイルやツールを簡単に実行できるように、他のttyのバックグラウンドで実行されるデスクトップ環境が必要です。

現在別のtty(4を使用している)に移動してコマンドを実行すると、startx /usr/bin/startlxde --:8LXDEが起動します。私が望むのは、tty4のバックグラウンドでこのコマンドを実行し、tty4でLXDEを自動的に起動することです。私がしなければならないのは、Ctrl + Alt + F4を押すだけです。これでLXDEが実行されます。

私の.xinitrcファイルもここにあります。

feh /home/pi/program/loading.jpg &
setterm -blank 0
xset s off
xset -dpms
xinput set-prop 6 'Coordinate Transformation Matrix' -1 0 1 0 1 0 0 0 1
mono /home/pi/program/test-11-20.exe**
startx /usr/bin/startlxde --:8** # this part is not doing what I was hoping it would do.

答え1

.xinitrcX私が正しい場合は、次のように動作するはずです。

case $XDG_VTNR in
   2) exec mono /home/pi/program/test-11-20.exe ;; # or gnome-session, or whatever the command would actually be
   4) exec /usr/bin/startlxde ;;
   *) echo "You've not told me what to do on this tty!" ;;
esac

スニペットが見つかりました。ここ

XOrgただし、いくつかのメカニズムを使用して開始する必要があるかもしれませんTTY4。 TTYに変更して入力するのがstartx最も簡単な方法です(ただし自動化できます)。

X 自動実行

Xを起動するには、次のようにします。startx入れる.bashrcこれはログイン時に実行されます。ただし、条件を再入力する必要があります。それ以外の場合は、すべてのログインシェルで発生します。

# start x if we are on tty2 or 4
[[ -z $DISPLAY && $XDG_VTNR -eq 2 ]] && exec startx
[[ -z $DISPLAY && $XDG_VTNR -eq 4 ]] && exec startx

また、自動ログインを有効にすることもできますが、これはセキュリティの問題になる可能性があります。この回答Debain Busterで動作する必要があります(NAutoVTs両方で自動ログインが必要な場合は、tty2と4をそのままにして編集してください)。

関連情報