O Systemd lê o arquivo / etc / pm /…?

14

Os sistemas que usam systemd leem e executam scripts em /etc/pm/sleep.d/ ?

Estou começando a concluir que a resposta é que systemd ignora esses scripts. Se isso é verdade, qual é o substituto?

Atualização: man systemd-sleep states scripts podem ser adicionados a /lib/systemd/system-sleep/ . Os detalhes não foram suficientes para mim, mas tentei modificar um exemplo do wiki do Arch e criei /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

Minha intenção é reiniciar o gerenciador de rede depois que ele for retomado porque, ocasionalmente, ele não está funcionando.

Isso não parece estar fazendo o que eu quero.

    
por Sean 15.04.2015 / 20:22

2 respostas

12

Os scripts em /etc/pm/config.d|power.d|sleep.d são ignorados no systemd. Em vez disso, uma "unidade" (serviço) do systemd deve ser criada e ativada.

Para reiniciar a rede depois que o sistema sair do modo de suspensão, criei o arquivo /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

Em seguida, ativei o serviço com sudo systemctl enable root-resume.service . A ativação do serviço cria um link simbólico para o arquivo em /etc/systemd/system/suspend.target.wants/

Ao contrário de man systemd-sleep , os arquivos de serviço colocados em /lib/systemd/system-sleep/ são ignorados.

    
por Sean 28.04.2015 / 16:30
2

Não, nem aqueles em /usr/lib/pm-utils/sleep.d . Mas ele executa todos os scripts (não arquivos de serviço) em /lib/systemd/system-sleep/ com o conjunto de bits executáveis.

Aqui está um exemplo para chamar pm-powersave, modificado 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  in
    pre)  [ "$ARCH" != "${ARCH#arm}" ] || pm-powersave false ;;          
    post) pm-powersave ;;
esac
exit 0

$ 1 é "post" no currículo, "pre" caso contrário. $ 2 em ambos os casos contém "suspender", "hibernar" ou "dormir híbrido".

    
por Martin Thornton 01.07.2015 / 18:24