como logar um tty na inicialização

1

Eu quero executar algum comando no especial tty (por exemplo, tty2) na minha inicialização do Linux, assim toda vez que o sistema reinicializar, esses comandos serão executados nesse tty. Eu usei este link para fazer isso .

Funciona bem, mas o problema é que na inicialização eu preciso logar o tty desejado e então executar os comandos. Existe alguma maneira de logar um tty por algum comando no começo? Obrigado

    
por Hamed 05.10.2015 / 12:14

2 respostas

3

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

Parte 1: autologin to getty

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

No terminal, execute sudo nano /etc/init/tty1.conf para 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 userName pelo seu nome de usuário real.

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

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

$ tty
/dev/pts/27

No TTY1, no entanto, ele informaria

$ tty
/dev/tty1

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

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
}

Em seguida, na parte inferior do .bashrc , faça uma chamada para sua função, simplesmente como testTTY . Então, defina a função primeiro, chame depois.

Notas laterais:

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

siga os passos abaixo.

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

5.2) Edite /etc/init/tty1.conf

/ * Para fazer Root como padrão Login * /

Alterar: exec / sbin / getty -8 38400 tty1

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

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

exec / bin / login -f abuser < / dev / tty1 > / dev / tty1 2 > & amp; 1

    
por Hariharan Gopal 05.10.2015 / 14:03