Nos velhos tempos eu apenas modifiquei /etc/inittab. Agora, com o systemd, parece iniciar o tty [1-6] automaticamente, como devo desabilitar o tty [4-6]?
Parece que há apenas um arquivo de serviço systemd e ele usa a %Ipara discernir diferentes sessões tty. Espero não precisar remover esse serviço e criar cada um [email protected]manualmente.
Não há necessidade real de desabilitar TTYs "extras", pois em systemdgettys são gerados sob demanda: veja man systemd-getty-generatordetalhes. Observe que, por padrão, essa geração automática é feita apenas para os VTs até VT6 (para imitar sistemas Linux tradicionais).
Para tornar as coisas mais eficientes, os prompts de login agora são iniciados somente sob demanda. À medida que você muda para as VTs, o serviço getty é instanciado para [email protected], [email protected] e assim por diante. Como não temos mais que iniciar incondicionalmente os processos getty, isso nos permite economizar um pouco de recursos e torna a inicialização um pouco mais rápida.
Se você deseja configurar um número específico de gettys, basta modificar logind.confcom a entrada apropriada, neste exemplo 3:
NAutoVTs=3
1. De fato , vale a pena ler toda a série de postagens - atualmente com o número 18 - systemd para Administradores .
Obrigado pela resposta, Jason. O aplicativo da minha empresa é enviado em um servidor físico e, em distribuições mais antigas, modificaríamos o inittab para bloquear outros ttys.
jcbwlkr
11
Nos sistemas Debian, existe um arquivo que causa o lançamento de 5 gettys extras na inicialização, se você acabou de criar um servidor (sem o serviço dbus):
A exclusão desse arquivo interromperá a desova do getty extra. Sinta-se à vontade para encurtar a lista se quiser gerar apenas uma getty extra (para 2 consoles virtuais). Observe que você automaticamente obtém um em tty1, portanto sempre possui pelo menos um console virtual.
Nota: o arquivo pertence ao pacote systemd; portanto, para modificá-lo ou excluí-lo, use dpkg-divertprimeiro. Mas, há também uma maneira systemd nativo para obtê-lo fora do caminho - prazo sudo systemctl mask getty-static.servicee criar o seu próprio em/etc
Josip Rodin
2
maskSe um serviço ativado for barulhento , seria mais fácil criar uma unidade com o mesmo nome /etcpara substituir seu conteúdo. Use ExecStart = / bin / true se desejar iniciar zero gettys estáticos.
sourcejedi
a outra maneira correta do systemd é substituir a versão do pacote (você NUNCA deve excluir esse arquivo) usando sudo systemctl edit getty-static.service, o que criará um arquivo de substituição que tem precedência sobre o /libone
ryeager
8
Para desativar gettys em TTYs específicos 4-6, deixando possivelmente 1-3 e 7-9 funcionando, execute:
for i in {4..6}; do
systemctl mask getty@tty${i}.service
done
maskcria um link simbólico /etc/systemd/system/{name} -> /dev/nullque desativa efetivamente o serviço. A tentativa de executá-lo systemctl startexibirá um erroFailed to start NAME.service: Unit NAME.service is masked.
Se você tiver um serviço A. Wants=masked.service, start Aterá êxito, mas também gerará erro de início de dependência no diário.
Se você tiver B.service Requires=masked.service, start Btambém falhará.
Nos sistemas Debian, existe um arquivo que causa o lançamento de 5 gettys extras na inicialização, se você acabou de criar um servidor (sem o serviço dbus):
Nele, diz:
A exclusão desse arquivo interromperá a desova do getty extra. Sinta-se à vontade para encurtar a lista se quiser gerar apenas uma getty extra (para 2 consoles virtuais). Observe que você automaticamente obtém um em tty1, portanto sempre possui pelo menos um console virtual.
Consulte também: systemd-logind.service falha ao iniciar se o dbus estiver ausente
fonte
dpkg-divert
primeiro. Mas, há também uma maneira systemd nativo para obtê-lo fora do caminho - prazosudo systemctl mask getty-static.service
e criar o seu próprio em/etc
mask
Se um serviço ativado for barulhento , seria mais fácil criar uma unidade com o mesmo nome/etc
para substituir seu conteúdo. Use ExecStart = / bin / true se desejar iniciar zero gettys estáticos.sudo systemctl edit getty-static.service
, o que criará um arquivo de substituição que tem precedência sobre o/lib
onePara desativar gettys em TTYs específicos 4-6, deixando possivelmente 1-3 e 7-9 funcionando, execute:
mask
cria um link simbólico/etc/systemd/system/{name} -> /dev/null
que desativa efetivamente o serviço. A tentativa de executá-losystemctl start
exibirá um erroFailed to start NAME.service: Unit NAME.service is masked.
Se você tiver um serviço A.
Wants=masked.service
,start A
terá êxito, mas também gerará erro de início de dependência no diário.Se você tiver B.service
Requires=masked.service
,start B
também falhará.Sim, necroanswer. Felicidades.
fonte