What is the best way to launch a background application when an at boot time and manage its lifecycle in the sense that when it crashes or quits unexpectedl