半肾
精华
|
战斗力 鹅
|
回帖 0
注册时间 2020-6-24
|
本帖最后由 5long 于 2023-12-19 14:53 编辑
方法不少
最土的办法就是自己写 cron 脚本, 每分钟检查交流电是否还插着
高端一点的办法有 udev rule, 或者监听 UPower 触发的 d-bus 事件
稍微搜了一下发现有这个 udev rule 可以抄: https://wiki.archlinux.org/title ... n_low_battery_level
推荐抄这个按电池电量 + 放电状态触发的
把电量阈值调高一些
RUN 的命令再改成 poweroff
就能满足你的需求
这样的好处是: 临时把电脑拔下来换个地方, 很快再插上电, 不会触发关机.
另外关于这个事:Linux好像跟win不一样,长按电源不是安全关机。
长按电源键不能安全关机.
只要按的时间足够久
一般都是主板那边强制断电
这样在系统失去响应的时候也能有个办法关机
短按触发安全关机 -- 这个在 systemd 层面就实现了
换句话说, 没有桌面环境的服务器也能做到
只不过这个"安全"的程度仅限于给应用程序留出平滑退出的时间
掉引导这种事, 通常来说跟安全关机关系不大
除非是当时刚好在系统升级
意外断电导致文件系统 / 引导(是 MBR + Legacy 还是 GPT + UEFI ?)写入的状态不一致
话说回来, systemd 的确实现了 HandlePowerKeyLongPress= 来劫持长按关机键的功能
但这个劫持也是劫持不了主板断电的
而且就算劫持了, 再由用户自定义成 poweroff, 也是安全关机.
|
|