Dove mettere gli script che vengono eseguiti quando il computer viene ripreso?


8

Ho bisogno di bloccare lo schermo quando il mio computer si sveglia dalla sospensione della memoria,

Quindi ho provato a mettere il seguente script in /usr/lib/pm-utils/sleep.de /etc/pm/sleep.d, ma non è mai stato eseguito,

#!/bin/sh

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

PS Non lo pm-suspendè pm-hibernate.

MODIFICARE

Ho provato anche il servizio systemd, senza fortuna:

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

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

[Install]
WantedBy=suspend.target

E ho systemctl enable resume@.serviceanche chiamato , Vlock non è stato chiamato ancora.


3
Sei sicuro che non verrà eseguito? Puoi provare a registrarlo o fare qualcosa di simileecho executed script >> /tmp/resume
Ulrich Dangel,

Risposte:


2

AFAIK ExecStartvuole un percorso completo per l'eseguibile.

Prova con ExecStart=/usr/bin/vlock -ansnel tuo/etc/systemd/system/resume@.service


1

Hai impostato le autorizzazioni e il proprietario come descritto nel wiki?

Assicurarsi che lo script sia eseguibile (chmod 755) e di proprietà di root: root


1

Stai cercando di creare il tuo gancio, giusto? Sto leggendo la documentazione di Arch Linux su pm-utils (link sotto) e verificherei prima queste cose:

  • nome dello script (inizia con due cifre, obbedendo allo schema nei documenti)
  • posizione dello script: /etc/pm/sleep.d è il posto giusto
  • modalità di script: chmod + x /etc/pm/sleep.d/66scriptname

Se sei sicuro di aver capito bene, prendi in considerazione lo script stesso.

Ecco un link ai documenti che sto leggendo al riguardo: https://wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks

La tua sceneggiatura non è molto simile a quella che mostrano lì. Si invoca / bin / sh invece di / bin / bash. Usi double-qoutes intorno a $ 1 e loro no. Combini opzioni e loro no. Tutto ciò dovrebbe essere OK, giusto? Tranne forse lo sh contro bash.

Che ne dite di mettere alcune dichiarazioni logger o echo lì per il debug e quindi controllare i registri per vedere se lo script sta per iniziare. E se lo è, quanto sta arrivando.


Systemd funziona con pm-utils? Non ne sono sicuro ;-)
margherita

0

Ho scoperto tutte le directory facendo un "sudo strace pm-hibernate 2>/root/myfile.log", oppure puoi sostituire il pm-hibernate con pm-suspend. Dopo qualche tempo la macchina si spegnerà. Quindi quando accendi di nuovo / riprendi, leggi myfile.log e al suo interno sono presenti tutti gli script, le configurazioni, i file di registro a cui si accede / scrive.

Per il mio Fedora 20 sono:

/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

ecc. e molte altre directory.

Aiutati con la tua specifica distribuzione di versione specifica (Fedora 20 sta usando systemd btw).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.