Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

How can I automatically shutdown the system after a certain customizable time?

share|improve this question
add comment

4 Answers 4

up vote 11 down vote accepted

Open a terminal window and type in:

shutdown -h +60

and just replace 60 with whatever number of minutes you want to take.

More info here:

http://ubuntuforums.org/archive/index.php/t-473173.html http://www.linux.org/lessons/beginner/l5/lesson5a.html

share|improve this answer
    
The -P parameter (power off) seems to be a good idea too. –  htorque Jan 2 '11 at 23:28
    
shutdown +m 60 doesn't work for me. gives me an error message and says that there's an invalid time value. –  NES Jan 3 '11 at 14:26
    
I thought it was odd... it shouldn't be "+m 60", it should be "+60" (or maybe more like "-h +60". The bottom of this page seems to know how it works: linux.org/lessons/beginner/l5/lesson5a.html. –  Daniel Jan 3 '11 at 19:04
    
"shutdown -P 1" - works well and shuts down the system in 1 minute, no time unit needed. –  n3rd Aug 2 '11 at 12:01
    
actually its sudo ..... because need root privileges –  Shirish Herwade May 9 at 16:29
add comment
  • You can use gshutdown Install gshutdown
  • After installation it can be found under Applications → Accessories → GShutdown alt text
  • Also have a look at this method.
share|improve this answer
    
Can anyone say me why they down vote? –  karthick87 Jan 3 '11 at 6:11
    
i didn't down vote. But Gshutdown doesn't work smoothly here. When i choose shutdown it insteads log the user out? –  NES Jan 3 '11 at 14:45
add comment

Because the topic abt shutting down PC after certain period of inactivity is redirected to this topic, I will explain this issue here.

I spent lots of time to solve this problem, so I find it useful to share it, to make the same issue simple for others. I hv tried different programmes but they hvn't work for me so I found using short script with cronjob the best solution.

Firstly I refered to post Timed Shutdown - shutdown after 30 minutes

I will copy it below and then explain improvements to make it work:

"

Install xprintidle. This tool gives the idle time of a user.

sudo apt-get install xprintidle

Make a script autoshutdown.sh which checks for the idle time and instructs the computer to shutdown if idle for 30 minutes.

idle=`xprintidle`

if [ $idle -gt 1800000 ]; then

shutdown -h now

fi

Make a cronjob for this that checks from time to time if the system has been idle for too long and if it has been idle for a longer than 30 minutes it will shutdown. Note that the cronjob has to be made for the root user.

"


This script needs some improvements to work, like:

idle=`env DISPLAY=:0 su OUR_USER -c xprintidle 2>&1`

OUR_USER is the user we refer to for checking idle time (not root user)

DISPLAY=:0 is correct for one desktop display (run env command to read DISPLAY in Ur situation)

if script is run by OUR_USER, line above can be reduced:

idle=`env DISPLAY=:0 xprintidle 2>&1`

This topic is described http://ubuntuforums.org/showthread.php?t=1069602

if script is run by OUR_USER, shutdown command should be preceded by sudo

sudo shutdown -h now

My script was run from cron by line in cron file:

*/5 * * * * /home/OUR_USER/autoshutdown.sh 
  • every 5 minutes
  • OUR_USER should be replaced as earlier to the user we refer to.

If script is not run by root we should remember to add the line:

ALL ALL=(ALL) NOPASSWD: /sbin/shutdown 

in sudoers file, so shutdown command won't need a password to be executed.


I tried such cronjobs on 2 similar distro Lubuntu 12.04.4 RC LXLE 32-bit ( http://www.lxle.net/ )

In one system it works only using root cronjob set in file:

/var/spool/cron/crontabs/root


CAVEAT

Another problem is that xprintidle in my system has given sometimes random for me values and sometimes logically incremental. The final result - my system has been usually shutdown after 20 mins maybe, if I set the max idle value to 30 mins. I think the culprit is xscreensaver which doesn't work as is set by entered parameters.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.