家建服务器折腾笔记(一)— Linux 笔记本合盖休眠
背景
很久之前就规划要在自己家里放一台电脑在家里跑一些服务(电费比起云服务器的费用来说简直小巫见大巫)。因此去年搬了新家以后第一时间将此事提上日程,装修好以后翻出了我尘封已久的不用的笔记本电脑。虽然键盘摁起来非常的难受,但是服务器嘛,也不需要输入什么东西。因此围绕这个笔记本,开启了家建服务器的折腾之路。
问题
笔记本做好Linux系统以后,合盖后它是默认休眠,因此需要更改配置来让他合盖后仍然可以运行
解决
通过修改 /etc/systemd/logind.conf 文件来使的生效
HandleLidSwitch=ignore # 笔记本合盖时的行为(通常为suspend)
HandleLidSwitchExternalPower=ignore # 接通电源时合盖的行为
如果没有这个文件,那么就需要新建,此时需要添加 [Login] 节标识 ,新添加的文件如下:
[Login]
# ...其余配置
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
# ...其余配置
修改后,重启服务使配置生效
sudo systemctl restart systemd-logind
扩展
logind.conf配置文件
/etc/systemd/logind.conf 是 systemd-logind 服务的主配置文件,负责管理用户登录会话、电源管理事件和设备权限等关键系统功能。
systemd-logind 服务主要负责:
- 用户会话的跟踪和管理
- 电源按钮、休眠、挂起等操作的处理
- 设备访问权限的控制
- 多用户环境下的资源管理
logind.conf主要配置项
会话管理配置
| 配置项 | 可能的值 | 默认值 | 含义 |
|---|---|---|---|
| NAutoVTs= | 正整数 | 6 | 自动分配的虚拟终端数量(tty1-tty6) |
| ReserveVT= | 正整数 | 6 | 保留给特殊用途的虚拟终端号 |
| KillUserProcesses= | yes/no | no | 用户完全注销后是否杀死其所有进程 |
| KillOnlyUsers= | 用户列表 | - | 指定注销后要杀死进程的特定用户 |
| KillExcludeUsers= | 用户列表 | root | 指定不杀死其进程的用户(通常包括root) |
| InhibitDelayMaxSec= | 时间(秒) | 5s | 应用程序可以延迟关机的最长时间 |
| UserStopDelaySec= | 时间(秒) | 10s | 用户会话终止到实际杀死进程的延迟 |
| RemoveIPC= | yes/no | yes | 用户注销后是否删除其IPC对象(共享内存等) |
| LoginRetryLimit= | 正整数 | 5 | 认证失败的最大重试次数 |
| StopIdleSessionSec= | 时间 | infinity | 空闲会话多久后自动停止 |
电源管理配置
| 配置项 | 可能的值 | 默认值 | 含义 |
|---|---|---|---|
| HandlePowerKey= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | poweroff | 按下电源键的行为 |
| HandleSuspendKey= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | suspend | 按下暂停键的行为 |
| HandleHibernateKey= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | hibernate | 按下休眠键的行为 |
| HandleLidSwitch= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | suspend | 笔记本合盖的行为 |
| HandleLidSwitchExternalPower= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | suspend | 接通电源时合盖的行为 |
| HandleLidSwitchDocked= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | ignore | 连接到扩展坞时合盖的行为 |
| IdleAction= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | ignore | 系统空闲时执行的操作 |
| IdleActionSec= | 时间 | 30min | 系统空闲多久后执行IdleAction |
抑制锁相关配置
| 配置项 | 可能的值 | 默认值 | 含义 |
|---|---|---|---|
| PowerKeyIgnoreInhibited= | yes/no | no | 是否忽略对电源键操作的抑制 |
| SuspendKeyIgnoreInhibited= | yes/no | no | 是否忽略对暂停键操作的抑制 |
| HibernateKeyIgnoreInhibited= | yes/no | no | 是否忽略对休眠键操作的抑制 |
| LidSwitchIgnoreInhibited= | yes/no | yes | 是否忽略对合盖操作的抑制 |
| HoldoffTimeoutSec= | 时间 | 30s | 系统启动后忽略电源事件的时间 |
资源和权限管理
| 配置项 | 可能的值 | 默认值 | 含义 |
|---|---|---|---|
| RuntimeDirectorySize= | 字节数/百分比 | 10% | 每用户运行时目录(/run/user/$UID)的大小限制 |
| RuntimeDirectoryInodesMax= | inode数/infinity | infinity | 每用户运行时目录的最大inode数 |
| UserTasksMax= | 任务数/infinity | 33% | 每用户最大任务(进程)数量 |
| SessionsMax= | 整数/infinity | 8192 | 系统允许的最大会话数 |
| InhibitorsMax= | 整数/infinity | 8192 | 最大抑制锁数量 |
设备相关配置
| 配置项 | 可能的值 | 默认值 | 含义 |
|---|---|---|---|
| EnableMultiSession= | yes/no | yes | 是否启用多会话支持(允许多用户同时登录) |
| HandleRebootKey= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | reboot | 按下重启键的行为 |
| HandleRebootKeyLongPress= | ignore/poweroff/reboot/halt/kexec/suspend/hibernate/hybrid-sleep/lock/factory-reset | poweroff | 长按重启键的行为 |
配置中可能值的说明
| 可能值 | 详细说明 |
|---|---|
| ignore | 完全忽略该事件,不执行任何操作。系统继续正常运行。 |
| poweroff | 正常关闭系统电源。会通知所有进程关闭,保存数据,卸载文件系统,最后切断电源。相当于执行 systemctl poweroff 命令。 |
| reboot | 重新启动系统。会正常关闭所有程序和服务,然后重启硬件。相当于执行 systemctl reboot 命令。 |
| halt | 停止系统运行但不切断电源。系统停止但硬件仍保持通电状态,相当于执行 systemctl halt 命令。 |
| kexec | 使用 kexec 系统调用执行快速重启,跳过 BIOS/UEFI 初始化阶段直接加载新内核。通常用于无缝系统更新或故障转储。 |
| suspend | 挂起到内存(也称为睡眠模式,ACPI S3状态)。系统状态保存在RAM中,大部分硬件断电,仍消耗少量电力维持RAM内容。唤醒较快。 |
| hibernate | 休眠(ACPI S4状态)。系统状态完整保存到硬盘,然后完全断电。启动时从硬盘恢复状态。无需电力维持,但唤醒较慢。 |
| hybrid-sleep | 混合睡眠模式,结合suspend和hibernate的优点。状态同时保存到内存和硬盘,正常情况下像挂起一样快速唤醒,但如果电源耗尽也可从硬盘恢复。 |
| lock | 仅锁定屏幕,不改变系统电源状态。通常会激活屏幕保护程序或显示登录界面,要求用户输入密码才能继续使用。 |
| factory-reset | 将系统恢复到出厂设置,会清除所有用户数据。通常需要特殊配置才能使用此功能,以防止意外触发。 |

浙公网安备 33010602011771号