If you run a command from /etc/rc.local but do not send it to background, it will occupy the terminal and the startup stops until you release it. Placing a "&" at the end of the command would help too. But I recommend you better write an init script for your proxy daemon process, rather than to run it from rc.local.
/usr/share/doc/initscripts*/sysvinitfiles
holds an skeleton example.
Could you explain why you think it's preferable to use such a script vs. placing the commands in rc.local? I'm still learning, and the difference in the two approaches is not apparent to me.
-- Claude Jones Bluemont, VA, USA