Eu não sei se essa é a maneira kosher de fazer isso, mas funciona:
O programa que é executado em um terminal virtual na inicialização é decidido pelo arquivo /etc/inittab
. Estes são todos executados como root. Tem linhas como estas:
1:2345:respawn:/sbin/getty 38400 tty1
Eles decidem o que acaba em qual terminal virtual. /sbin/getty
fornece um terminal virtual. No meu caso, /sbin/getty 38400 tty1
significa getty
fornece tty1
no primeiro terminal virtual. getty
chamará então login
, e é daí que vêm os prompts de login nos terminais virtuais.
Portanto, há duas maneiras de fazer isso:
-
a maneira rápida e suja: basta substituir
/sbin/getty
, além de argumentos, por telnet, para pelo menos um dos terminais virtuais, assim:1:2345:respawn:/usr/bin/telnet foo.bar
Isso provavelmente funcionará, mas não é uma maneira muito boa de fazê-lo, pois nenhum tty é criado. Isso pode causar outros problemas se você quiser usar a máquina para outras coisas também, então eu recomendo:
-
da maneira correta: instale uma substituição
getty
que possa executar qualquer programa, comorungetty
. Em seguida, ligue para que :1:2345:respawn:/sbin/rungetty tty1 -- /usr/bin/telnet foo.bar
Nota: se você usar rungetty
, o programa será executado sob o usuário nobody
por padrão. Quase sempre é preferível executar programas como root
, porque oferece melhor segurança. Se você fizer realmente precisar do usuário root
(ou de qualquer outro usuário), use a opção -u
.