systemctlの一時停止はどのように機能しますか?

systemctlの一時停止はどのように機能しますか?

systemctlのマンページから:

停止する

システムを停止します。これにより、特殊ターゲットユニット suspens.target のアクティベーションがトリガされます。このコマンドは非同期で、保留中のジョブが正常にキューに追加された後に返されます。一時停止/再開サイクルが完了するのを待ちません。

私のシステムでは、suspend.target次のようになります。

[Unit]
Description=Suspend
Documentation=man:systemd.special(7)
DefaultDependencies=no
Requires=systemd-suspend.service
After=systemd-suspend.service
StopWhenUnneeded=yes

man:systemd.special(7)そこにリストされている内容を見ると、次のようになります。

suspens.target システムを一時停止するために使用される特別なターゲットデバイスです。これはsleep.targetを紹介します。

より深く掘り下げると、次のようなsystemd-suspend.service結果が得られます。

systemd-suspens.service は suspens.target によって取得されたシステムサービスであり、実際のシステムの一時停止を担当します。

...

内部的には、サービスは「mem」などの文字列を /sys/power/state に反映し、実際のシステム停止を引き起こします。特定の履歴は/etc/systemd/sleep.confまたはsleep.conf.dファイルの[[Sleep]]セクションで設定できます。

文書にsleep.confよると、

デフォルト構成はコンパイル中に定義されているため、これらのデフォルト値から外れる必要がある場合にのみ構成ファイルが必要です。

私のシステムには存在しないので、sleep.confコンパイルされたデフォルト値を使用する必要があります。私はそれが何であるか理解していません。

基本的に/sys/power/state友達に送る正確なコマンドは何ですか?systemctl suspend

答え1

デフォルト値は次のとおりです。"mem", "standby", "freeze"(最後の2つと省電力モード設定機能では、2013年に追加したがって、以前の設定では機能しない可能性があります。)
引用したマニュアルページには、実行方法が記載されていますsystemd-suspend.service

"mem"/sys/power/state...実際のシステム停止を引き起こすのに使用されるものと同様の文字列。

スリープ状態とsysfsユーザースペースがこれらの状態を制御するために使用できるインターフェイスの詳細については、公式ドキュメントを参照してください。システムの省電力状態

関連情報