![如果按下电源按钮失败,如何尝试休眠然后关机?](https://linux22.com/image/873755/%E5%A6%82%E6%9E%9C%E6%8C%89%E4%B8%8B%E7%94%B5%E6%BA%90%E6%8C%89%E9%92%AE%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%A6%82%E4%BD%95%E5%B0%9D%E8%AF%95%E4%BC%91%E7%9C%A0%E7%84%B6%E5%90%8E%E5%85%B3%E6%9C%BA%EF%BC%9F.png)
我已经找到了如何使用 logind 在按下电源按钮时进入休眠状态:
HandlePowerKey=hibernate
在/etc/systemd/logind.conf
但是我可以让它以某种方式执行类似的事情吗
# pm-hibernate || shutdown -h
?
答案1
不,您不能使用
HandlePowerKey
entry for进行该设置systemd
。它不是脚本钩子,只是预定义的选项。HandlePowerKey=, HandleSuspendKey=, HandleHibernateKey=, HandleLidSwitch=, HandleLidSwitchDocked=
控制 logind 是否应处理系统电源和睡眠键以及盖子开关以触发系统关机或挂起等操作。可以是“ignore”、“poweroff”、“reboot”、“halt”、“kexec”、“suspend”、“hibernate”、“hybrid-sleep”和“lock”之一。如果为“ignore”,logind 将永远不会处理这些键。如果为“lock”,则所有正在运行的会话都将被屏幕锁定;否则,将在相应事件中采取指定的操作。只有带有“power-switch”udev 标签的输入设备才会被监视按键/盖子开关事件。HandlePowerKey= 默认为“poweroff”。HandleSuspendKey= 和 HandleLidSwitch= 默认为“suspend”。HandleLidSwitchDocked= 默认为“ignore”。HandleHibernateKey= 默认为“hibernate”。如果系统插入扩展坞,或者连接了多个显示器,则会发生 HandleLidSwitchDocked= 指定的操作;否则会发生 HandleLidSwitch= 操作。
参考:
man logind.conf
有一种可能有效的方法,将其设置为
ignore
然后设置一个关机键挂钩,/etc/acpi/events/
如下所述耳机断开连接时会执行什么代码?(这是你的问题,对吧:))