Systemd/agetty: セッション終了時にマシンを停止する

Systemd/agetty: セッション終了時にマシンを停止する

systemd ベースのコンテナーを実行する LXC では、コンテナーからコンソール・セッションに自動的に入ることができます。次の行を作成して変更すると、/etc/systemd/system/console-getty.service次のようになります。ExecStart

ExecStart=-/sbin/agetty --noclear -a <username> -s console 115200,38400,9600

ログインセッションをスキップして、特定のユーザーとして実行されているセッションに直接移動できます。

そのセッションの終わりに、マシンは自動的に停止したいと思います。 systemdまたはagettyでこれを設定する方法はありますか?ちなみに、ホストはUbuntu 12.04で、コンテナは最新のArchベースを実行しています。

答え1

答えは以下にありますconsole-shell.service

ExecStopPost=-/bin/systemctl poweroff

しかし、console-getty.serviceこれらの修正のためにコピーする必要はありません。以下を試してください。

# rm /etc/systemd/system/console-getty.service
# mkdir /etc/systemd/system/console-getty.service.d
# cat > /etc/systemd/system/console-getty.service.d/custom.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear -a <username> -s console 115200,38400,9600
ExecStop=-/bin/systemctl poweroff
EOF
# systemctl daemon-reload

最初の空のExecStart=エントリはから継承された値を消去します/lib/systemd/system/console-getty.service。システム単位ファイルをカスタマイズするこの方法の詳細については、次を参照してください。システムユニット(5):

foo.serviceディレクトリはユニットファイルとともにfoo.service.d/存在することができます。このディレクトリにサフィックスが付いたすべてのファイルは、.confファイル自体が解析された後に解析されます。これは、デバイスファイルを変更せずにデバイスの構成設定を変更または追加するのに役立ちます。含まれているファイルにディレクティブの前に適切なセクションヘッダーがあることを確認してください。

関連情報