Systemd
Systemd/agetty:會話結束時停止機器
使用 LXC 執行基於 systemd 的容器,它會自動進入容器上的控制台會話。通過創建和修改
/etc/systemd/system/console-getty.service
以具有如下所示的ExecStart
行:ExecStart=-/sbin/agetty --noclear -a <username> -s console 115200,38400,9600
可以跳過登錄會話並直接進入以特定使用者身份執行的會話。
我想要的是在此會話結束時自動停止機器。有沒有辦法在systemd或agetty中配置它?作為參考,主機是 Ubuntu 12.04,容器執行的是相當新的 Arch 基礎。
答案可以在
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
。有關此自定義 systemd 單元文件的方法的更多資訊,請參閱systemd.unit(5):與單元文件一起,
foo.service
目錄foo.service.d/
可能存在。該目錄下所有後綴為後綴.conf
的文件都會在文件本身解析完成後進行解析。這對於更改或向單元添加配置設置很有用,而無需修改其單元文件。確保包含的文件在任何指令之前具有適當的節標題。