Upstart Job to Send Email During Boot

Since Ubuntu makes use of Upstart, I decided to take some time to figure out how to write a job to send a notification email every time one of my servers reboots. The Upstart job is below and is stored in /etc/init/boot-notify.conf.

# boot-notify - sends an email notification upon boot

description "sends an email notification upon boot"

start on started rc-sysinit

task
exec echo "$( hostname -f ) booted on $( date )" | mail -s "$( hostname -f ) booted" root

Here’s a brief explanation: The line start on started rc-sysinit says this job can’t run until after rc-sysinit has completed. I use Postfix, which still uses the init daemon. Therefore, it was easiest to send an email after the init daemon gets done running its jobs including starting Postfix. The task line simply says this is a short running process that doesn’t continue running the way a service would. The last line is the command to run identified by exec.