Answers:
简而言之,您通常应该更喜欢发行版集成的挂起模式。对于系统发行的发行版,通常是systemctl suspend
。
例如,Arch Linux维基说:
systemd提供了用于挂起,休眠和混合挂起的本机命令,有关详细信息,请参见“使用systemd进行电源管理”。这是Arch Linux中使用的默认接口。
使用systemd时,
pm-utils
不再使用其钩子,而是使用systemd-suspend
。
您要坚持使用发行版的原因是,它们关心暂停/恢复的软件包将附带与pm-utils
(/usr/lib/pm-utils/sleep.d
)或systemd
(/usr/lib/systemd/system-sleep/
)集成的钩子脚本,因此您应该使用相同的接口才能拥有所有适当的接口。钩子按预期运行。
此外,发行版通常会将适当的挂起/休眠方法挂接到ACPI,以用于硬件事件,桌面环境(用于允许挂起/休眠的关机按钮)以及屏幕保护程序/锁定等。
无论pm-suspend
与systemd-suspend
通常使用相同的接口,真正把计算机进入睡眠状态。
两者都默认使用内核的暂挂驱动程序(通过写入/sys/power/state
),并且都支持外部暂挂驱动程序(如uswsusp
,有关如何将其挂接到systemd的详细信息,请参见此处)。
它们都支持在挂起或恢复过程中调用的配置文件和挂钩脚本,主要区别在于文件的位置(挂钩的API非常相似):
pm-utils
从文件中读取其配置,/etc/pm/config.d
并从/etc/pm/sleep.d
和/usr/lib/pm-utils/sleep.d
目录执行挂钩。systemd-suspend
从/etc/systemd/sleep.conf
文件(或目录中的sleep.conf.d
文件)读取其配置,并从执行钩子/usr/lib/systemd/system-sleep/
。因此,从这个角度来看,两者看起来非常相似...
但是systemd进一步支持挂起/休眠/恢复,因为:
systemctl suspend
当然仍然可以选择运行。)通常通过D-Bus而不是通过运行命令来触发挂起在桌面环境中很有用。因此,即使两者pm-utils
并systemd-suspend
实现实际在大约相同的方式暂停系统,与系统的其他部件的整合使得它如此它的问题,其中一个叫...而上分布航运systemd,则systemctl suspend
通常是合适的人打电话。
pm-utils
默认情况下未安装,并且似乎依赖systemctl
,但是其中/usr/lib/pm-utils/sleep.d/
包含东西并且/usr/lib/systemd/system-sleep/
不存在。但是,我的确看到了/lib/systemd/system-sleep/
以及下的更多内容/snap/
,所有这些文件中都有一个或两个文件。