cómo iniciar sesión en un tty al inicio

cómo iniciar sesión en un tty al inicio

Quiero ejecutar algún comando en un tty especial (por ejemplo, tty2) en mi inicio de Linux, de modo que cada vez que el sistema reinicie, estos comandos se ejecuten en ese tty. solíaesteenlace para hacerlo.

Funciona bien, pero el problema es que al inicio necesito iniciar sesión en el tty deseado y luego ejecutar los comandos. ¿Hay alguna forma de iniciar sesión en un tty mediante algún comando al principio? Gracias

Respuesta1

En mi humilde opinión, una solución más sencilla para ejecutar un programa sería combinar la --autologinbandera de gettyy una función que ejecute los comandos deseados desde .bashrc.

Parte 1: inicio de sesión automático en Getty

Como puede que sepa o no, los TTY se abren con unprograma gettycomo servicio de inicio en /etc/init/el directorio. Para Ubuntu, el programa predeterminado es agetty, que tiene --autologinuna bandera. Así, podemos hacer lo siguiente:

En la terminal, ejecute sudo nano /etc/init/tty1.confpara abrir el archivo de inicio para TTY1 (tenga en cuenta que TTY1 es solo un ejemplo, podría ser el que elija). Cambiar línea

exec /sbin/getty -8 38400 tty1

a

exec /sbin/getty --autologin userName    -8 38400 tty1

Reemplace userNamecon su nombre de usuario real.

Parte 2: ejecutar una función al iniciar sesión en el shell

Los sistemas Linux/Unix tienen este pequeño y agradable programa llamado ttyque informa qué tipo de terminal estás usando en ese momento. Por ejemplo, en gnome-terminal informaría algo como

$ tty
/dev/pts/27

Sin embargo, en TTY1 informaría

$ tty
/dev/tty1

Sabiendo que podemos crear una función en la parte superior de nuestro $HOME/.bashrcarchivo.

function testTTY
{
  isTTY=$(tty | awk '{if ($0~/\/dev\/tty.*/) {print "true"}else{print "false"}}')

  if [ $isTTY == "true" ]; then
    printf "You are in virtual console\n"
    printf "current disk usage is"
    df
  fi
}

Luego, en la parte inferior, .bashrcrealice una llamada a su función, simplemente como testTTY. Entonces, primero defina la función y llámela después.

Notas al margen:

  • colocar comandos personalizados entreif [];then ...fi
  • Si necesita isTTYun código TTY específico, cambie este:isTTY=$(tty | awk '{if ($0=="/dev/tty1") {print "true"}else{print "false"}}')

Respuesta2

Siga los pasos a continuación.

Primera instalación de mingetty: $ sudo apt-get install mingetty

5.2) Editar /etc/init/tty1.conf

/* Para hacer que Root sea el inicio de sesión predeterminado */

Cambio: ejecutivo /sbin/getty -8 38400 tty1

Para: ejecutivo /sbin/mingetty --autologin root --noclear tty1

/* Para establecer un usuario normal como inicio de sesión predeterminado */

ejecutivo /bin/login -f abcuser < /dev/tty1 > /dev/tty1 2>&1

información relacionada