Files
weave/npc/ulogd/ulogd.go
T

35 lines
598 B
Go

package ulogd
import (
"io"
"os"
"os/exec"
"syscall"
"github.com/weaveworks/weave/common"
)
func waitForExit(cmd *exec.Cmd) {
if err := cmd.Wait(); err != nil {
common.Log.Fatalf("ulogd terminated: %v", err)
}
common.Log.Fatal("ulogd terminated normally")
}
func Start() error {
cmd := exec.Command("/usr/sbin/ulogd", "-v")
cmd.SysProcAttr = &syscall.SysProcAttr{
Pdeathsig: syscall.SIGKILL,
}
stdout, err := cmd.StderrPipe()
if err != nil {
return err
}
if err := cmd.Start(); err != nil {
return err
}
go io.Copy(os.Stdout, stdout)
go waitForExit(cmd)
return nil
}