destroyService(service) {
		let serviceName;
		let serviceVersion;
		if (utils.isString(service)) {
			serviceName = service;
			service = this.getLocalService(service);
		} else if (utils.isPlainObject(service)) {
			serviceName = service.name;
			serviceVersion = service.version;
			service = this.getLocalService(service.name, service.version);
		}

		if (!service) {
			return this.Promise.reject(
				new E.ServiceNotFoundError({ service: serviceName, version: serviceVersion })
			);
		}

		return this.Promise.resolve()
			.then(() => service._stop())
			.catch(err => {
				/* istanbul ignore next */
				this.logger.error(`Unable to stop '${service.fullName}' service.`, err);

				this.broadcastLocal("$broker.error", {
					error: err,
					module: "broker",
					type: C.FAILED_DESTRUCTION_SERVICE
				});
			})
			.then(() => {
				utils.removeFromArray(this.services, service);
				this.registry.unregisterService(service.fullName, this.nodeID);

				this.logger.info(`Service '${service.fullName}' is stopped.`);
				this.servicesChanged(true);

				this.metrics.set(
					METRIC.MOLECULER_BROKER_LOCAL_SERVICES_TOTAL,
					this.services.length
				);
			});
	}
Destroy a local service

@param {Service|string|object} service
@returns Promise<void>
@memberof ServiceBroker