Cómo tener más tty’s y más servidores X

Para tener más tty’s (terminales en modo texto que se acceden mediante ctrl+alt+F1-6) solo hay que editar el archivo /etc/inittab (como root) localizando estas líneas:

1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3
4:2345:respawn:/sbin/getty 38400 tty4
5:2345:respawn:/sbin/getty 38400 tty5
6:2345:respawn:/sbin/getty 38400 tty6

Estas son las tty desde F1 hasta F6, si queréis tener más, solo debeis seguir añadiendo líneas con sus correspondientes números para esa tecla de función.
Hay que tener en cuenta, que la tty7 está reservada para las X (servidor gráfico), así que una configuración adecuada podría ser:

1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3
4:2345:respawn:/sbin/getty 38400 tty4
5:2345:respawn:/sbin/getty 38400 tty5
6:2345:respawn:/sbin/getty 38400 tty6
8:2345:respawn:/sbin/getty 38400 tty8
9:2345:respawn:/sbin/getty 38400 tty9
10:2345:respawn:/sbin/getty 38400 tty10
11:2345:respawn:/sbin/getty 38400 tty11
12:2345:respawn:/sbin/getty 38400 tty12

Así dejaríamos solo una tty para X, pero, hay una manera de ejecutar más servidores X, así que lo voy a dejar en:

1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3
4:2345:respawn:/sbin/getty 38400 tty4
5:2345:respawn:/sbin/getty 38400 tty5
6:2345:respawn:/sbin/getty 38400 tty6
10:2345:respawn:/sbin/getty 38400 tty10
11:2345:respawn:/sbin/getty 38400 tty11
12:2345:respawn:/sbin/getty 38400 tty12

De esta manera, estamos dejando libres la tty7, la tty8 y la tty9 para poder ejecutar servidores X.

Como seguramente ya tengas un servidor X corriendo en tty7, con este comando se puede abrir otro servidor X en tty8:

$ startx -- :1 &

Y para tty9:

$ startx -- :2 &

Editando el archivo ~/.xinitrc podemos cambiar el gestor a arrancar con las X y asi tener diferentes escritorios arrancados a la vez.

Compartir

4 Comentarios

  1. y X para tty7?

    seria

    startx — :0 &

    ???

    lo pregunto por que hace bastante tiempo al salir de una sesion, si volvia a poner startx a secas me aparecia en el siguiente, en tty8, en lugar de tty7

    hay alguna manera de forzar startx en tty7 ?

    saludos

    gracias

  2. Gracias, Fanta, bienhallado. Nonamed, si, para arrancar las X en tty7 es como has dicho:
    $ startx — :0 &
    el ‘&’ se pone para que se ejecute en background y te deje la terminal libre.

  3. Como nota adicional, para cambiar a tty’s entre tty13 y tty24, se puede pulsar CONTROL + ALT + SHIFT + FX.

    Normalmente CONTROL + ALT + FX cambia a ttyX, pero con este shift se le suma 12. Si por ejemplo pulsas

    CONTROL + ALT + SHIFT + F3

    Estás cambiando a tty15.

    Al pulsar estas teclas no notareís nada, debido a que no existe ninguna sesion de procesos que tenga abierto tty15.

    En sistemas posix, la jerarquia es

    sesion de procesos –> varios grupos de procesos

    grupo de procesos –> varios procesos

    proceso –> varios threads

    Por varios se entiende 1 o más.

    Una sesión tiene la propiedad de que todos sus grupos de procesos poseen el mismo CTTY ( tty de control ). Aunque una aplicación reestablezca stdin, stdout y stderr en otro tty, realmente no está cambiando su control tty. Las combinaciones de teclas como control +c para mandar sigint al proceso en foreground no funcionarían.

    Además fanta, no es por tirarme el pisto, pero a mi que no me hablen de tty’s que os puedo asegurar que se un montón. No en vano me ha tocado programar una versión minimalista de getty para un mini-linux empotrado con el que estoy trabajando.

    Además, si os parece bien, puedo escribir un artículo sobre los tty’s, los pty’s y demás vainas. A día de hoy en linux los tty’s son algo muy complejo, suelen usar un framebuffer para la pantalla, soportan multitud de terminales, etc.

    Además, os propongo una pregunta, a ver quien me da una respuesta sin necesidad de buscar info en la red.

    ¿ Cómo funciona un servidor de telnet ( o de ssh ) ?. ¿ Cómo «insufla» los datos que le vienen por la red a los procesos de la sesión telnet para que estos crean que su entrada es un teclado y su salida una pantala ?.

    Ahí dejo la cuestión. Acepto respuestas aproximadas, a ver quién lo sabe mejor …

    Saludos !

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax