Making Bootup Music with beep and rc.local

In my house I run a headless server which I administrate via SSH. I reboot the server regularly, but because there is no monitor there is no way of knowing when the machine is finished booting (since, of course, my SSH connection is terminated during reboot). In a situation like this you can just ping the server’s IP until you get a response, then log in via SSH, check the logs, and make sure everything is
running properly.

But rather than having to ping the server we can use a program called **beep** and the startup script */etc/rc.local* to let us know when the machine has finished booting.

As you may know, */etc/rc.local* is a startup script which runs at the end of the boot process, after everything else, immediately before the login prompt appears. It is usually empty by default. There are a handful of reasons why someone might need to modify *rc.local*. As the post’s title suggests, we will use it in conjunction with beep to make our machine play some bootup music.

**beep** is a program that beeps the PC speaker. It may or may not be installed by default in your distribution, but it is almost certainly available in the repositories. beep is highly configurable and allows for any number of beeps, of any duration, at any frequency. After reading the beep man page, I got my music on and wrote a couple of bash scripts to play some simple tunes. I saved the scripts in */usr/local/bin*, and added one of them to */etc/rc.local*. Now when my server finishes rebooting it plays the Imperial March! If you have beep installed, give it a try:

#!/bin/sh

beep \
-f 392 -l 450 -r 3 -D 150 \
-n -f 311.13 -l 400 -D 50 \
-n -f 466.16 -l 100 -D 50 \
-n -f 392 -l 500 -D 100 \
-n -f 311.13 -l 400 -D 50 \
-n -f 466.16 -l 100 -D 50 \
-n -f 392 -l 600 -D 600 \
-n -f 587.33 -l 450 -r 3 -D 150 \
-n -f 622.25 -l 400 -D 50 \
-n -f 466.16 -l 100 -D 50 \
-n -f 369.99 -l 500 -D 100 \
-n -f 311.13 -l 400 -D 50 \
-n -f 466.16 -l 100 -D 50 \
-n -f 392 -l 500 -D 100

The frequencies for the notes came from a page which you can find linked in the *Additional Resources* below. I must warn you, if you are not musical you are going to have a very hard time authoring your own beep music. But if you are up for the challenge, it is the geekiest music you will ever write. Like, geekier than [Pocket Calculator](http://www.youtube.com/watch?v=zZt64_XOflk).

### Additional Resources ###

[An introduction to services, runlevels, and rc.d scripts](http://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts) – linux.com
[Arch Boot Process](http://wiki.archlinux.org/index.php/Arch_Boot_Process) – archlinux.org
[Frequencies of Musical Notes](http://www.phy.mtu.edu/~suits/notefreqs.html)

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *