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
isTTYde alteração de TTY específico para isso:isTTY=$(tty | awk '{if ($0=="/dev/tty1") {print "true"}else{print "false"}}')