Creating a Custom Ubuntu Daemon
Since you asked about Ubuntu specifically, you should know that sysv-style init scripts (the ones that live under /etc/init.d) are being phased out in favor of Upstart jobs, which IMHO are a lot easier to create and work with. Here are some links to get you started:
http://en.wikipedia.org/wiki/Upstart