systemd - Alterar login padrão tty

2

Estou executando o xfce no Arch sem um DM. Usando xorg-xinit para startx. Por padrão, após a inicialização, recebo um prompt de login em tty1 e tudo é bom.

No entanto, eu gostaria de mudar o comportamento padrão para ser descartado em um prompt de login no tty6 (ou qualquer outro) sem ter que manualmente Ctrl + Alt + F6.

Eu passei um bocado de tempo lendo várias fontes, Arch wiki, man pages, link , etc.

No entanto, ainda não entendi.

Eu tentei adicionar e excluir manualmente os arquivos, /etc/systemd/system/getty.target.wants/[email protected] e [email protected]. Como alternativa, também usei systemctl para ativá-los e desativá-los.

Como teste, também editando a última linha de /usr/lib/systemd/system/[email protected] DefaultInstance = tty1 para DefaultInstance = tty7 e combinações de todas as opções acima. Teria criado em / etc / systemd / system se funcionasse.

Eu perguntei nos fóruns do Arch e recebi uma resposta muito geral, principalmente o chilrear dos grilos. É o que eu estou tentando fazer desaprovado por algum motivo?

Acabei de criar um arquivo de serviço em / etc / systemd / system que chama um bash um liner com chvt nele. Isso me dá o que eu queria, mas agora não posso rolar as mensagens de inicialização que eu configurei para não limpar em tty1. Esta solução também parece ser uma má adição ao hack.

Qual seria a maneira correta de fazer isso?

    
por Dom 23.10.2017 / 20:41

2 respostas

1

Resolvido!

OK, devido à falta de mais respostas, eu vou compartilhar os detalhes do que eu fiz, para acabar em um prompt de login no tty7 após a reinicialização.

1) Criamos um script de uma linha "change.login.tty" em ~ / bin

2) Criado um arquivo de serviço do systemd, "change.login.tty.service" em / etc / systemd / system /

3) Ativado "change.login.tty.service"

$ systemctl enable change.login.tty.service

4) Editado /etc/systemd/logind.conf para # NAutoVTs = 7 e # ReserveVT = 6

5) Inicie o getty em tty7, (provavelmente desnecessário)

$ systemctl enable getty@tty7

6) Reinicie, faça o login no prompt do tty7 e aproveite.

~ / bin / change.login.tty

#!/bin/bash
# This changes the login tty #
chvt 7

/etc/systemd/system/change.login.tty.service

[Unit]
Description=Change login tty number.

[Service]
Type=idle
ExecStart=/home/[user name]/bin/change.login.tty

[Install]
WantedBy=multi-user.target

/etc/systemd/logind.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.

[Login]
#NAutoVTs=7
#ReserveVT=7
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#UserTasksMax=33%

Corrija erros ou explique soluções mais simples por meio de postagem, em vez de apenas votar ou apontar erros.

Funcionou para mim, seus resultados podem variar.

    
por 28.10.2017 / 19:26
2

O DefaultInstance refere-se a instâncias do systemd de um serviço, não qual deve ser pai. Em muitas distribuições Linux, incluindo Debian inittab ainda é o que gera ttys. O arquivo de serviço existe mais ou menos para rastreá-lo.

Normalmente, o gerenciador de tela decide o início do tty e gera um no tty7 ou acima, e então muda para ele da mesma forma que o chvt. Como você não está usando um xinit NÃO gera um novo tty, ele só abre X no TTY atual. Note que X geralmente está usando tty7 não tty6. Você deve consultar o wiki do Arch Linux aqui: link sobre como usar o xinit.

Então, suas escolhas são:

  • Use um gerenciador de janelas
  • Use assento múltiplo
  • login automático

Para colocar isso de outra maneira, o gerenciador de janelas é o que lida com a autenticação de sessão. Sem isso, você confia no tty como logado para essa finalidade. Então, mudar para outro exige que ele também seja registrado, caso em que você teria que mudar para ele e fazer login de qualquer maneira (ou usar o login automático). É por isso que o gerenciador de exibição é o que pede suas credenciais de login.

Dada a sua configuração da maneira correta, você não pode alternar o ttys, a menos que faça login automático, porque o startx está ligado ao tty, a menos que você autentique novamente, o que é o que um gerenciador de janelas faz.

    
por 24.10.2017 / 05:12

Tags