pub fn add_shutdown_hook(&mut self, hook: ShutdownHook) -> &mut Self {
        tracing::info!(
            "Layer {} has added a new shutdown hook: {}",
            self.layer,
            hook.id
        );
        self.service
            .runnables
            .shutdown_hooks
            .push(NamedFuture::new(hook.future, hook.id));
        self
    }
Adds a future to be invoked after node shutdown.
May be used to perform cleanup tasks.

The future is guaranteed to only be polled after all the node tasks are stopped or timed out.
All the futures will be awaited sequentially.
core/lib/node_framework/src/service/context.rs