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"}}')