Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
| // +build linux | |
| package reexec | |
| import ( | |
| "os/exec" | |
| "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 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]). | |
| func Command(args ...string) *exec.Cmd { | |
| return &exec.Cmd{ | |
| Path: Self(), | |
| Args: args, | |
| SysProcAttr: &syscall.SysProcAttr{ | |
| Pdeathsig: syscall.SIGTERM, | |
| }, | |
| } | |
| } |