방금 전에 수정했어요 /etc/inittab
. 이제 systemd를 사용하면 tty[1-6]이 자동으로 시작되는 것 같습니다. tty[4-6]을 어떻게 비활성화해야 합니까?
%I
다른 tty 세션을 식별하기 위해 a를 사용하는 시스템 서비스 파일이 하나만 있는 것 같습니다 . 서비스를 삭제하고 각 서비스를 수동으로 생성할 필요가 없기를 바랍니다 [email protected]
.
답변1
systemd
getty는 요청 시 생성되므로 "추가" TTY를 실제로 비활성화할 필요는 없습니다. 참고 man systemd-getty-generator
자료를 참조하세요. 기본적으로 이 자동 생성은 VT6 이전 VT에서만 작동합니다(레거시 Linux 시스템을 에뮬레이션하기 위해).
~처럼Lennart는 블로그 게시물에서 다음과 같이 말했습니다.1 :
보다 효율적인 작업을 위해 이제 로그인 프롬프트는 요청 시에만 실행됩니다. VT로 전환하면 getty 서비스가 다음과 같이 인스턴스화됩니다.[이메일 보호됨],[이메일 보호됨]등. 더 이상 무조건 getty 프로세스를 시작할 필요가 없기 때문에 리소스를 절약하고 시작 속도를 조금 더 빠르게 할 수 있습니다.
logind.conf
특정 개수의 getties를 구성하려면 적절한 항목으로 수정하면 됩니다(이 예 3에서는).
NAutoVTs=3
1. 실제로 전체 시리즈 게시물(현재 18개)은관리자를 위한 시스템, 읽을 가치가 있습니다.
답변2
Debian 기반 시스템에서 방금 서버를 구축한 경우(dbus 서비스 없이) 시작 시 5개의 추가 getties가 시작되도록 하는 파일이 있습니다.
/lib/systemd/system/getty.target.wants/getty-static.service
내용은 다음과 같습니다:
[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start [email protected] [email protected] [email protected] [email protected] [email protected]
RemainAfterExit=true
추가 getty 생성을 방지하려면 이 파일을 삭제하기만 하면 됩니다. 추가 getty(2개의 virt 콘솔용)만 생성하려는 경우 목록을 줄이세요. tty1에서 자동으로 하나를 얻으므로 항상 최소한 하나의 가상 콘솔을 갖게 됩니다.
답변3
특정 TTY 4-6에서 getty를 비활성화하고 1-3 및 7-9가 계속 작동하도록 허용하려면 다음을 실행합니다.
for i in {4..6}; do
systemctl mask getty@tty${i}.service
done
mask
/etc/systemd/system/{name} -> /dev/null
서비스를 효과적으로 비활성화하는 심볼릭 링크를 만듭니다 . 그것을 통해 실행 systemctl start
하려고Failed to start NAME.service: Unit NAME.service is masked.
A.service가 있으면 Wants=masked.service
성공 start A
하지만 로그에 종속성 시작 오류도 생성됩니다.
B.service 가 있으면 Requires=masked.service
그것도 start B
실패합니다.
예, 언데드 답변입니다. 건배.