Systemdを使用するLinuxディストリビューションの場合、これら2つのコマンドの間に実際的な違いはありますか?
systemctl suspend
pm-suspend
どちらを使用または優先する必要がありますか?
要するに、あなたは一般的にあなたのディストリビューションによって統合されたサスペンドモードを好むべきです。 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-suspend
とsystemd-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のサポートにさらに進んでいます。
systemctl suspend
を実行することはもちろんオプションです)。コマンドの実行は、通常、デスクトップ環境から役立ちます。したがって、pm-utils
とsystemd-suspend
の両方がシステムの実際のサスペンドをほぼ同じ方法で実現しても、システムの他のコンポーネントとの統合により、どちらが呼び出されるかが重要になるようになります...そして、systemdを配布するディストリビューションでは、通常、systemctl suspend
を呼び出すのが適切です。