init
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
package kexec
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func Command(name string, arg ...string) *KCommand {
|
||||
return &KCommand{
|
||||
Cmd: exec.Command(name, arg...),
|
||||
}
|
||||
}
|
||||
|
||||
func CommandString(command string) *KCommand {
|
||||
cmd := exec.Command("cmd", "/c", command)
|
||||
//cmd.Stdout = os.Stdout
|
||||
//cmd.Stderr = os.Stderr
|
||||
return &KCommand{
|
||||
Cmd: cmd,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *KCommand) Terminate(sig os.Signal) (err error) {
|
||||
if p.Process == nil {
|
||||
return nil
|
||||
}
|
||||
pid := p.Process.Pid
|
||||
c := exec.Command("taskkill", "/t", "/f", "/pid", strconv.Itoa(pid))
|
||||
c.Stdout = os.Stdout
|
||||
c.Stderr = os.Stderr
|
||||
return c.Run()
|
||||
}
|
||||
|
||||
// SetUser not support on windws
|
||||
func (k *KCommand) SetUser(name string) (err error) {
|
||||
log.Printf("Can not set user(%s) on windows", name)
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user