There are many directions out there that don’t work on Raspbian. Specifically the “upstart” scripts, as Raspbian doesn’t come with upstart, and will mess things up greatly if you install it. Raspbian uses init.d. It’s fairly simple to get things going since a nice script was provided at the link below, mirrored here.

Create script in /etc/init.d

sudo nano /etc/init.d/NameOfYourScript

The following is an example based on starting up the no-ip service (/usr/local/bin/noip), but change the name of the script and the command to start and stop it and it would work for any command.

#! /bin/sh
# /etc/init.d/noip

### BEGIN INIT INFO
# Provides: noip
# Required-Start: $remote_fs$syslog
# Required-Stop: $remote_fs$syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
# Description: A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO

# If you want a command to always run, put it here

# Carry out specific functions when asked to by the system
case "$1" in start) echo "Starting noip" # run application you want to start /usr/local/bin/noip2 ;; stop) echo "Stopping noip" # kill application you want to stop killall noip2 ;; *) echo "Usage: /etc/init.d/noip {start|stop}" exit 1 ;; esac exit 0 Warning – Its important you test your script first and make sure it doesn’t need a user to provide a response, press “y” or similar, because you may find it hangs the raspberry pi on boot waiting for a user (who’s not there) to do something! Make script executable sudo chmod 755 /etc/init.d/NameOfYourScript Test starting the program sudo /etc/init.d/NameOfYourScript start Test stopping the program sudo /etc/init.d/NameOfYourScript stop Register script to be run at start-up To register your script to be run at start-up and shutdown, run the following command: sudo update-rc.d NameOfYourScript defaults Note – The header at the start is to make the script LSB compliant and provides details about the start up script and you should only need to change the name. If you want to know more about creating LSB scripts for managing services, see http://wiki.debian.org/LSBInitScripts If you ever want to remove the script from start-up, run the following command: sudo update-rc.d -f NameOfYourScript remove Credit: Big huge thanks to: http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html. The words above are his. Big note from me: In my case I needed my script to wait for the network to become available, so I modified the script to say: Required-Start:$network \$syslog

For more variables you could use, see: https://wiki.debian.org/LSBInitScripts