|
@@ -7,10 +7,16 @@ import (
|
|
|
"syscall"
|
|
|
)
|
|
|
|
|
|
+// Self returns the path to the current process's binary.
|
|
|
+// Returns "/proc/self/exe".
|
|
|
+func Self() string {
|
|
|
+ return "/proc/self/exe"
|
|
|
+}
|
|
|
+
|
|
|
// Command returns *exec.Cmd which have Path as current binary. Also it setting
|
|
|
// SysProcAttr.Pdeathsig to SIGTERM.
|
|
|
-// For example if current binary is "docker" at "/usr/bin", then cmd.Path will
|
|
|
-// be set to "/usr/bin/docker".
|
|
|
+// 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]).
|
|
|
func Command(args ...string) *exec.Cmd {
|
|
|
return &exec.Cmd{
|
|
|
Path: Self(),
|