Elogind

来自 阿尔派 Linux

elogind 从 "logind" - systemd 登录管理器中提取出来,成为一个独立的守护进程,并通过为桌面环境或窗口管理器设置必要的权限来提供 Seat manager 支持,并通过 loginctl 命令处理关机、重启、挂起和休眠。

安装

# apk add elogind # rc-update add elogind # rc-service elogind start

Polkit 用于身份验证。没有它,某些功能可能无法正常工作。您需要安装和配置 D-Bus 才能使用 polkit。

# apk add polkit-elogind # rc-update add polkit # rc-service polkit start

设置 PAM 登录。

休眠

为了

# loginctl hibernate

工作,您必须有一个交换分区。检查

# lsblk

以查找挂载点为 [SWAP] 的分区。

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 953.9G  0 disk 
├─nvme0n1p1 259:1    0   200M  0 part /boot
├─nvme0n1p2 259:2    0   100G  0 part /
├─nvme0n1p3 259:3    0   805G  0 part /home
└─nvme0n1p4 259:4    0  48.7G  0 part [SWAP]

还要记住添加内核参数以恢复,例如在 /etc/default/grub 中

/etc/default/grub 的内容

... GRUB_CMDLINE_LINUX_DEFAULT="modules=sd-mod,usb-storage,ext4,nvme quiet rootfstype=ext4 resume=/dev/nvme0n1p4"

请注意带有标记为 [SWAP] 的相同分区的 "resume=" 标志。

恢复过程可以通过减小休眠镜像的大小来加速。有关详细信息,请参阅内核文档中关于 image_size 的文档,但将 0 写入 /sys/power/image_size 应该使镜像尽可能小。

配置

编辑系统范围的配置文件 /etc/elogind/logind.conf 以配置电源事件的处理,例如在按下电源按钮时挂起计算机

/etc/elogind/logind.conf 的内容

... [Login] HandlePowerKey=suspend ...

如果使用窗口管理器或桌面环境,例如 Sway,用户必须确保正确配置登录会话。正确配置后,loginctl 命令应输出以下内容

使用 SwaySDDM

~$ loginctl SESSION UID USER SEAT TTY c1 105 sddm seat0 c2 1000 User seat0 tty8 2 sessions listed.

如果输出为 No session available.,例如从 tty 启动 Sway 的情况,挂起和许多其他功能将无法工作。然后,用户必须配置显示管理器,例如 greetd, SDDMlightdm

由于 loginctl 需要特权提升,因此允许用户成为 wheel 组的一部分,或配置 doas 以允许以非特权用户身份运行它。

选项 1

# optionally, allow $USER root access with password
adduser $USER wheel

选项 2

Doas 用于授予 RAM 挂起的权限。在 doas 配置文件 /etc/doas.conf 中,设置

permit nopass $USER as root cmd /bin/loginctl

设置上述内容后,可以通过运行以下命令触发 RAM 挂起

$ /bin/loginctl suspend

参见