Como obter menos ttys com o Systemd?

26

Nos velhos tempos, apenas modifiquei /etc/inittab . Agora, com o systemd, parece iniciar automaticamente [1-6], como devo desativar o tty [4-6]?

Parece que há apenas um arquivo de serviço systemd e usa %I para discernir diferentes sessões tty. Espero não precisar remover esse serviço e criar cada [email protected] manualmente.

    
por daisy 24.11.2012 / 07:40

3 respostas

33

Não há necessidade real de desativar TTYs "extras", pois em systemd gettys são gerados sob demanda: veja man systemd-getty-generator para detalhes. Note que, por padrão, esta desova automática é feita apenas para os VTs até o VT6 (para imitar os sistemas Linux traditonal).

Como Lennart diz em uma postagem no blog 1 :

In order to make things more efficient login prompts are now started on demand only. As you switch to the VTs the getty service is instantiated to [email protected], [email protected] and so on. Since we don't have to unconditionally start the getty processes anymore this allows us to save a bit of resources, and makes start-up a bit faster.

Se você deseja configurar um número específico de gettys, basta modificar logind.conf com a entrada apropriada, neste exemplo 3:

NAutoVTs=3


1. Na verdade, toda a série de posts - atualmente com 18 - systemd para administradores , está bem vale a pena ler.

    
por 24.11.2012 / 08:10
11

Em sistemas baseados em Debian, existe um arquivo que faz com que 5 extra gettys sejam iniciados na inicialização se você acabou de construir um servidor (sem serviço dbus):

/lib/systemd/system/getty.target.wants/getty-static.service

Nele, diz:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start [email protected] [email protected] [email protected] [email protected] [email protected]
RemainAfterExit=true

Apenas deletar este arquivo irá impedir que o getty extra apareça. Sinta-se à vontade para encurtar a lista se você quiser apenas gerar um getty extra (para 2 consoles virt). Note que você obtém automaticamente um em tty1 para ter sempre pelo menos um console virtual.

Veja também: systemd-logind.service falha ao iniciar se o dbus estiver faltando

    
por 10.08.2015 / 00:31
4

Para desativar gettys em determinados TTYs de 4 a 6, deixando possivelmente 1-3 e 7-9 funcionando, execute:

for i in {4..6}; do
  systemctl mask getty@tty${i}.service
done

mask cria o symlink /etc/systemd/system/{name} -> /dev/null , o que efetivamente desativa o serviço. A tentativa de executá-lo por meio de systemctl start exibirá o erro Failed to start NAME.service: Unit NAME.service is masked.

Se você tiver A.service Wants=masked.service , então 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 , então start B também falhará.

Sim, necroanswer. Felicidades.

    
por 03.03.2016 / 19:58