Python TTY Control

Думаю, я не понимаю, какова функция 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 в прошлом, и у них есть объяснение, которым они хотели бы поделиться?

Спасибо, что задели мой основной вопрос: )

6
задан tMC 6 May 2011 в 01:15
поделиться