¿Apagado automático a horas específicas?

18

Sé que puedo usar (¿sudo?) shutdown -h hh:mmEn una ventana de terminal para apagar un sistema, sin embargo, el usuario que ha iniciado sesión es un usuario de un quiosco, que está bloqueado de tal manera que la terminal (o cualquier ventana que no sea Firefox , para el caso) no se puede abrir.

Mi pregunta es:
¿Hay alguna manera de hacer esto sin tener una ventana de terminal abierta? He leído sobre cron, pero no puedo resolverlo.
¿Cómo puedo cambiar la hora de cierre dependiendo de qué día es?

MrAxlee
fuente
¿Quieres cerrar en 02:00 AM?
αғsнιη
No, lo siento, eso fue exactamente lo que se usó en el ejemplo que leí. Por lo general, a las 11:30, pero me preguntaba si hay una manera de especificar diferentes horarios para diferentes días.
MrAxlee
1
Puede consultar la url para el apagado automático. askubuntu.com/questions/19774/…
vembutech
1
@vembutech Esa pregunta es para cerrar después de que haya pasado un cierto período de tiempo, no para cerrar en un momento determinado, sin embargo, aunque sería fácil adoptar esto para mis necesidades, todavía no puedo ejecutar ventanas adicionales que no sean Firefox. ¡Gracias por tu respuesta! Parece mucho más simple que usar cron, y lo más probable es que lo use para otros usos :)
MrAxlee
@MrAxlee ... Entonces, ¿quieres que el sistema se apague n horas después de encenderse?
Kaz Wolfe

Respuestas:

30

Cron funcionará muy bien para esto.

Agregue la siguiente línea (con ajustes) al final de /etc/crontab:

30 23 * * * root shutdown -h now

A las 23:30 (11:30 PM), el quiosco se cerrará. No importa qué usuario haya iniciado sesión, el comando de apagado se ejecuta como root.

(Si no desea usar el crontab global, inicie sesión como root y use crontab -e. Use la misma sintaxis anterior sin la root).


Formato Cron:

MM HH DD OO WW command

MM: Minuto, 0-59
HH: hora de 24 horas
DD: Día del mes
OO: Mes
WW: Día de la semana (domingo es 0, lunes es 1)
command: se explica por sí mismo

Kaz Wolfe
fuente
@JacobVlijm ¿Cuándo se agregó eso? No lo veo en los documentos oficiales de Cron .
Kaz Wolfe
1
Lo buscaré ...
Jacob Vlijm
1
from crontab (5): el formato del sistema crontab, / etc / crontab incluye una columna who que no existe en los crontabs de usuario. En el crontab del sistema, cron ejecuta el comando como el usuario especificado en esta columna. En un crontab de usuario, todos los comandos se ejecutan como el usuario que creó el crontab.
Jacob Vlijm
@Whaaaaaat Gran respuesta, funciona perfectamente, ¡gracias !. ¿Cuál es la diferencia entre -hy -s?
MrAxlee
1
@MrAxlee -sno parece ser la "sintaxis adecuada". -hsignifica detener o apagar el sistema (elección del sistema - se prefiere el apagado)
Kaz Wolfe
6

Un cronjob parece ser la mejor manera porque puede especificar diferentes horas para diferentes días. En los sistemas basados ​​en Gnome, puede instalar GNOME Shedule Tasks utilizando

sudo apt-get install gnome-schedule

y luego configure el cronjob usando la GUI.

de lo contrario, tendría que usar sudo crontab -ey luego agregar las siguientes líneas

30 11 * * 1-5 /sbin/shutdown -h now
30 10 * * 0,6 /sbin/shutdown -h now

esto apagaría la PC a las 11:30 de lunes a viernes y a las 10:30 los sábados y domingos. La estructura es muy simple:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command 

Para obtener más información sobre esto, también puede consultar CronHowto

Christian Rauchenwald
fuente
2
Tuve que usar específicamente en /sbin/shutdownlugar de shutdownporque mi raíz cron PATH era diferente que en la terminal donde probé mi script.
Jaakko
3

Podemos apagar automáticamente a la hora especificada simplemente ejecutando el comando sudo poweroffencrontab .

Si desea apagar el sistema a las 6:30 pm todos los días. Escriba en la terminal:

sudo crontab -e

editar

30 18 * * * poweroff
margarita
fuente
@mrm Existen métodos alternativos, podría haber muchas soluciones diferentes para un problema en particular y las respuestas también. ¿No es útil la respuesta o no? Le pido que no haga un voto negativo para responder o hacer preguntas si no lo tiene claro. Lea la pregunta correctamente y vea si la respuesta se aplica a esa pregunta específica o no. Si aún tiene algún dilema, puede preguntar en Ask Ubuntu Meta o aquí y luego tomar una decisión.
Margarita
En una línea de crontab, tiene dos problemas: poweroffomite los scripts de apagado, que pueden ser importantes, por ejemplo, para cerrar de forma segura su base de datos o lo que sea, y tiene un sudocrontab raíz que no es necesario. Tampoco mencionó cómo hacer referencia a diferentes días de la semana cuando se hizo la pregunta. Entonces no, este no es un método alternativo. Como es, son dos errores y una omisión. Las otras dos respuestas hechas un año antes que la suya son correctas y realmente funcionan.
señor
@mrm Bueno, estoy usando este script durante los últimos tres años y no vi ningún problema. Y sí, esta alternativa y método útil también correcto. Que es apagado automático a horas especificadas. Hay un comando para apagar y para el tiempo especificado automáticamente, podemos usar crontab según nuestro requisito. Sería mejor para usted si hace una pregunta diferente con respecto a su problema.
Margarita