시스템 컨테이너 시작 - 콘솔 로그인을 우회하는 방법은 무엇입니까?

시스템 컨테이너 시작 - 콘솔 로그인을 우회하는 방법은 무엇입니까?

나는 Linux 컨테이너를 시작하고 해당 lxsession을 VNC 스타일 중첩 X 서버에 로드하기 위해 systemd-nspawn을 사용하고 있습니다. (제퍼) 여기에 이미지 설명을 입력하세요.
나는스크립트가서 이것을 해보세요. 이 스크립트의 주요 문제점 중 하나는 /etc/profile을 통해 GUI를 시작하기 전에 컨테이너 콘솔에 로그인해야 한다는 것입니다.

내 문제는 다음과 같습니다. 먼저 사용자에게 수동으로 로그인하도록 요청하지 않고 그래픽 응용 프로그램을 자동으로 시작하는 방법을 찾고 있습니다. 나는 시도했다:

  • 콘솔이 자동으로 로그인하도록 허용lightdm 사용. lightdm이 항상 시작되지 않기 때문에 작동하지 않습니다.
    여기에 이미지 설명을 입력하세요.
  • lxsession을 포그라운드에서 실행할 수 있는 자동 시작 방법을 찾고 있습니다. 나는 /etc/rc.local만 알고 있습니다. 작동하지만 환경 변수가 모두 엉망이고 "PID XXX에 대한 세션 없음"이라는 대화 상자가 있습니다.
  • 스크립트가 사용자 이름과 비밀번호를 입력하도록 합니다. 많은 컨테이너가 기본 "라즈베리" 이외의 비밀번호를 사용하므로 나쁜 생각입니다.

답변1

아치 위키에서:

systemd-nspawn 컨테이너에 대한 자동 로그인을 구성하려면 console-getty.service를 재정의하세요.

# /etc/systemd/system/console-getty.service.d/override.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin username --keep-baud console 115200,38400,9600 $TERM

machinectl login my-container메소드를 사용하여 컨테이너에 액세스 하는 경우 의사 tty를 관리하는 템플릿 --autologin USERNAME에도 이를 추가해야 합니다.[email protected]pts/[0-9]

# /etc/systemd/system/[email protected]/override.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin username --keep-baud pts/%I 115200,38400,9600 $TERM

나는 이것을 실제로 사용했다.NS박스문제가 하나 있습니다. agetty는 계속해서 쉘을 시작하므로 bashrc/zshrc가 실행되고 nspawn이 실행 중인 콘솔에 보기 흉한 프롬프트가 인쇄될 수 있습니다. 이것은 거래 중단은 아니지만 주목할 가치가 있습니다 ...

관련 정보