Où mettre les scripts qui s'exécutent lorsque l'ordinateur est repris?

8

Je dois verrouiller l'écran lorsque mon ordinateur sort de la suspension de mémoire,

J'ai donc essayé de mettre le script suivant dans /usr/lib/pm-utils/sleep.det /etc/pm/sleep.d, mais il n'a jamais été exécuté,

#!/bin/sh

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

PS Ce n'est pm-suspendpas pm-hibernate.

ÉDITER

Service Systemd essayé aussi, pas de chance:

# /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

Et j'ai appelé systemctl enable [email protected]aussi, vlock n'était pas encore appelé.

Marguerite
la source
3
Êtes-vous sûr qu'il ne sera pas exécuté? Pouvez-vous essayer de le connecter ou de faire quelque chose commeecho executed script >> /tmp/resume
Ulrich Dangel

Réponses:

2

AFAIK ExecStartveut un chemin complet vers l'exécutable.

Essayez avec ExecStart=/usr/bin/vlock -ansdans votre/etc/systemd/system/[email protected]

lviggiani
la source
1

Avez-vous défini les autorisations et le propriétaire comme décrit dans le wiki?

Assurez-vous que le script est exécutable (chmod 755) et appartient à root: root

mibitzi
la source
1

Vous essayez de créer votre propre crochet, non? Je lis la documentation Arch Linux sur pm-utils (lien ci-dessous) et je vérifierais d'abord ces choses:

  • nom du script (commencez par deux chiffres, en respectant le schéma dans les documents)
  • emplacement du script: /etc/pm/sleep.d est le bon endroit
  • modes de script: chmod + x /etc/pm/sleep.d/66scriptname

Si vous êtes sûr d'avoir tous ces droits, alors considérez le script lui-même.

Voici un lien vers les documents que je lis à ce sujet: https://wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks

Votre script n'est pas tout à fait comme celui qu'ils montrent là-bas. Vous appelez / bin / sh au lieu de / bin / bash. Vous utilisez des doubles-qoutes autour de 1 $ et elles ne le font pas. Vous combinez des options et elles ne le font pas. Tout cela devrait être OK, non? Sauf peut-être le sh contre bash.

Que diriez-vous d'y mettre des instructions de journalisation ou d'écho pour le débogage, puis vérifiez les journaux pour voir si votre script démarre. Et si c'est le cas, jusqu'où ça va.

Mike Diehn
la source
Systemd fonctionne-t-il avec pm-utils? Je ne suis pas sûr de cela ;-)
marguerite
0

J'ai découvert tous les répertoires en faisant un "sudo strace pm-hibernate 2>/root/myfile.log", ou vous pouvez remplacer pm-hibernate par pm-suspend. Après un certain temps, la machine s'éteindra. Ensuite, lorsque vous rallumez / reprenez, lisez le fichier myfile.log, et vous y trouverez tous les scripts, la configuration, les fichiers journaux consultés / écrits.

Pour mon Fedora 20 ce sont:

/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 et plusieurs autres répertoires.

Aidez-vous avec votre distribution spécifique de version spécifique (Fedora 20 utilise systemd btw).

Peter Teoh
la source