pm-suspend 與 systemctl 暫停?
對於使用 systemd 的 Linux 發行版,這兩個命令之間有實際區別嗎?
systemctl suspend
pm-suspend
我應該使用還是更喜歡哪個?
簡而言之,您通常應該更喜歡發行版集成的掛起模式。對於發布 systemd 的發行版,通常是
systemctl suspend
.systemd 提供了用於掛起、休眠和混合掛起的本機命令,有關詳細資訊,請參閱“使用 systemd 進行電源管理”。這是 Arch Linux 中使用的預設界面。
對於 Debian Jessie :
有了 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
)並且都支持外部掛起驅動程序(例如,有關如何將其掛接到 systemd 的詳細資訊uswsusp
,請參見此處。)它們都支持在掛起或恢復過程中呼叫的配置文件和鉤子腳本,主要區別在於文件的位置(鉤子的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 進一步支持暫停/休眠/恢復,因為:
- 您可以將 systemd 單元掛接到掛起/恢復過程中,例如在掛起之前或恢復之後執行它們。(你可以在這裡找到很棒的食譜。)
- systemd 支持 D-Bus 介面,因此可以通過使用 D-Bus 呼叫而不是執行命令來觸發掛起(儘管執行
systemctl suspend
當然仍然是一種選擇。)通過 D-Bus 而不是執行命令觸發掛起通常是在桌面環境中很有用。- systemd 有一個高級介面,用於通知和讓使用者空間應用程序在完成操作時延遲掛起,抑製劑介面,它比鉤子腳本更靈活方便。(事實上,systemd 建議盡可能使用這個介面而不是鉤子腳本。)
因此,即使兩者都
pm-utils
以systemd-suspend
大致相同的方式實現系統的實際掛起,但與系統的其他組件的集成使得呼叫哪個組件很重要……並且在分發 systemd 時,systemctl suspend
通常是合適的人打電話。