31

I use Torrents often, so I need to know how to make my computer start up and shut down automatically, Wi-Fi is switched on at six in the morning in my hotel and switched off at two AM. (I am able to schedule torrents, that's not a problem), I don't want my computer always plugged in to a power supply.

muru
  • 197,895
  • 55
  • 485
  • 740
kernel_panic
  • 11,732

7 Answers7

21

For a one-time shutdown you can use

shutdown -h 02:00

To schedule it you can use cron. There are some GUIs for it like gnome-schedule.

But to start machine on schedule you have to look at BIOS/UEFI settings.

Update: check the answers about MythTV and Wake on Plan below to schedule startup.

int_ua
  • 8,574
13

MythTV is able to shut down computer when it's no longer in use and wake it up a few minutes before the next recording starts. It does it by using ACPI functions to set wakeup time before shutting down. There is an extensive howto on configuring this, which basically boils down to:

First verify that your Linux kernel is 2.6.22 or newer and the HWclock update function has been disabled as described above.

Simple test to wake the machine 5 minutes from now

sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 5 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm

Check

cat /proc/driver/rtc

This should return a list of parameters. Check the "alrm_time" is 5 minutes into the future and the "alrm_date" is today.

Shutdown your computer and see if it comes back up in ~5 min.

sudo shutdown -h now  

(in Ubuntu 10.4 "sudo shutdown -P now" (-h may cause system to restart))

Of course, if you always need to shut the computer down at the same time and wake it up at the same time, you can just configure wake-up time in bios (if there's such an option) and schedule a shutdown right from init scripts

Sergey
  • 43,665
  • Great, didn't know about it. Should alrm_pending be 'yes' if alarm is set? – int_ua Nov 29 '11 at 11:37
  • On my machine alarm_pending is "no" even after I set the wake-up time using the script above. The machine wakes up perfectly though so I think this parameter means something else – Sergey Nov 29 '11 at 21:26
13

Use a cronjob to auto sleep and auto resume. The command below will put the the computer to sleep at 02.00 AM and start the machine 4 hours later (14400 seconds)

00 2 * * * root /usr/sbin/rtcwake -m off -s 14400
Jom32y
  • 131
  • 1
  • 2
6

I've written an application to schedule startup, it's called Wake on Plan.

It's not available in the official repository yet (review pending) but you can start using it from PPA:

https://launchpad.net/~xintx-ua/+archive/wakeonplan

2014-2015 Update:

I've created the QML version with Ubuntu SDK using phone as a target and hoping for easy porting to desktop over a year ago. But click packages were never ready for use on desktop and now I'm waiting until snappy packages will be. Please notify me when they are. Right now even snappy list -uv crashed on my 15.04x64 installation and it doesn't look ready at all. Or you can try building a deb packages yourself, I'll try to help as much as I can.

int_ua
  • 8,574
  • 1
    I've tried it (January 18th, 2013) and it works well under 12.10 — though there is no "Quantal" package. Is it under active development? – Ed Villegas Jan 19 '13 at 14:42
  • Thanks for the info :) Not really active as it's still wasn't approved due to one empty folder in the package that I can't find how to get rid of, check here: http://askubuntu.com/questions/221701 – int_ua Jan 20 '13 at 06:05
  • And Quickly 12.08.x intended for usage under 12.10 breaks a lot, so I first wanted to finish the 12.04 version. – int_ua Jan 20 '13 at 06:08
  • 1
    Does this still work? If so, could you build packages for more recent Ubuntu versions please? :) – Seth Jul 12 '15 at 18:10
  • Short: ASAP. Long: Thanks for the question, I'm planning to do it but a little bit overwhelmed with work currently. – int_ua Jul 13 '15 at 23:30
  • updated the body – int_ua Aug 26 '15 at 23:33
1

I'm using an older Ubuntu 10.04.4 LTS system, and I have had some success with the rtcwake command. Use it like this on the command line:

# wake the system in 1 Hour:
sudo rtcwake -s 3600 -m disk

The -m disk option should put it in a low-power state, and depending on hardware support (i.e.: your own computer), you might even be able to successfully use -m off to fully power off.

Also, you can put the above into the /etc/crontab to schedule it automatically every day.

Ogre Psalm33
  • 111
  • 3
0

You can use shutdown command to schedule a shutdown. To shutdown at 2 AM you can use the following command:

sudo shutdown -h 2:00

You will need to run this command in terminal and leave the terminal open.

Regarding startup, I dont think that it is possible for Ubuntu or any app running on it to switch on a computer. You will need hardware assistance for this for example you can use Wake on Lan.

binW
  • 13,034
  • Regarding startup - you're correct in a very narrow technical sense (because Ubuntu is not running when a computer is down), but with a bit of trickery it is possible to schedule a wakeup from a program/script. :) – Sergey Nov 29 '11 at 11:02
  • I don't think you need to keep the terminal open. You can stop the job with ctrl-z and then use bg to background it. Log out, log in and ps ax | grep shutdown should show that it's still running. – Jared Beck Feb 13 '13 at 01:18
-1

I suggest this command in your cron:

dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

This does not need root.

Eric Carvalho
  • 54,385