1. Escribimos el guión en
/root/apagado_automatico:
#!/bin/bash
shutdown -h +5 &
zenity --display=:0 --warning --height=300 --width=500
--text="\n\n\nEl ordenador se apagará automáticamente
en 5 minutos\n" && shutdown -c
2. En el .bashrc
de los usuarios normales
ponemos:
xhost LOCAL:
para permitir usar las X a todos los usuarios locales del
equipo.
3. En /etc/crontab
ponemos:
0 22 * * * root /root/apagado_automatico
4. Si usamos gdm, también hay que dar permiso para
escuchar peticiones TCP. Para ello modificamos los archivos:
/etc/gdm/gdm.schemas
y
/etc/gdm/custom.conf.
También hay que modificar
/etc/X11/xinit/xserverrc.
5. Si aun así no funciona, lo podemos hacer
escribiendo los comandos del guión directamente en crontab
(ojo, todo en una línea, hacer el salto de línea con
\n):
0 22 * * * root shutdown -h +5
0 22 * * * root zenity --display=0 --warning --height=300
--width=500 --text="\n\n\nEl ordenador se apagará
automáticamente en 5 minutos \n\nPulse Aceptar para cancelar
el apagado" && shutdown -c
Con Lubuntu 10.04 me pasó una cosa muy curiosa, si el mensaje de zenity llevaba tilde no se mostraba la ventana. Ejecutando el comando de zenity desde terminal como root o como usuario normal sí funcionaba pero ejecutando el comando directamente en crontab o a través de un script desde crontab no funcionaba. Con Debian 6 y Ubuntu 10.04 sí funcionan las tildes sin problemas. Como tardé bastante en darme cuenta del problema simplemente le quité las tildes al mensajes porque ya me quedé sin ganas de averiguar por qué no funcionaba.