Fedora 25では、私のラップトップのハードドライブはAPMレベル(電源管理)が非常に低いため、次のudevルールを使用します。この回答それを調整するにはhdparm
。ただし、サスペンドで再開すると、APMレベルがリセットされます。端末でudevルールを手動でトリガーすることができるので、自動化するために次のシステムサービスを試しました。ここそしてここ:-
[Unit]
Description=Re-run udev power_supply rules after resuming from suspend
After=supend.target
[Service]
Type=oneshot
User=root
Group=root
ExecStart=+/bin/sh -c '/usr/sbin/udevadm trigger --subsystem-match="power_supply"'
[Install]
WantedBy=suspend.target
multi-user.target
、および、およびの組み合わせも試みましたdefault.target
。そのうちどれもうまくいかなかったので、スクリプトを入れてみました。sleep.target
WantedBy=
Type=simple
/etc/pm/sleep.d/
これ。しかし、それも動作しません(入れても動作しません/usr/lib64/pm-utils/sleep.d/
)。
最後に、マニュアルページには次のようsystemd-suspend.service
に表示されます。
...挿入されたスクリプトまたはバイナリは
/usr/lib/systemd/system-sleep/
ローカル使用のためのものであり、...ハッキングと見なされるべきです。アプリケーションがシステムの一時停止/休止状態と再開の通知を受け取る場合は、より良いインターフェイスを使用できます。
しかし、スクリプトを置くことは実際にはうまくいくかもしれませんが、とにかくこれらの「より良いインターフェース」とは何ですか?udevトリガー(優先)を実行した後、または停止から再開した後に/usr/lib/systemd/system-sleep/
どのように使用できますか?hdparm
もっと良いことは、udevルールではなく、いくつかの静的設定を介してバッテリ電源と接続状態の両方にハードドライブAPMレベルを設定する方法はありますか?
更新 - 修正済み
systemd サービスが実行中です。udevadm
さまざまな組み合わせを試してみましたが、誤ったディレクトリで誤って使用されたようです。私はすでに投稿しました回答これを明確にするために。混乱させて申し訳ありません。しかし、質問は残ります:これを静的に(udevルールなしで)実行する方法はありますか?
答え1
udevadm
最初は、間違ったディレクトリ(/bin/udevadm
)で使用しようとしたときに1つまたは他の組み合わせのエラーが発生したようです。このプログラムはudevadm
(または)で実行する必要があります。/sbin
/usr/sbin
現時点では、次のシステムサービスで十分です。
[Unit]
Description=Re-run udev power_supply rules after resuming from suspend
After=supend.target
[Service]
Type=oneshot
ExecStart=/sbin/udevadm trigger --subsystem-match=power_supply
[Install]
WantedBy=suspend.target
混乱させて申し訳ありません。
答え2
そして以降=保留中。対象デバイスとWantedBy = multi-user.target sleep.targetのインストール。
あなたの場合、2番目の部分はですWantedBy=sleep.target
。
ある人に明らかにAfter=sleep.target
効果があるのは、他の人が使用する必要がありますAfter=suspend.target
。理由はわかりません。これを使用してデバイスのインターフェイスを実行します。また覆う文書化されていないようで、実際には良いと主張するわけではありません。