I designed the package ros_comm_upstart specifically for this goal. It wraps roscore as a service that can be launched at startup.