Sleep & Wakeup Schedule | Ubuntu 16.04.3 LTS

12,869

Solution 1

From terminal :

Suspend and wake up after 60 sec :

sudo rtcwake -m disk -s 60

Suspend and wake up today 16.00

sudo rtcwake -m no -l -t "$(date -d 'today 16:00:00' '+%s')"

Suspend and wake up tommorow 10.00 :

sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 10:00')

Suspend and wake up specific date and time :

sudo rtcwake -m no -l -t "$(date -d '2017-04-25 16:00:00' '+%s')"

To shutdown for Maintenance use :

sudo shutdown -P +60 "The system is going DOWN to maintenance mode in 60 minutes!"

sudo shutdown -P 22:10 "The system is going DOWN to maintenance mode at 22:10!"

Using Autopoweroff :

Download Autopoweroff:

wget https://github.com/deragon/autopoweroff/releases/download/3.0.0/autopoweroff-3.0.0-1.noarch.deb

Install Autopoweroff:

sudo dpkg -i autopoweroff-3.0.0-1.noarch.deb
sudo apt-get install -f

autopoweroff autopoweroff2

Solution 2

The script you are following is overly complicated. A simpler method is described here.

Before a full implementation of 1am sleep and 6am wake, you can do a simple 10 second test:

sudo rtcwake -m mem -s 10 && firefox

This test will ensure suspending to RAM actually works. Upon resuming firefox is automatically started up.

Rather than messing around with UTC, have your rtcwake command called from cron at 1am and wake up 18000 seconds later. Your cron table entry would look something like this:

0 1 * * *  sh /usr/sbin/rtcwake -m mem -s 18000 >> /home/Me/SuspendResume.log 2>&1

There is no need for sudo prefix because cron runs with sudo privileges.

Replace Me with your user name. Check the file SuspendResume.log for cron messages periodically and whenever there is a problem. 2>&1 option redirects error messages to the .log file.

Caveats

  • RTC stands for real-time clock. rtcwake uses your computer’s hardware clock, which you can set in your BIOS, to determine when your computer will wake up. If you’re using an old computer with a dying CMOS battery that can’t keep the clock running properly, this won’t work.
  • If sleep, suspend to RAM, or hibernate don’t work properly with your Linux system – perhaps because Linux doesn’t have the drivers to make them work properly with your hardware – this may not work.
  • Be careful when setting a laptop to automatically wake at a specific time. You wouldn’t want it waking up, running, and overheating or running down its battery in a laptop bag.
Share:
12,869
Ryan
Author by

Ryan

Updated on September 18, 2022

Comments

  • Ryan
    Ryan almost 2 years

    I've been looking for solutions to have my computer go to sleep at 1am EST and wakeup at 6pm EST every day. Thus far I've been unsuccessful.

    I tried using rtcwake and cronjobs as well as the script here:

    Automatically Resume from Sleep / Standby / Suspend | Ubuntu Forums

    Even other forums I couldn't make it work.

    Would really appreciate help.

    P.s. I have disk encryption enabled so I can't hybernate.

    • WinEunuuchs2Unix
      WinEunuuchs2Unix over 6 years
      What is the make and model of your computer?
    • WinEunuuchs2Unix
      WinEunuuchs2Unix over 6 years
      Can you manually suspend/resume your computer via menu/keyboard/power button?
  • Ryan
    Ryan over 6 years
    Thank An0n. I'm not sure why but that application doesn't seem to be working see configuration: prntscr.com/ijm11d At 1:37pm EST I configured it as seen in that image. Hit "Save" and then "Quit". It's now 2:09 EST and nothing. Any ideas?
  • An0n
    An0n over 6 years
    It uses UTC time.
  • Ryan
    Ryan over 6 years
    it went to sleep on time but failed to wake up. I had this same problem when I used rtcwake and cronjobs together.
  • An0n
    An0n over 6 years
    You must change that in your bios settings in the power settings should be something like "Auto-power-on"
  • An0n
    An0n over 6 years
    Please mark the Answer as Accepted if it solved your issue. So people know the question is answered. Thx in advance.
  • Ryan
    Ryan over 6 years
    No luck with the power settings in my bios. I'm using an Z370 Aorus Gaming 5 chipset. I tested out 3 different features. Also tried switching to RTC wake but that wouldn't even put my computer to sleep, specifically : sudo rtcwake -m no -l -t "$(date -d 'today 16:00:00' '+%s')". I tested the time with UTC and EST and gave the system 10 minutes to to detect the new cronjob.
  • adazem009
    adazem009 about 4 years
    I got a write error when I used it with "-m disk" (I think this is hybrid sleep) but it worked with "-m mem" (suspend to RAM).