시스템 시스템에서 VT 1을 포함한 모든 로그인 프롬프트를 비활성화하는 방법

시스템 시스템에서 VT 1을 포함한 모든 로그인 프롬프트를 비활성화하는 방법

저는 본질적으로 임베디드 Linux에서 X 기반 키오스크 프로그램을 실행하고 있으며 특정 구성에서 로그인 기능을 비활성화하고 싶습니다. 부팅 초기에 systemd 서비스의 Exec에서 일부 distro 비특정 콘솔 명령을 실행하여 첫 번째 가상 터미널의 로그인 프롬프트를 포함한 모든 로그인 프롬프트를 비활성화하여 systemd 서비스의 출력만 강제 VT에 표시되도록 하고 싶습니다. 또한 X 및 전체 화면 응용 프로그램을 시작하려면 다른 서비스가 필요합니다.

내 서비스 파일이 현재 주문되었습니다

Before=systemd-logind.service systemd-networkd.service NetworkManager.service dhclient.service
Before=MyKioskApp.service

WantedBy=basic.target

실행 파일이 실행됩니다.

for UNIT in systemd-logind.service systemd-networkd.service systemd-networkd.socket NetworkManager.service dhclient.service
do
    systemctl stop $UNIT
    systemctl mask --runtime $UNIT
done

다른 트릭과 결합하면 내가 원하는 대부분의 작업을 수행할 수 있지만 키오스크 앱에 오류가 발생하여 종료되면 여전히 로그인 프롬프트가 표시됩니다. 목록에 getty 서비스를 추가하면 뭔가 문제가 있는 것 같아서 X가 시작을 거부합니다. 일종의 PAM 모듈을 비활성화해야 한다고 생각하지만 해당 구성을 업데이트하기 위한 제안된 명령이 표시되지 않습니다. 이 작업에 새 패키지를 추가할 수는 없지만 파일 시스템을 수정할 수는 있습니다.

답변1

getty 서비스를 마스킹하는 것이 올바른 선택임이 밝혀졌습니다. console-getty.service를 추가하고[이메일 보호됨]차단된 서비스 목록은 TTY1의 로그인 프롬프트를 비활성화합니다. 실제로 systemd-logind는 추가 가상 터미널 세션을 시작하는 역할을 담당하고 getty는 이름과 직접적으로 모순되는 로그인 프롬프트를 제공하는 역할을 합니다.

관련 정보