me237141
By:
me237141

Restarting droplet/server automatically daily?

July 17, 2014 6.6k views

Hi,
Is it possible to have my droplet/server restart daily at a certain time? Then once restarted, either have it login automatically or run a command to run an application automatically?
The reason why I need to do this is because I have an application running and after some time it starts to lag, and until I restart the droplet, it will lag and lag.

The command I need my droplet to run after restarting is something like :
sudo screen ./TS3MusicBot_runscript.sh -parameters -parameters -parameters

I'm not sure if I could run that command without having to SSH into my droplet.

4 Answers

You can use crontab for that. Log in as root and run crontab -e. Once inside the editor, add the following line:

0 0 * * * reboot

This will reboot the server every day at midnight.

In order to then run a command after reboot, you can add another line to crontab like this:

@reboot screen ./TS3MusicBot_runscript.sh -parameters -parameters -parameters

In order for this to work under Debian/Ubuntu, you may have to run this command as root:

update-rc.d cron defaults

Another approach is to create a startup script in /etc/init.d (Debian/Ubuntu) with the following content:

#!/bin/sh

case "$1" in
    start)
        screen ./TS3MusicBot_runscript.sh -parameters -parameters -parameters
        exit 0
    ;;
    stop)
        exit 0
    ;;
    reload|restart|force-reload)
        exit 0
    ;;
    **)
        echo "Usage: $0 {start|stop|reload}" 1>&2
        exit 1
    ;;
esac

In case you choose this approach, then remember to do the following:

chmod +x /etc/init.d/musicbot
update-rc.d musicbot defaults

Hi,
thank you for that post, I tried the first method, which is :
crontab -e
Then put0 0 * * * rebootat the end
and then

@reboot screen ./TS3MusicBot_runscript.sh -parameters -parameters -parameters

And lastly

update-rc.d cron defaults

For some reason my system does not reboot at midnight. It also doesn't runt he command when I reboot it myself.
I use the command sudo reboot now but my system doesn't actually turn off.

  • What user are the cronjobs running as? Have you run crontab -e as root or as a regular user?

I run crontab -e using sudo

I was unable to get the crontab working too.

Have another answer? Share your knowledge.