ハードドライブAPMレベルを設定し、一時停止/再開後のメンテナンス

ハードドライブAPMレベルを設定し、一時停止/再開後のメンテナンス

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.targetWantedBy=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

混乱させて申し訳ありません。

おすすめ記事