예제 #1
0
파일: atrace.go 프로젝트: Fsero/atrace
func NewATrace(cb audit.EventCallback) (*Atrace, error) {
	al, err := audit.OpenLink(0, 0)
	if err != nil {
		return nil, err
	}

	err = al.GetAuditEvents(true)
	if err != nil {
		return nil, err
	}

	at := &Atrace{
		al: al,
		// TODO: Randomise
		key: "atrace-xxxxxxxx",
	}

	at.processes = map[int]Process{}

	// TODO:
	// need runtime.LockOSThread()?
	al.StartEventMonitor(cb, nil, at)

	return at, nil
}
예제 #2
0
func main() {
	logger := log.New(os.Stdout, "", log.LstdFlags)
	netlink.Logger = logger

	al, _ := audit.OpenLink(0, 0)

	al.StartEventMonitor(EventCallback, nil)

	time.Sleep(3600 * time.Second)
}