systemd - 기본 로그인 tty 변경

systemd - 기본 로그인 tty 변경

DM 없이 Arch에서 xfce를 실행하고 있습니다. xorg-xinit를 사용하여 x를 시작합니다. 기본적으로 부팅 후 tty1에 로그인 프롬프트가 표시되고 모든 것이 잘 작동합니다.

그러나 Ctrl+Alt+F6을 수동으로 누르지 않고도 tty6(또는 기타)의 로그인 프롬프트에서 제거된 기본 동작을 변경하고 싶습니다.

저는 다양한 리소스, Arch wiki, man 페이지,http://0pointer.de/blog/projects/systemd-docs.html, 등.

그러나 나는 아직도 이해하지 못한다.

/etc/systemd/system/getty.target.wants/ 파일을 수동으로 추가하고 제거해 보았습니다.[이메일 보호됨]그리고[이메일 보호됨]. 또는 systemctl을 사용하여 활성화 및 비활성화합니다.

테스트로 /usr/lib/systemd/system/의 마지막 줄도 편집하십시오.[이메일 보호됨]DefaultInstance=tty1 ~ DefaultInstance=tty7 및 위의 모든 조합. 유효한 경우 /etc/systemd/system에 생성됩니다.

나는 아치 포럼에 질문했고 대부분 귀뚜라미 소리가 나는 매우 일반적인 응답을 받았습니다. 어떤 이유로든 내가 하고 싶은 일에 반대하는 사람이 있나요?

나는 chvt가 포함된 bash one liner를 호출하는 /etc/systemd/system에 서비스 파일을 생성했습니다. 이것은 내가 원하는 것을 제공하지만 이제 tty1에서 지우지 않도록 설정한 부팅 메시지를 스크롤할 수 없습니다. 이 솔루션은 또한 나쁜 추가 기능 해킹처럼 보입니다.

이를 수행하는 올바른 방법은 무엇입니까?

답변1

DefaultInstance는 상위 서비스여야 하는 인스턴스가 아니라 서비스의 systemd 인스턴스를 나타냅니다. Debian을 포함한 많은 Linux 배포판에서 inittab은 여전히 ​​tty가 생성되는 곳입니다. 서비스 파일은 이를 추적하기 위해 어느 정도 존재합니다.

일반적으로 디스플레이 관리자는 시작 tty를 결정하고 tty7 이상에서 하나를 생성한 다음 chvt와 마찬가지로 해당 tty로 전환합니다. xinit를 사용하지 않기 때문에 새로운 tty를 생성하지 않으므로 현재 TTY에서 X를 엽니다. X는 일반적으로 tty6 대신 tty7을 사용합니다. 여기에서 Arch Linux 위키를 참조해야 합니다.https://wiki.archlinux.org/index.php/Xinitxinit 사용법에 대해.

따라서 귀하의 옵션은 다음과 같습니다.

  • 창 관리자 사용
  • 여러 좌석을 이용하세요
  • 자동 로그인

즉, 창 관리자가 세션 인증 처리를 담당합니다. 이것이 없으면 이 목적을 위해 로그인된 tty에 의존하게 됩니다. 따라서 다른 것으로 전환하려면 로그인도 필요합니다. 이 경우 전환하고 어쨌든 로그인해야 합니다(또는 자동 로그인을 사용해야 함). 이것이 바로 디스플레이 관리자가 로그인 자격 증명을 묻는 이유입니다.

설정이 올바른 경우 창 관리자가 수행하는 작업을 다시 확인하지 않는 한 startx가 tty에 바인딩되어 있으므로 자동으로 로그인하지 않으면 tty를 전환할 수 없습니다.

답변2

해결되었습니다!

좋아, 더 이상 응답이 없으므로 재부팅 후 tty7에 로그인 프롬프트가 표시되도록 하기 위해 내가 수행한 작업에 대한 세부 정보를 공유하겠습니다.

1) ~/bin에 한 줄 스크립트 "change.login.tty"를 생성했습니다.

2) /etc/systemd/system/에 시스템 서비스 파일 "change.login.tty.service"를 생성합니다.

3) "change.login.tty.service"를 활성화합니다.

$ systemctl enable change.login.tty.service

4) /etc/systemd/logind.conf를 #NAutoVTs=7 및 #ReserveVT=6으로 편집합니다.

5) tty7에서 getty를 시작합니다(필요하지 않을 수도 있음).

$ systemctl enable getty@tty7

6) 재부팅하고 tty7에 메시지가 표시되면 로그인하여 즐기세요.

~/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%

단순히 투표하거나 오류를 지적하는 대신 게시하여 오류를 수정하거나 더 간단한 해결책을 설명해주세요.

그것은 나를 위해 일했으며 결과는 다를 수 있습니다.

관련 정보