gokpkg/sys.go

32 lines
504 B
Go

package gokpkg
import (
"log"
"os"
"os/exec"
"syscall"
)
func MustDropPrivileges() {
if os.Getenv("NTP_PRIVILEGES_DROPPED") == "1" {
return
}
cmd := exec.Command(os.Args[0])
cmd.Env = append(os.Environ(), "NTP_PRIVILEGES_DROPPED=1")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.SysProcAttr = &syscall.SysProcAttr{
Credential: &syscall.Credential{
Uid: 65534,
Gid: 65534,
},
}
log.Fatal(cmd.Run())
}
func Reboot() {
cmd := exec.Command("reboot")
log.Fatal(cmd.Run())
}