You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.2 KiB
68 lines
1.2 KiB
2 years ago
|
# kexec
|
||
|
[![GoDoc](https://godoc.org/github.com/codeskyblue/kexec?status.svg)](https://godoc.org/github.com/codeskyblue/kexec)
|
||
|
|
||
|
This is a golang lib, add a `Terminate` command to exec.
|
||
|
|
||
|
Tested on _windows, linux, darwin._
|
||
|
|
||
|
This lib has been used in [fswatch](https://github.com/codeskyblue/fswatch).
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
go get -v github.com/codeskyblue/kexec
|
||
|
|
||
|
|
||
|
example1:
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import "github.com/codeskyblue/kexec"
|
||
|
|
||
|
func main(){
|
||
|
p := kexec.Command("python", "flask_main.py")
|
||
|
p.Start()
|
||
|
p.Terminate(syscall.SIGINT)
|
||
|
}
|
||
|
```
|
||
|
|
||
|
example2: see more [examples](examples)
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/codeskyblue/kexec"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
// In unix will call: bash -c "python flask_main.py"
|
||
|
// In windows will call: cmd /c "python flask_main.py"
|
||
|
p := kexec.CommandString("python flask_main.py")
|
||
|
p.Stdout = os.Stdout
|
||
|
p.Stderr = os.Stderr
|
||
|
p.Start()
|
||
|
p.Terminate(syscall.SIGKILL)
|
||
|
}
|
||
|
```
|
||
|
|
||
|
example3:
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import "github.com/codeskyblue/kexec"
|
||
|
|
||
|
func main() {
|
||
|
p := kexec.Command("whoami")
|
||
|
p.SetUser("codeskyblue") // Only works on darwin and linux
|
||
|
p.Run()
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## PS
|
||
|
This lib also support you call `Wait()` twice, which is not support by `os/exec`
|
||
|
|
||
|
## LICENSE
|
||
|
[MIT](LICENSE)
|