web-dev-qa-db-ja.com

pm-suspend vs systemctl suspend?

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

  • systemctl suspend
  • pm-suspend

どちらを使用または優先する必要がありますか?

9
Evan Carroll

要するに、あなたは一般的にあなたのディストリビューションによって統合されたサスペンドモードを好むべきです。 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など)。フックする方法の詳細については here を参照してください。 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を実行することはもちろんオプションです)。コマンドの実行は、通常、デスクトップ環境から役立ちます。
  • systemdには、操作の完了時にユーザースペースアプリケーションに中断を通知して通知を延ばすための高度なインターフェイス、 抑制インターフェイス があり、フックスクリプトよりも柔軟で便利です。 (実際には、systemdは可能な限りフックスクリプトではなくこのインターフェイスを使用することをお勧めします。)

したがって、pm-utilssystemd-suspendの両方がシステムの実際のサスペンドをほぼ同じ方法で実現しても、システムの他のコンポーネントとの統合により、どちらが呼び出されるかが重要になるようになります...そして、systemdを配布するディストリビューションでは、通常、systemctl suspendを呼び出すのが適切です。

14
filbranden