Leitura adicional

Leitura adicional

Tenho um servidor em nuvem, com distribuição CentOS, e uma instância Apache para gerenciar alguns aplicativos web, como Wordpress ou PrestaShop.

Percebi que um erro é relatado nos arquivos de log ( var/log/).

  • Em particular em messages:
    May 30 11:54:41 xxx00962 systemd: Starting Serial Getty on ttyS0...
    May 30 11:54:41 xxx00962 systemd: Started Serial Getty on ttyS0.
    May 30 11:54:51 xxx00962 systemd: [email protected] holdoff time over, scheduling restart.
    May 30 11:54:51 xxx00962 systemd: Stopping Serial Getty on ttyS0...
    
  • e em secure:
    May 30 15:51:30 xxx00962 agetty[24693]: /dev/ttyS0: not a character device
    

onde xxx00962está o nome do host (anonimizado).

Não sei para que serve getty, mas gostaria de resolver o problema.

Alguém pode me ajudar e explicar como gettyfunciona?

Responder1

gettyé um dos programas Unix mais antigos. Você está usando um programa semelhante escrito por Wietse Venema, agettyque foi escrito quando gettytinha cerca de vinte anos.

Este programa está sendo executado porque seu sistema pensa que você tem um terminal conectado a um dispositivo serial, com o caractere device filename /dev/ttyS0. Quando o seu sistema foi inicializado, um programa chamado systemd-getty-generatorapareceu ttyS0em /sys/class/tty/console/active, por estar listado após a console=na linha de comando do kernel. O gerador fez com que a [email protected]unidade de serviço do modelo fosse instanciada como [email protected]; e este é o serviço cujas tentativas de ativação você vê sendo registradas.

O serviço fornece logon no terminal por meio desse dispositivo.

Por algum motivo (presumindo que você tenha uma versão do systemd de 2014 ou posterior), seu sistema está inconsistente eagoraacredita que /dev/ttyS0énãoum arquivo de dispositivo de caractere,muito menosum dispositivo de caractere que é um terminal. systemd-getty-generatorpensei que estava no bootstrap. Há pelo menos duas maneiras pelas quais isso poderia ter mudado. O que, se algum deles ocorreu, não pode ser determinado a partir da sua pergunta.

Consertar /dev/ttyS0.

  • Se deveria ser um dispositivo de personagem, mas não é, descubra o que está mudando em tempo de execução.
  • Se não for um dispositivo de caractere, descubra por que era um dispositivo terminal no bootstrap quando systemd-getty-generatorverificado. Pare também de dizer ao kernel em sua linha de comando que é o console. Se não deveria ser um dispositivo de caractere, porque você não tem uma porta serial (com terminal conectado ou sem), então dizer ao kernel que uma porta serial inexistente é o console é simplesmente errado.
  • Se for suposto ser um dispositivo de caractere que é um terminal, mas você não deseja fazer logon a partir desse terminal, pare de informar ao kernel em sua linha de comando que é o console.
  • Se for suposto ser um dispositivo de caracteres que é um terminal, mas você quer que seja o console do kernel, masaindanão quiser fazer logon a partir desse terminal (ou mesmo de qualquer outro console de terminal não virtual), desative systemd-getty-generatorporque sua funcionalidade principal não é o que você deseja.

Leitura adicional

Responder2

Em qualquer sistema Unix, gettyé o nome tradicional para um processo que apresenta um prompt de login em uma conexão de porta serial (um terminal com fio ou uma linha de modem) e aguarda o login do usuário.

Em um sistema (físico) moderno, gettyos processos são normalmente encontrados fornecendo o prompt de login no(s) console(s) virtual(is) em modo texto. Se o sistema tiver hardware de acesso remoto ao console (como HP iLO, Sun/Oracle ILOM, Fujitsu IRMC ou Oracle iDRAC), eles geralmente fornecem portas seriais virtuais que são acessíveis estabelecendo uma conexão SSH por meio da interface do console remoto, se o administrador do sistema apenas configura um gettyprocesso para a porta serial correspondente.

Isso geralmente é muito mais confiável do que usar uma interface de console remoto baseada na Web que usa Java ou HTML5: como uma porta serial virtual não precisa emular um teclado de PC, ela não precisa mapear reversamente os caracteres recebidos de volta aos scancodes do teclado e espero que o layout do teclado realmente configurado no sistema operacional do servidor corresponda ao que foi usado para a operação de mapeamento reverso. E no lado da saída, não é necessário tentar raspar a RAM de vídeo para obter uma imagem exibível.

Em máquinas virtuais, as portas seriais virtuais podem ser usadas da mesma maneira, pelo mesmo motivo: uma conexão de porta serial virtual precisa de menos transformações nos dados do que um "KVM virtual".

No seu caso específico, o sistema operacional da máquina virtual em nuvem está aparentemente configurado para esperar uma porta serial virtual como /dev/ttyS0, mas parece que a porta serial virtual não existe na VM no momento. Talvez tenha sido usado no processo de inicialização da VM pela infraestrutura em nuvem?

Você provavelmente pode encerrar o gettyprocesso /dev/ttyS0, pois ele não parece estar fazendo nada de útil no momento. Para fazer isso, estes comandos podem ser a solução mais simples:

systemctl stop [email protected]
systemctl disable [email protected]

O primeiro comando diz systemdpara parar de tentar iniciar o processo até a próxima reinicialização, o segundo comando irá marcá-lo persistentemente como desabilitado.

Até você usar o segundo comando, o primeiro comando pode ser desfeito simplesmente reiniciando o sistema. Portanto, se não tiver certeza, basta usar o primeiro comando e esperar alguns dias para ver se isso causa algum problema. Se você descobrir que sua VM está inacessível, uma simples reinicialização retornaria as coisas ao que costumavam ser.

Comona resposta do JdeBP, você também deve verificar suas opções de inicialização: se console=ttyS0estiver listado lá, systemdirá gerar automaticamente um gettyprocesso em /dev/ttyS0.

Responder3

Eu resolvi isso editando /etc/systemd/journald.confe configurando

MaxLevelSyslog=warning

informação relacionada