Pregunta

Supongo que no tengo claro cuál es la función de los programas Getty/Agetty/Mgetty en una máquina Linux/Unix. Puedo comenzar un caparazón en un tty con algo como esto:

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',))

... y si cambio a TTY3, hay una carcasa en funcionamiento, pero algunas pulsaciones de teclas se ignoran / nunca se envían a la carcasa. El shell sabe que la configuración de TTY no es correcta porque Bash dirá algo como 'No se puede abrir TTY, control de trabajo deshabilitado'

Sé que el módulo 'Termios' tiene funciones para cambiar la configuración en el TTY, que es lo que usa el módulo 'TTY', pero no puedo encontrar un ejemplo de Python configurando el TTY correctamente e iniciar una cubierta. Siento que debería ser algo simple, pero no sé dónde mirar.

Mirar la fuente de los programas *Etty no me ayudó a parecer griego para mí:-/

¿Quizás no estoy buscando los términos correctos? ¿Alguien reemplazó los programas *Etty con Python en el pasado y tiene una explicación que le gustaría compartir?

Gracias por entretener mi pregunta básica :)

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top