¿Dónde colocar scripts que se ejecutan cuando se reinicia la computadora?

8

Necesito bloquear la pantalla cuando mi computadora se despierta de la suspensión de memoria,

Así que traté de poner el siguiente script /usr/lib/pm-utils/sleep.dy /etc/pm/sleep.d, pero nunca se ejecutó,

#!/bin/sh

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

PS Es pm-suspendno pm-hibernate.

EDITAR

También probé el servicio systemd, sin suerte:

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

Y systemctl enable [email protected]también llamé, vlock no fue llamado todavía.

margarita
fuente
3
¿Estás seguro de que no se ejecutará? ¿Puedes intentar simplemente iniciar sesión o hacer algo comoecho executed script >> /tmp/resume
Ulrich Dangel

Respuestas:

2

AFAIK ExecStartquiere una ruta completa al ejecutable.

Prueba con ExecStart=/usr/bin/vlock -ansen tu/etc/systemd/system/[email protected]

lviggiani
fuente
1

¿Estableció los permisos y el propietario como se describe en la wiki?

Asegúrese de que el script sea ejecutable (chmod 755) y que sea propiedad de root: root

mibitzi
fuente
1

Estás tratando de crear tu propio gancho, ¿verdad? Estoy leyendo la documentación de Arch Linux en pm-utils (enlace a continuación) y primero verificaría estas cosas:

  • nombre del script (comience con dos dígitos, obedeciendo el esquema en los documentos)
  • ubicación del script: /etc/pm/sleep.d es el lugar correcto
  • modos de script: chmod + x /etc/pm/sleep.d/66scriptname

Si está seguro de que tiene todo eso correcto, considere el script en sí.

Aquí hay un enlace a los documentos que estoy leyendo sobre esto: https://wiki.archlinux.org/index.php/pm-utils#Creating_your_own_hooks

Tu guión no es como el que muestran allí. Invoca / bin / sh en lugar de / bin / bash. Usas doble qoutes alrededor de $ 1 y no lo hacen. Combinas opciones y ellas no. Todo lo cual debería estar bien, ¿verdad? Excepto tal vez el sh versus bash.

¿Qué hay de poner algunas declaraciones de registrador o echo allí para la depuración y luego verifique los registros para ver si su script está comenzando? Y si es así, qué tan lejos está llegando.

Mike Diehn
fuente
¿Systemd funciona con pm-utils? No estoy seguro de eso ;-)
daisy
0

Descubrí todos los directorios haciendo un "sudo strace pm-hibernate 2>/root/myfile.log", o puedes reemplazar pm-hibernate con pm-suspend. Después de algún tiempo la máquina se apagará. Luego, cuando encienda / reanude nuevamente, lea myfile.log, y dentro de él se encuentran todos los scripts, config, archivos de registro accedidos / escritos.

Para mi Fedora 20 son:

/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 y varios otros directorios.

Ayúdese con su distribución específica de la versión específica (Fedora 20 está usando systemd por cierto).

Peter Teoh
fuente