web-dev-qa-db-fra.com

Systemd lit-il / etc / pm / .....?

Les systèmes utilisant systemd lisent-ils et exécutent-ils des scripts dans /etc/pm/sleep.d/?

Je commence à conclure que la réponse est que systemd ignore ces scripts. Si cela est vrai, quel est le remplacement?

Mise à jour: les états man systemd-sleep peuvent être ajoutés à /lib/systemd/system-sleep/. Les détails étaient insuffisants pour moi mais j'ai essayé une modification d'un exemple d'Arch wiki et créé /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

Mon intention est de redémarrer Network-Manager après la reprise, car parfois il ne fonctionne pas.

Cela ne semble pas faire ce que je veux.

14
Sean

Les scripts dans /etc/pm/config.d|power.d|sleep.d sont ignorés sous systemd. A la place, une "unité" systemd (service) doit être créée et activée.

Pour redémarrer la mise en réseau une fois que le système a quitté le mode veille, j'ai créé le fichier /lib/systemd/system/root-resume.service:

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target

Ensuite, j'ai activé le service avec Sudo systemctl enable root-resume.service. L'activation du service crée un lien symbolique pour le fichier dans /etc/systemd/system/suspend.target.wants/

Contrairement à man systemd-sleep, les fichiers de service placés dans /lib/systemd/system-sleep/ sont ignorés.

13
Sean

Non, ni ceux de /usr/lib/pm-utils/sleep.d. Mais il exécute tous les scripts (pas les fichiers de service) dans /lib/systemd/system-sleep/ avec les bits exécutables définis.

En voici un exemple pour appeler pm-powersave, modifié à partir de /usr/lib/pm-utils/sleep.d/00powersave.

#!/bin/sh

# do not run pm-powersave on ARM during suspend; the 1.5 seconds that it takes
# to run it don't nearly compensate the potentially slightly slower suspend
# operation in low power mode
Arch=`uname -m`

case $1 in
    pre)  [ "$Arch" != "${Arch#arm}" ] || pm-powersave false ;;          
    post) pm-powersave ;;
esac
exit 0

$ 1 est "post" sur CV, "pre" sinon. $ 2 dans les deux cas contient "suspend", "hibernate" ou "hybrid-sleep".

2
Martin Thornton