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.

I work on a ubuntu server located in a place where I don't usually go. I use ssh over openvpn to access it. The machine has multiple wired interfaces, many static routes and multiple default gateways to WAN. I frequently change interface adresses and routes. Most of the times the changes I do are temporarily--a reboot would reset the experiments I have done. In some cases some of those modifications have gone wrong, and the machine has gone offline. In such cases I had to call up someone at the place where the server is located to send the machine into a reboot.

Now I would like to schedule a reboot--lets say after 2 hours the machine should go into a reboot cycle. And in those two hours I can do whatever temporary experiments that I want. If all the temporary changes succeed then I should be able to prevent the "afer 2 hour" reboot from happening. So what I want is:

  1. How to tell the server to reboot after a certian time?
  2. If I decide that the machine should not go into a reboot, I should be able to cancel it.
share|improve this question
add comment

2 Answers

up vote 6 down vote accepted

On the terminal type shutdown -r 10 Waiting 10 minutes before the restart& that will make the server reboot in 10 mins, broadcast a message explaining that and pressing control+c will interrupt the reboot request.

On the terminal type shutdown -r 18:00 Rebooting at 18:00 hours& that will make the server reboot at 18:00 hours, will broadcast a message explaining that and can be interrupted with control+c.

You can also interrupt any shutdown / reboot request on your "working" terminal with shutdown -a.

share|improve this answer
1  
This is a bit problematic since it is interactive and blocks the shell you are running. I'm not sure if this would work predictably over SSH if the session drops. –  Alain O'Dea Dec 2 '12 at 23:30
    
I could not find any combination of nohup and sudo that would make this work if run from a normal ssh session as a normal admin group user. –  HDave Apr 1 '13 at 18:03
add comment

You can also use at to schedule reboots. For example sudo at 22:00 to run the command at 22:00 as root. Then enter the command you want to run: /sbin/shutdown -r now and end with ctrl-d. If you decide not to run this command, run sudo atrm 1 to delete the first one in the at queue. With sudo atq you can see the queue.

share|improve this answer
    
This solution is perfect! –  Sukima Jan 8 '13 at 15:08
    
This should be marked as the correct answer! The at family of commands is something every server admin should know. –  HDave Apr 1 '13 at 18:41
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.