¿Cómo puedo hibernar o dormir mi escritorio Ubuntu 10.10 y "despertarlo" al día siguiente?
¡He visto software que puede hacer esto en Windows, por lo que no puede ser difícil en Ubuntu!
El comando que le interesa es rtcwake
:
Este programa se utiliza para ingresar al estado de suspensión del sistema hasta la hora de activación especificada.
Para encontrar la sintaxis correcta que funcione para usted, intente lo siguiente:
sudo rtcwake -u -s 60 -m mem
Esto debería suspender la computadora durante 60 segundos antes de restaurar. El parámetro importante es mem
que tiene varias opciones que puede elegir: juegue para encontrar el valor que mejor funcione para usted:
standby
ACPI state S1. This state offers minimal, though real,
power savings, while providing a very low-latency transi‐
tion back to a working system. This is the default mode.
mem ACPI state S3 (Suspend-to-RAM). This state offers signif‐
icant power savings as everything in the system is put
into a low-power state, except for memory, which is
placed in self-refresh mode to retain its contents.
disk ACPI state S4 (Suspend-to-disk). This state offers the
greatest power savings, and can be used even in the
absence of low-level platform support for power manage‐
ment. This state operates similarly to Suspend-to-RAM,
but includes a final step of writing memory contents to
disk.
off ACPI state S5 (Poweroff). This is done by calling
'/sbin/shutdown'. Not officially supported by ACPI, but
usually working.
no Don't suspend. The rtcwake command sets RTC wakeup time
only.
on Don't suspend, but read RTC device until alarm time
appears. This mode is useful for debugging.
Se podría usar un script (al final de esta publicación) para suspender su computadora y despertar a una hora específica:
la sintaxis es suspend_until [hh:mm]
por ejemplo
sudo ./suspend_until 07:30
Guarde el script como nombre suspend_until
y dele derechos de ejecución, es decir
chmod +x suspend_until
Puede crear un trabajo cron de raíz que llame a este script para que se ejecute a una hora específica de la tarde y luego se despierte por la mañana:
sudo crontab -e
Ahora ingrese algo como ejecutar el script de suspensión a las 23:30:
30 23 * * * /home/myhomefolder/suspend_until 07:30
#!/bin/bash
# Auto suspend and wake-up script
#
# Puts the computer on standby and automatically wakes it up at specified time
#
# Written by Romke van der Meulen <[email protected]>
# Minor mods fossfreedom for AskUbuntu
#
# Takes a 24hour time HH:MM as its argument
# Example:
# suspend_until 9:30
# suspend_until 18:45
# ------------------------------------------------------
# Argument check
if [ $# -lt 1 ]; then
echo "Usage: suspend_until HH:MM"
exit
fi
# Check whether specified time today or tomorrow
DESIRED=$((`date +%s -d "$1"`))
NOW=$((`date +%s`))
if [ $DESIRED -lt $NOW ]; then
DESIRED=$((`date +%s -d "$1"` + 24*60*60))
fi
# Kill rtcwake if already running
sudo killall rtcwake
# Set RTC wakeup time
# N.B. change "mem" for the suspend option
# find this by "man rtcwake"
sudo rtcwake -l -m mem -t $DESIRED &
# feedback
echo "Suspending..."
# give rtcwake some time to make its stuff
sleep 2
# then suspend
# N.B. dont usually require this bit
#sudo pm-suspend
# Any commands you want to launch after wakeup can be placed here
# Remember: sudo may have expired by now
# Wake up with monitor enabled N.B. change "on" for "off" if
# you want the monitor to be disabled on wake
xset dpms force on
# and a fresh console
clear
echo "Good morning!"
nótese bien
Cambie mem
en esta parte del script para cualquier método de suspensión que funcione para usted:
# Set RTC wakeup time
sudo rtcwake -l -m mem -t $DESIRED &
También es posible que tenga que sustituir la -u
bandera en lugar de la -l
bandera dependiendo de si su reloj de hardware usa la hora UTC ( -u
) o local ( -l
). Tenga en cuenta que su reloj de hardware es diferente del reloj del sistema que ve en su sistema operativo.
crédito a redgeonline
Usando rtcwake, he creado un script bash simple. Utiliza php para traducir el lenguaje natural al tiempo del sistema. Por ejemplo:
sudo ./cu "tomorrow 9am"
sudo ./cu "next monday 3pm"
sudo ./cu "1 hour ago"
rtcwake: time doesn't go backward
Puedes descargarlo aquí.
fuente
rtcwake
no tuvo efecto en mi máquina. En mi placa base Asus, tuve que establecer el tiempo de activación en la BIOS. Encontré la configuración en Avanzado> menú APM y tuve que usar UTC a pesar de que mi hora de BIOS está configurada en hora del este de EE. UU.fuente