como desativar o console serial após o boot bem-sucedido (systemd / grub2)

2

Eu habilito o console serial durante o processo de inicialização no centos7 que usa grub2 e systemd (ao invés de inittab)

Eu gostaria de desfazer a entrada / saída serial no final da inicialização, após um início completamente bem-sucedido, por motivos de segurança.

Como posso conseguir isso?

Atualização:

Eu descobri, passando pelos serviços do systemd, que o console é reconhecido / ativado através dele mesmo que o grub2 tenha iniciado, então isso o desativa, eu acho.

systemctl stop [email protected]

Como posso fazer isso acontecer automaticamente depois de um início bem-sucedido, onde todos os outros serviços ficaram on-line. Eu poderia usar rc.local , mas este é o init.d legacy e não leva em consideração que outros serviços estão online corretamente.

    
por ck_ 20.12.2014 / 09:16

2 respostas

2

Isso parece terrivelmente hacky, mas faz o trabalho. Parará o terminal serial após a inicialização da máquina.

/etc/systemd/system/killconsole.service:

[Unit]
Description=kill console after boot
After=default.target

[Service]
Type=simple
ExecStart=/bin/systemctl stop [email protected]

[Install]
WantedBy=default.target

Em seguida, basta executar systemctl enable /etc/systemd/system/killconsole.service para ativar a unidade.

Você também pode acionar o procedimento acima usando uma unidade temporizadora separada que não fogo até X minutos após a inicialização. Se você tentar, não se esqueça de extrair a seção Install do serviço e executar um systemctl disable para removê-la da lista de default.target .

Observe que a definição de 'boot bem-sucedido' pode variar. Por exemplo, se a rede da caixa for fechada, todos os serviços podem começar bem, mas você ainda pode precisar de acesso serial. Como tal, eu recomendo criar um script pequeno para garantir que o sistema esteja ativo e bem (e na rede) e colocando-o em uma opção ExecStartPre . Se o script Pré retornar um código de saída com falha, o serviço não será executado e o console serial não será desativado.

    
por 22.12.2014 / 10:37
0

Isso pode ser conseguido meu mascaramento desse serviço:

systemctl mask [email protected]

Parabéns para esta resposta .

    
por 09.07.2015 / 19:33