Package reexec facilitates the busybox style reexec of the docker binary that
we require because of the forking limitations of using Go. Handlers can be
registered with a name and the argv 0 of the exec of the binary will be used
to find and execute custom init paths.
Command returns *exec.Cmd which has Path as current binary. Also it setting
SysProcAttr.Pdeathsig to SIGTERM.
This will use the in-memory version (/proc/self/exe) of the current binary,
it is thus safe to delete or replace the on-disk binary (os.Args[0]).
As SysProcAttr.Pdeathsig is set, the signal will be sent to the process when
the OS thread which created the process dies. It is the caller's
responsibility to ensure that the creating thread is not terminated
prematurely. See https://go.dev/issue/27505 for more details.