Linux/Unix マシン上で getty/agetty/mgetty プログラムがどのような機能を持っているのか、私にはよくわかりません。次のようなものを使用して、tty でシェルを開始できます。
TTY = '/dev/tty3'
cpid = os.fork()
if cpid == 0:
os.closerange(0, 4)
sys.stdin = open(TTY, 'r')
sys.stdout = open(TTY, 'w')
sys.stderr = open(TTY, 'w')
os.execv(('/bin/bash',), ('bash',))
..そして、tty3 に切り替えると、シェルが実行されますが、一部のキーストロークが無視されるか、シェルに送信されません。シェルは、TTY 設定が正しくないことを認識します。これは、bash が「tty を開けません。ジョブ制御が無効になっています」などのメッセージを表示するためです。
「termios」モジュールには、「tty」モジュールが使用する TTY の設定を変更する機能があることは知っていますが、TTY を正しく設定してシェルを開始する Python の例を見つけることができません。シンプルなものであるべきだと思いますが、どこを見ればいいのかわかりません。
*etty プログラムのソースを見ても役に立ちませんでした。C は私にはギリシャ語のように見えます :-/
多分私は正しい用語を探していないだけですか?過去に*ettyプログラムをPythonに置き換えた人がいて、共有したい説明がありますか?
私の基本的な質問を楽しませてくれてありがとう:)