Hot restart

    • Statistics and some locks are kept in a shared memory region. This means that gauges will be consistent across both processes as restart is taking place.
    • The new process fully initializes itself (loads the configuration, does an initial service discovery and health checking phase, etc.) before it asks for copies of the listen sockets from the old process. The new process starts listening and then tells the old process to start draining.
    • After drain sequence, the new Envoy process tells the old Envoy process to shut itself down. This time is configurable via the option.
    • An example restarter/parent process written in Python is included in the source distribution. This parent process is usable with standard process control utilities such as monit/runit/etc.