システムコンテナの起動 - コンソールログインをバイパスする方法は?

システムコンテナの起動 - コンソールログインをバイパスする方法は?

私はLinuxコンテナを起動し、そのlxsessionをVNCスタイルのネストされたXサーバーにロードするためにsystemd-nspawnを使用しています。 (ゼファー) ここに画像の説明を入力してください。
スクリプト行ってこれをやってみてください。このスクリプトの主な問題の1つは、/ 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が実行されているコンソールに見苦しいプロンプトが表示されることがあります。これは取引の中断ではありませんが、注目に値する...

関連情報