como fazer login em um tty na inicialização

como fazer login em um tty na inicialização

Quero executar algum comando em tty especial (por exemplo, tty2) na inicialização do Linux, para que toda vez que o sistema for reinicializado, esses comandos sejam executados nesse tty. eu useiesselink para fazer isso.

Funciona bem, mas o problema é que na inicialização preciso fazer o login no tty desejado e executar os comandos. Existe alguma maneira de fazer login em um tty por algum comando no início? Obrigado

Responder1

Uma solução mais simples para executar um programa, IMHO, seria combinar o --autologinsinalizador de gettye uma função que executa os comandos desejados de .bashrc.

Parte 1: login automático no getty

Como você pode ou não saber, os TTYs são abertos com umprograma gettycomo um serviço de inicialização no /etc/init/diretório. Para Ubuntu, o programa padrão é agetty, que possui --autologinflag. Assim, podemos fazer o seguinte:

No terminal, execute sudo nano /etc/init/tty1.confpara abrir o arquivo init para TTY1 (observe que TTY1 é apenas um exemplo, pode ser o que você escolher). Alterar linha

exec /sbin/getty -8 38400 tty1

para

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

Substitua userNamepelo seu nome de usuário real.

Parte 2: executando uma função no login do shell

Os sistemas Linux/Unix têm um pequeno programa chamado ttyque informa que tipo de terminal você está usando no momento. Por exemplo, no gnome-terminal ele reportaria algo como

$ tty
/dev/pts/27

No entanto, em TTY1, ele reportaria

$ tty
/dev/tty1

Sabendo que podemos criar uma função no topo do nosso $HOME/.bashrcarquivo

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
}

Então, na parte inferior, .bashrcfaça uma chamada para sua função, simplesmente como testTTY. Portanto, defina a função primeiro e chame-a depois.

Notas laterais:

  • coloque comandos personalizados entre oif [];then ...fi
  • Se você precisar isTTYde um código de alteração TTY específico para isso:isTTY=$(tty | awk '{if ($0=="/dev/tty1") {print "true"}else{print "false"}}')

Responder2

siga as etapas abaixo.

Primeiro instale o mingetty: $ sudo apt-get install mingetty

5.2) Edite /etc/init/tty1.conf

/* Para tornar o Root como login padrão */

Alteração: exec /sbin/getty -8 38400 tty1

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

/* Para tornar um usuário normal como login padrão */

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

informação relacionada