in internal/cmd/check.go [94:135]
func processModuleStartSuccess(notify chan bool, err error, mgr *module.Manager, file io.Writer, format string) {
data := &outputData{}
defer func() {
writeOutput(data, file, format)
notify <- true
}()
if err != nil {
data.Startup = err
return
}
uname, err := operator.GetOSUname()
if err != nil {
data.Startup = err
return
}
data.Kernel = uname.Release
if err := rlimit.RemoveMemlock(); err != nil {
data.Startup = err
return
}
// wait processes
processModule := mgr.FindModule(process.ModuleName).(*process.Module)
var processes []api.ProcessInterface
for i := 0; i < 3; i++ {
processes = processModule.GetAllProcesses()
if len(processes) != 0 {
break
}
time.Sleep(time.Second)
}
if len(processes) == 0 {
data.Startup = fmt.Errorf("no process")
return
}
ctx := context.Background()
data.OnCPU = testOnCPUProfiling(ctx, mgr, processes[0])
data.OffCPU = testOffCPUProfiling(ctx, mgr, processes[0])
data.Network = testNetworkProfiling(ctx, mgr, processes[0])
}