func processModuleStartSuccess()

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