Onde colocar scripts que são executados quando o computador é retomado?

8

Eu preciso bloquear a tela quando meu computador for acordado da memória suspensa,

Então, tentei colocar o seguinte script em /usr/lib/pm-utils/sleep.d e /etc/pm/sleep.d , mas nunca foi executado,

#!/bin/sh

case "$1" in
    hibernate|suspend)
        ;;
    thaw|resume)
        vlock -ans
        ;;
    *) exit $NA
        ;;
esac

P.S é pm-suspend não pm-hibernate .

EDITAR

Tentei o serviço systemd também, sem sorte:

# /etc/systemd/system/[email protected]
[Unit]
Description=User resume actions
After=suspend.target

[Service]
User=root
Type=simple
ExecStart=vlock -ans

[Install]
WantedBy=suspend.target

E eu chamei systemctl enable [email protected] também, vlock não foi chamado ainda.

    
por daisy 26.12.2012 / 14:16

4 respostas

2

AFAIK ExecStart quer um caminho completo para o executável.

Experimente com ExecStart=/usr/bin/vlock -ans no seu /etc/systemd/system/[email protected]

    
por 10.04.2014 / 15:28
1

Você definiu as permissões e o proprietário como descritos no wiki?

Make sure the script is executable (chmod 755) and owned by root:root

    
por 27.07.2013 / 17:58
1

Você está tentando criar seu próprio gancho, certo? Eu estou lendo a documentação do Arch Linux no pm-utils (link abaixo) e eu verifico estas coisas primeiro:

  • nome do script (comece com dois dígitos, obedecendo ao esquema nos documentos)
  • local do script: /etc/pm/sleep.d é o lugar certo
  • modos de script: chmod + x /etc/pm/sleep.d/66scriptname

Se você tem certeza de que acertou tudo, considere o script em si.

Aqui está um link para os documentos que estou lendo sobre isso:      link

Seu script não é bem parecido com o que eles mostram lá. Você invoca / bin / sh em vez de / bin / bash. Você usa qoutes duplos em torno de $ 1 e eles não. Você combina opções e elas não. Todos os quais devem estar bem, certo? Exceto talvez o sh contra o bash.

Que tal colocar algumas logger ou echo declarações lá para depuração e, em seguida, verificar os logs para ver se você script está começando. E se for, até onde está chegando.

    
por 05.11.2013 / 15:27
0

Descobri todos os diretórios fazendo "sudo strace pm-hibernate 2>/root/myfile.log" ou você pode substituir o pm-hibernate por pm-suspend. Depois de algum tempo a máquina irá desligar. Então, quando você ligar / reiniciar novamente, leia myfile.log, e dentro dele estão todos os scripts, config, arquivos de log acessados / escritos.

Para o meu Fedora 20, eles são:

/usr/lib64/pm-utils/pm-functions
/usr/lib64/pm-utils/defaults
/usr/lib64/pm-utils/module.d
/etc/pm/config.d
/etc/pm/pm-suspend.config.d
/var/run/pm-utils/locks/pm-suspsnd.lock
/var/run/pm-utils/pm-suspend/storage/parameters

etc e vários outros diretórios.

Sirva-se com sua distro específica de versão específica (o Fedora 20 está usando o systemd btw).

    
por 05.03.2015 / 03:35