Services should throw exceptions for startup errors
Service#start()
returns true if the service started successfully. Services are always expected to start unless there's a fatal problem, so the interface should use an exception rather than a return value to indicate an error.