systemd
を使用するシステムは、/etc/pm/sleep.d/
のスクリプトを読み取って実行しますか?
答えは、systemd
はこれらのスクリプトを無視するということです。これが正しい場合、代替品は何ですか?
更新:man systemd-sleep
は、スクリプトを/lib/systemd/system-sleep/
に追加できることを示しています。詳細は私には不十分でしたが、 Arch wiki example の修正を試み、/lib/systemd/system-sleep/root-resume.service
を作成しました。
[Unit]
Description=Local system resume actions
After=suspend.target
[Service]
Type=simple
ExecStart=/bin/systemctl restart network-manager.service
[Install]
WantedBy=suspend.target
私の意図は、ネットワークマネージャーが再開された後に再起動することです。
これは私がしたいことをしていないようです。
/etc/pm/config.d|power.d|sleep.d
内のスクリプトはsystemdでは無視されます。代わりに、systemd「ユニット」(サービス)を作成して有効にする必要があります。
システムがスリープから復帰した後にネットワークを再起動するには、ファイル/lib/systemd/system/root-resume.service
を作成しました:
[Unit]
Description=Local system resume actions
After=suspend.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service
[Install]
WantedBy=suspend.target
次に、Sudo systemctl enable root-resume.service
でサービスを有効にしました。サービスを有効にすると、/etc/systemd/system/suspend.target.wants/
にファイルのシンボリックリンクが作成されます
man systemd-sleep
に配置された/lib/systemd/system-sleep/
サービスファイルとは異なり、無視されます。
いいえ、また/usr/lib/pm-utils/sleep.d
のそれらも。ただし、実行可能ビットが設定された/lib/systemd/system-sleep/
ですべてのスクリプト(サービスファイルではない)を実行します。
以下は、/usr/lib/pm-utils/sleep.d/00powersave
から変更されたpm-powersaveを呼び出すための例です。
#!/bin/sh
# do not run pm-powersave on ARM during suspend; the 1.5 seconds that it takes
# to run it don't nearly compensate the potentially slightly slower suspend
# operation in low power mode
Arch=`uname -m`
case $1 in
pre) [ "$Arch" != "${Arch#arm}" ] || pm-powersave false ;;
post) pm-powersave ;;
esac
exit 0
$ 1は再開時に「投稿」、それ以外は「前」です。どちらの場合も$ 2には、「suspend」、「hibernate」、または「hybrid-sleep」のいずれかが含まれます。