I'd put them in .bash_profile, but in such a way that there would be checks to ensure that the processes aren't already running, ie., .bash_profile will be sourced with each of your logins.
For example, my lappy is setup so that both my wife and I autologin and startx, so my .bash_profile has this:
Code:
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/vc/3 ]; then
startx
fi
which checks to ensure that x isn't already running, and that the tty that startx is called from is vc3.
You may also consider putting some commands in rc.local, for example, I have a couple of ssh tunnels that are started in rc.local, which means that they are established whether or not anyone is actually logged in.
cheers,