Tengo una PC "centro multimedia" que a veces me olvido de apagar por la noche. Si no recuerdo mal, normalmente entro de forma remota a mi PC "centro multimedia" y la apago, pero la mayoría de las noches me olvido de hacerlo y la PC funciona toda la noche (y también durante el día siguiente).
¿Hay alguna forma de apagar la PC mediante un cuadro de diálogo (es decir, "Do you want to shutdown?" [Yes] [No]
)? La razón por la que quiero un cuadro de diálogo es porque a veces estamos viendo películas a altas horas de la noche y no quiero cerrarlas arbitrariamente.
Puedo hacer un trabajo cron que ejecuta un script a la 1 a. m., pero no sé cómo ejecutarlo poweroff
como shutdown
usuario estándar. ¿Alguna ayuda? Estoy ejecutando Linux Mint 17.3 (Ubuntu 14.04).
Respuesta1
¿Hay alguna forma de apagar la PC mediante un cuadro de diálogo (es decir,
"Do you want to shutdown?" [Yes] [No]
)?
Creo que la forma más sencilla de hacerlo es a través de xmessage
. Algo como esto:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0
xmessage -timeout 10 "Shutdown computer?" -buttons yes:0,no:1
case $? in
0)
echo "Shutting down..."
#systemctl poweroff
;;
1)
echo "Ok."
;;
*)
echo "Mystic error!"
;;
esac
He agregado las variables $PATH
y $DISPLAY
para que pueda ser utilizado por cron
(más sobre esoaquí). Y, por supuesto, sidesearpara apagar su computadora tendrá que descomentar esa línea y, por supuesto, echo
también podrá eliminar las declaraciones. Simplemente preparé esto rápidamente como muestra.
La esencia de esto: cuando un usuario presiona, yes
el código de retorno es 0
y la computadora se apaga. Si un usuario presiona no
el código de retorno es 1
, entonces haganocerrar. (Editar:) Si ningún usuario presiona ningún botón después de timeout
unos segundos ( 10
en este caso), xmessage
saldrá 0
y la computadora se apagará.
Cuando se ejecuta, el script produce este pequeño cuadro de diálogo:
Estoy seguro de que zenity
es genial, pero para una tarea sencilla como esta creo que xmessage
podría ser más fácil.
Respuesta2
Demasiadas preguntas reales en una sola pregunta. Haga preguntas por separado la próxima vez. El problema que describiste debería resolverse con la opción del reproductor de video "evitar suspensión" o "deshabilitar el protector de pantalla". VLC tiene esta opción en algún lugar de la configuración. Sin embargo, la gente informa que a veces no funciona.
Para mostrar cuadros de diálogo desde el script bash, use xdialog
la utilidad. Sin embargo, no funcionará simplemente si se ejecuta desde una sesión de usuario externa, como desde crontab. Primero deberá desactivar la seguridad del servidor X.
Para ejecutar poweroff como usuario estándar, ejecútelo a través de systemd
systemctl poweroff
.