If it won't be simple, it simply won't be. [Hire me, source code] by Miki Tebeka, CEO, 353Solutions

Thursday, February 26, 2009

@reboot

cron has a nice special rule called @reboot which will run every time the machine is rebooted (doh!).

I use it for two main things:
  1. Notify me when one of my servers was rebooted (sometimes IT don't tell me in advance)
  2. Run my services. This is easier than writing an /etc/init.d scripts and I store my servers crontab in the source control, so deploying a new machine is easier.
An example:
# Notify that machine was rebooted
@reboot /path/to/mail -s "Machine $HOSTNANE rebooted" me@somewhere.com < /dev/null
# Run my server
@reboot (cd /path/to/awesome/server/directory && ./run_server)


Where run_server is usually something like:
#!/bin/bash

nohup ./server.py&

1 comment:

Anonymous said...

Oh cool, I was looking for something like it but it wasnt important enough to bother you with:)
Now you answer my questions even if I dont ask them lol.

Blog Archive