func StartEarthquakeRoutines(c *docker.Container, cfg config.Config) error { log.Debugf("Starting Orchestrator") go func() { oerr := StartOrchestrator(cfg) if oerr != nil { panic(log.Critical(oerr)) } }() if cfg.GetBool("containerParam.enableEthernetInspector") { nfqNum := cfg.GetInt("containerParam.ethernetNFQNumber") if nfqNum <= 0 { return fmt.Errorf("strange containerParam.ethernetNFQNumber: %d", nfqNum) } log.Debugf("Configuring NFQUEUE %d for container %s", nfqNum, c.ID) err := SetupNFQUEUE(c, nfqNum, false, false) if err != nil { return err } log.Debugf("Starting Ethernet Inspector") go func() { ierr := StartEthernetInspector(c, nfqNum) if ierr != nil { panic(log.Critical(ierr)) } }() } if cfg.GetBool("containerParam.enableProcInspector") { watchInterval := cfg.GetDuration("containerParam.procWatchInterval") if watchInterval <= 0 { return fmt.Errorf("strange containerParam.procWatchInterval: %s", watchInterval) } log.Debugf("Starting Process Inspector") go func() { ierr := StartProcInspector(c, watchInterval) if ierr != nil { panic(log.Critical(ierr)) } }() } return nil }