別のTTYでダイアログ/ホイップテイルスクリプトを実行することは可能ですか?
私にとっては、この問題の起源は、コマンドラインでwhiptailコマンドを実行できることです。 %pre Centosベースのカスタムディストリビューションをインストールするときのキックスタートファイルからのスクリプト。ただし、Anacondaで観察された動作は、あらゆるLinuxシステムの仮想端末を介して簡単に再現できます。 Anacondaでキックスタートとしてwhiptailコマンドを実行する %pre スクリプト新しいTTYでTTYを切り替えてコマンドを実行する必要があります。これを行う方法に関する一般的な提案は次のとおりです。 %pre exec </dev/tty6 >/dev/tty6 2>/dev/tty6 chvt 6 # then execute your command, for example: whiptail --inputbox "Enter some text..." 10 30 # switch back to the original TTY chvt1 exec </dev/tty1 >/dev/tty1 2>/dev/tty1 %end この方法を使用すると、ホイップテイルダイアログボックスは新しいTTYに正しくレンダリングされますが、ダイアログとの対話はできません。 tabテキスト入力、 "Ok"、および "Cancel"要素を切り替えるのではなく、実際にはテキスト入力ボックスにタブを挿入します。同様に、矢印キーを使用すると、ダイアログにエスケープシーケンスが書き込まれます。 この動作は、python snack(whiptail - libnewtと同じライブラリを使用)とdialogを使用しているときにも見られます。 もちろん、whiptailを使用するのではなく、対話型シェルスクリプトを使用することもできますが、この動作を実現するための唯一の要件はそれであると考えていたので入力ストリームと出力ストリームを正しくリダイレクトするため。 TL、DR …