Catch SIGTERM to gracefully clean up child processes & exit