pm-suspend vs systemctl suspend?


10

systemdを使用するLinuxディストリビューションの場合、これら2つのコマンドの間に実際的な違いはありますか?

  • systemctl suspend
  • pm-suspend

どちらを使用するか、どちらを優先するべきですか?

回答:


16

要するに、あなたは一般的にあなたのディストリビューションによって統合されたサスペンドモードを好むべきです。systemdを出荷するディストリビューションの場合、通常はsystemctl suspendです。

たとえば、Arch Linux wikiはこう言っています

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-suspendsystemd-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は、suspend / hibernate / resumeのサポートをさらに進めています。

  • systemdユニットをサスペンド/レジュームプロセスにフックできます。たとえば、サスペンド前またはレジューム後に実行します。(ここで素晴らしいレシピを見つけることができます。)
  • systemdはD-Busインターフェースをサポートしているため、コマンドを実行するのではなく、D-Bus呼び出しを使用して中断をトリガーできます(ただし、実行systemctl suspendはもちろんオプションです)。コマンドを実行するのではなく、D-Busを介して中断をトリガーするのは通常、デスクトップ環境から役立ちます。
  • systemdには、ユーザー空間アプリケーションが操作を完了している間、中断を遅らせて通知する高度なインターフェイスがあります。これは、フックスクリプトよりも柔軟で便利なインヒビターインターフェイスです。(実際、systemdは、可能な限り、スクリプトをフックするのではなく、このインターフェースを使用することをお勧めします。)

だから、両方のにもかかわらず、pm-utilsそしてsystemd-suspend実際の達成は同じ方法についてシステムの中断、システムの他のコンポーネントとの統合は、それが1と呼ばれる重要なように、それを作る...とにsystemdを出荷ディストリビューションでは、systemctl suspend一般的です右の1つを呼び出す。


1
これはすべての基盤をカバーする本当に素晴らしい答えです。背景をありがとう!私はXubuntuがpm-suspendを使用しているのを見ないので、おそらくシステム化される前の日、私はそれをインストールしてそれを削除したことはなく、私だけがそれを使用していました。Debianは、何かを行うための新しい方法がある場合にあなたに知らせるという本当のたわごとの仕事をします。
エヴァンキャロル

1
+1。systemctlは、私がここに遭遇したことを問題に役割を果たしましたunix.stackexchange.com/questions/435168/...を
ティム

1
興味深いことに、Ubuntu 18.04はpm-utilsデフォルトではインストールされておらずsystemctl、に依存しているようですが、中に/usr/lib/pm-utils/sleep.d/は何かがあり、/usr/lib/systemd/system-sleep/存在しません。しかし、私は/lib/systemd/system-sleep/との下/snap/にさらにいくつかを表示します。それらのすべてに1つまたは2つのファイルが含まれています。
Izkata
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.