A página man do tty_ioctl lista o ioctl
TIOCCONS. Quando aplicado a um descritor de arquivo aberto de um tty, ele redirecionará a saída futura destinada a /dev/console
para esse tty.
Você pode usar isso em um script perl simples. Crie e chmod +x
um arquivo mysetconsole segurando o seguinte:
#!/usr/bin/perl
# https://unix.stackexchange.com/a/397790/119298
# see man tty_ioctl for TIOCCONS
# and perldoc IO::Tty::Constant
require "sys/ioctl.ph";
use IO::Tty::Constant qw(TIOCCONS);
ioctl(STDIN,TIOCCONS,0) or die $!;
Supondo que você pode abrir o dispositivo desejado, use-o simplesmente como
sudo ./mysetconsole </dev/ttys3
Você não poderá usá-lo novamente até definir o console de volta para /dev/console
, com
sudo sh -c './mysetconsole </dev/console'
Você pode receber avisos de perl sobre _FORTIFY_SOURCE
, que podem ser ignorados.
Você precisará do pacote rpm perl-IO-Tty
ou debian package libio-pty-perl
. Se preferir, basta procurar a definição de TIOCCONS nos arquivos de inclusão do sistema. Eu encontrei o meu em:
/usr/include/asm-generic/ioctls.h: #define TIOCCONS 0x541D
Seu script perl pode ser apenas
#!/usr/bin/perl
# https://unix.stackexchange.com/a/397790/119298
sub TIOCCONS{ return 0x541D; }
ioctl(STDIN,TIOCCONS(),0) or die $!;