Können Systeme, systemd
die Skripte verwenden, lesen und ausführen /etc/pm/sleep.d/
?
Ich komme zu dem Schluss, dass systemd
diese Skripte ignoriert werden. Wenn dies zutrifft, wie lautet der Ersatz?
Update: man systemd-sleep
Statusskripte können hinzugefügt werden /lib/systemd/system-sleep/
. Die Details waren für mich unzureichend, aber ich habe versucht, ein Beispiel für ein Arch-Wiki zu ändern und es erstellt /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
Ich beabsichtige, den Netzwerkmanager nach der Wiederaufnahme neu zu starten, da er gelegentlich nicht funktioniert.
Dies scheint nicht das zu tun, was ich will.
sudo pm-suspend
von cmdline aus tippen. Nur systemd verwendet es nicht aus seinem Workflow.Antworten:
Skripte in
/etc/pm/config.d|power.d|sleep.d
werden unter systemd ignoriert. Stattdessen muss eine systemd "Einheit" (Dienst) erstellt und aktiviert werden.Um das Netzwerk neu zu starten, nachdem das System aus dem Ruhezustand wiederhergestellt wurde, habe ich die Datei erstellt
/lib/systemd/system/root-resume.service
:Dann habe ich den Dienst mit aktiviert
sudo systemctl enable root-resume.service
. Durch das Aktivieren des Dienstes wird eine symbolische Verknüpfung für die Datei in erstellt/etc/systemd/system/suspend.target.wants/
Im Gegensatz zu
man systemd-sleep
Dienstdateien werden in/lib/systemd/system-sleep/
ignoriert.quelle
/etc/systemd/system/root-resume.service
. Sie sollten niemals Dateien unter / lib ändern, da diese vom Paketmanager verwaltet werden, um Überlastungen und mögliche Fehler beim Upgrade zu vermeiden, ganz zu schweigen von der Vereinfachung von Sicherungen.Nein, noch die in
/usr/lib/pm-utils/sleep.d
. Es werden jedoch alle Skripte (keine Servicedateien)/lib/systemd/system-sleep/
mit festgelegten ausführbaren Bits ausgeführt.Hier ist ein Beispiel für den Aufruf von pm-powersave, geändert von
/usr/lib/pm-utils/sleep.d/00powersave
.$ 1 ist "post" im Lebenslauf, "pre" sonst. $ 2 enthält in beiden Fällen entweder "Suspend", "Hibernate" oder "Hybrid-Sleep".
quelle