top
(README.md)
# 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)

Imported by 5 package(s)

  1. github.com/codeskyblue/fswatch
  2. github.com/codeskyblue/gosuv
  3. github.com/codeskyblue/kexec/examples
  4. github.com/franciscocpg/fswatch
  5. github.com/jeromenerf/fswatch

Test imports 1 package(s)

  1. github.com/smartystreets/goconvey/convey