Думаю, я не понимаю, какова функция getty / agetty / mgetty программы находятся на машине linux / unix. Я могу запустить оболочку на 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 ', но я не могу найти пример того, как python правильно устанавливает TTY и запускает оболочку. Я чувствую, что это должно быть что-то простое, но я не знаю, где искать.
Просмотр исходных текстов программ * etty мне не помог - C мне кажется греческим: - /
Может быть я просто не ищу подходящие условия? Кто-нибудь заменял * etty-программы на Python в прошлом, и у них есть объяснение, которым они хотели бы поделиться?
Спасибо, что задели мой основной вопрос: )