systemdを使用するLinuxディストリビューションの場合、これら2つのコマンド間に実質的な違いはありますか?
systemctl suspend
pm-suspend
どちらを使用するか好むべきですか?
ベストアンサー1
つまり、通常は展開統合一時停止モードを優先する必要があります。 systemdを使用するディストリビューションの場合、通常はsystemctl suspend
。
例えば、Arch Linux Wikiを話す:
systemdは、一時停止、休止状態、およびハイブリッド一時停止のための基本的なコマンドを提供します。詳細については、「systemdを使用した電源管理」を参照してください。これは、Arch Linux で使用される基本インターフェイスです。
そしてDebian 提示の場合:
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/
。
だから、この観点から見ると、2つは非常に似ているようです。
ただし、systemdは次の理由で一時停止/休止状態/再開をさらにサポートします。
- 一時停止の前や再開後に実行するなど、システムデバイスを一時停止/再開プロセスに接続できます。 (ここでは素晴らしいレシピを見つけることができます。ここ.)
- systemdはD-Busインターフェースをサポートしているため、コマンドを実行する代わりにD-Bus呼び出しを使用して停止をトリガーできます(もちろん実行は
systemctl suspend
まだオプションです)。コマンドを実行する代わりに、D-Busを介して停止をトリガーすることは、デスクトップ環境で役に立ちます。 - systemdには、ユーザースペースアプリケーションに通知し、タスクが完了したらゆっくり一時停止できる高度なインターフェースがあります。阻害剤インターフェース、フックスクリプトよりも柔軟で便利です。 (実際、systemdは可能な限りスクリプトを接続するのではなく、このインタフェースを使用することをお勧めします。)
したがって、両方ともほぼ同じ方法でシステムの実際の一時停止をpm-utils
実装しても、systemd-suspend
システムの他のコンポーネントとの統合によってどのコンポーネントが呼び出されるかが重要になりますsystemctl suspend
。人。