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 }
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) }