Skript, das ausgeführt wird, nachdem der Ruhezustand beendet wurde?


0

Es gibt Dinge, die der Laptop nach einem Festplatten-Ruhezustand tun soll.

Insbesondere habe ich es standardmäßig auf die niedrigste CPU-Frequenz eingestellt, was es absolut leise macht (überhaupt kein Lüftergeräusch), aber die meiste Zeit immer noch schnell genug (ich ändere die Richtlinie mit einem anderen Skript, wenn ich wirklich mehr Rechenleistung benötige ). Aber nachdem ich aus dem Ruhezustand zurückgekehrt bin, wurde das standardmäßige Werksverhalten wiederhergestellt. Hierbei handelt es sich um eine variable Frequenz, und der verdammte Lüfter wird hier und da hochgefahren, um mir die wunderbare Erfahrung zu bieten, Programme im Bruchteil einer Sekunde schneller zu öffnen.

Anmerkung: Wenn jemand neugierig auf das Skript ist, das die niedrigste CPU in meinem Laptop festlegt (falls es einen besseren Weg gibt, dies zu tun, der nicht von Hibertate / Resume betroffen ist):

sudo cpufreq-set -c 0 -g userspace
sudo cpufreq-set -c 1 -g userspace
sudo cpufreq-set -c 2 -g userspace
sudo cpufreq-set -c 3 -g userspace
sudo cpufreq-set -c 0 -f 400MHz
sudo cpufreq-set -c 1 -f 400MHz
sudo cpufreq-set -c 2 -f 400MHz
sudo cpufreq-set -c 3 -f 400MHz

Übrigens muss dies intel_pstate in grub deaktivieren , was mir sagt, dass diese Funktion in Zukunft nicht mehr zur Verfügung stehen wird. Warum zum Teufel Intel es nicht zulässt, dass ich manchmal einen leisen und langsamen Computer habe, wenn das mein Wille ist, ist mir ein Rätsel.

Antworten:


2

Abhängig von Ihrem System können Sie möglicherweise ein ausführbares Skript /etc/pm/sleep.d/00mysleeperstellen, das mit einem Argument ausgeführt wird, das angibt, welcher Status eingegeben wird: suspend, hibernate. resumeoder thaw.

Mit systemd sollten Sie in der Lage sein , einen Skript zu setzen, beispielsweise,
/lib/systemd/system-sleep/00myscriptdie mit zwei Argumenten ausgeführt werden, wobei die ersten prebeim Anhalten und postbeim Fortsetzen und die zweiten der Zustand sind, nämlich suspend, hibernateoder hybrid-sleep.

Oder mit systemd können Sie erstellen und eine Einheit wie Datei aktivieren /etc/systemd/system/myscript.serviceHalte

[Unit]
Description=Run myscripttorun
After=suspend.target
#After=hibernate.target
#After=hybrid-sleep.target
[Service]
ExecStart=/some/path/myscripttorun
[Install]
WantedBy=suspend.target
#WantedBy=hibernate.target
#WantedBy=hybrid-sleep.target

aktiviert mit

sudo systemctl enable myscript.service

Wählen Sie zwischen den entsprechenden Suspend-, Hibernate- und Hybrid-Sleep-Zielen aus, indem Sie #die Zeilen entfernen , und erstellen Sie ein geeignetes Skript /some/path/myscripttorun, das ausgeführt werden soll.


Wenn mein Dienst im Allgemeinen die ganze Zeit ausgeführt wird, aber nach dem Fortsetzen nach dem Anhalten neu gestartet werden muss, welche Variante möchte ich?
Joseph Garvin

Wenn Sie bereits eine Einheit eingerichtet und in Betrieb haben, können Sie Restart=alwaysdem [Service]Teil wahrscheinlich nur eine weitere hinzufügen , und es wird möglicherweise neu gestartet, wenn Sie aus dem Standby-Modus zurückkehren, falls es abgestorben ist. Sie sollten jedoch eine neue Frage mit Ihren spezifischen Details posten, da dies im Allgemeinen ein schwieriges Thema ist.
meuh

Nach diesem , WantedByund Afterist das gleiche widerspricht. WantedBybedeutet, dass es Teil dieses Dienstes ist, während Afterbedeutet, dass es nach diesem Dienst ausgeführt werden sollte, was offensichtlich unmöglich ist.
Stefan Fabian
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.