Skip to main content

restart_in_place

Macro restart_in_place 

Source
macro_rules! restart_in_place {
    ($($arg:expr),* $(,)?) => { ... };
}
Available on crate feature tracing only.
Expand description

Halts the process and asks its supervisor to restart it in place.

restart_in_place behaves like halt!, but terminates the process with RESTART_IN_PLACE_EXIT_CODE. The environmentd container entrypoint restarts the process right away on this exit code instead of exiting the container, which avoids Kubernetes crash backoff when a process halts repeatedly.

The restarted process runs even if Kubernetes has replaced the process’s pod in the meantime, for example after a node failure. Only use this macro while the deployment is read-only, where the entrypoint’s restart marker keeps the restarted process from booting writable next to the replacement. Use halt! everywhere else, in particular after the process has been fenced out.