¿Cómo cerrar Linux en un momento específico desde la terminal?

Parece que puedo cerrar utilizando sudo shutdown especificando un time o minutos.

¿Hay alguna forma de especificar el horario de cierre?

Solutions Collecting From Web of "¿Cómo cerrar Linux en un momento específico desde la terminal?"

Puede hacer esto directamente desde el shutdown command , vea el man shutdown :

 SYNOPSIS /sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message] [...] time When to shutdown. 

Así por ejemplo:

 shutdown -h 21:45 

Se ejecutará el shutdown -h a las 21:45.


Para los commands que no ofrecen esta funcionalidad, puede probar uno de los siguientes:

A. Usar en

The daemon está diseñado precisamente para esto. Dependiendo de su sistema operativo, es posible que deba instalarlo. En los sistemas basados ​​en Debian, esto se puede hacer con:

 sudo apt-get install at 

Hay tres forms de dar un command a at :

  1. Pipe it:

     $ echo "ls > a.txt" | at now + 1 min warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013 
  2. Guarde el command que desea ejecutar en un file de text y luego pase ese file a:

     $ echo "ls > a.txt" > cmd.txt $ at now + 1 min < cmd.txt warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013 
  3. También puede pasar commands de STDIN:

     $ at now + 1 min warning: commands will be executed using /bin/sh at> ls 

    Luego, presione Ctrl D para salir del shell. El command ls se ejecutará en un minuto.

Puede dar times muy precisos en el formatting de [[CC]YY]MMDDhhmm[.ss] , como en

 $ at -t 201403142134.12 < script.sh 

Esto ejecutará el script script.sh a las 21:34 y 12 segundos el 14 de marzo de 2014.

B. Usar cron (aunque esta no es una buena idea para el apagado)

El otro enfoque es usar el progtwigdor cron , que está diseñado para realizar tareas en momentos específicos. Por lo general, se utiliza para tareas que se repetirán pero también puede dar un time específico. Cada usuario tiene sus propios "crontabs" que controlan qué trabajos se ejecutan y cuándo. El formatting general de un crontab es:

 * * * * * command to be executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59) 

Entonces, por ejemplo, esto ejecutará ls todos los días a las 14:04:

 04 14 * * * ls 

Para configurar un cronjob para una date específica:

  1. Cree un nuevo crontab ejecutando crontab -e . Esto abrirá una window de tu editor de text favorito.

  2. Agregue esta línea al file que acaba de abrir. Este ejemplo en particular se ejecutará a las 14:34 del 15 de marzo de 2014 si ese día es viernes (entonces, está bien, podría ejecutarse más de una vez):

     34 14 15 5 /path/to/command 
  3. Guarde el file y salga del editor.

Esta respuesta SO sugiere una forma de ejecutarla solo una vez, pero nunca la he usado, así que no puedo responder.

No, no puede especificar una date en el command de apagado, pero existen dos alternativas:

Lo más fácil es usar el command at :

 echo "shutdown -r now" | at 10am Jul 31 

pero si no te importa usar tu calculadora y quieres apagarla, por ejemplo, 24 horas (24 * 60 = 1440 minutos):

 shutdown -r +1440 

Cerrará su sistema a las 12:00:

 $ sudo shutdown -h 12:00 

Opciones:

 -h, -P, --poweroff 

Apague la máquina.

 -r, --reboot 

Reinicia la máquina.

 -c 

Cancelar un cierre pendiente