Ich hatte das gleiche Problem, keine der Lösungen hier entsprach meinen Bedürfnissen. Die Verwendung von cron ist wirklich eine Problemumgehung, keine Lösung. Udev-Regeln werden ausgeführt, wenn die Stromversorgung angeschlossen / getrennt wird, jedoch nicht nach dem Anhalten / Fortsetzen. Sie pm-utils
werden in Fedora 19 nicht mehr standardmäßig verwendet, wenn Sie beispielsweise den Deckel Ihres Laptops schließen.
Da systemd
jetzt für das Anhalten / Ruhezustand verantwortlich ist, denke ich, dass der einzig richtige Weg, um mit dieser Situation umzugehen, darin besteht, eine systemd
Einheit zu erstellen , die sowohl nach dem Booten als auch nach der Wiederaufnahme des Suspendierens ausgeführt wird.
Anmerkungen:
- Wenn Sie
/dev/disk/by-id/...
anstelle von verwenden /dev/sda
, stellen Sie immer sicher, dass Sie die richtige Festplatte erhalten (sda, b, c hängt von der Reihenfolge ab, in der sie vom Kernel erkannt werden).
- Sie können mehrere
ExecStart
Leitungen haben, um mehrere Festplatten zu konfigurieren
Hier ist die Einheit, die ich geschrieben habe:
[Unit]
Description=Silence HD
After=suspend.target
[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1
[Install]
WantedBy=suspend.target basic.target
Speichern Sie diese Datei als /etc/systemd/system/hdsilence.service
und aktivieren Sie sie dann mit:
systemctl enable hdsilence.service
systemctl daemon-reload
Sie können das System den Befehl während des Startvorgangs ausführen lassen, indem Sie einen eigenen systemd-Dienst erstellen oder den Befehl zu /etc/rc.d/rc.local hinzufügen.
Wenn Sie den Befehl wollen jedes Mal , die Sie ausführen wecken das System nach dem Schlaf / Hibernate, können Sie ein Skript , das beginnt mit zwei Ziffern /etc/pm/sleep.d/, um einige der anderen Skripte in / usr / lib64 / add pm-utils / sleep.d (unter der Annahme von x86_64) für weitere Details. Grundsätzlich wird ein Parameter verwendet, der davon abhängt, in welchen Status er eintritt. Möglicherweise müssen Sie auch ein Login zu power.d / im selben übergeordneten Verzeichnis hinzufügen, wenn Sie mit Batteriestrom anders arbeiten möchten als mit angeschlossenem.
quelle
creating your own systemd service
kannst du genauer sein? Ich habe keine /etc/rc.d/rc.local-Datei./etc/rc.d/rc.local
Datei ist nur ein Shell-Skript. Erstellen Sie sie und stellen Sie sicher, dass sie ausführbar ist.Für verschiedene Einstellungen bei Betrieb mit Wechselstrom / Batterie würde ich dies über eine einfache
udev
Regel tun , z/etc/udev/rules.d/98-apmsettings.rules
.Dies wird eingestellt
apm
,254
wenn der Laptop angeschlossen bzw.128
ausgesteckt ist. Außerdem sollte es immer funktionieren, auch nachdem die Suspendierung wieder aufgenommen wurde.quelle
hdparm
in/usr/sbin
, passen so die Pfade.Ich habe die gleiche Festplatte (und das gleiche Problem). Meine dumme, aber funktionierende Lösung: Ich habe das eingegeben
/etc/crontab
:quelle
Die udev-Regeln funktionieren gut bei Plug-Events, aber um das richtige Verhalten nach dem Fortsetzen von Suspend zu erhalten, brauche ich Folgendes
/etc/pm/sleep.d
:quelle