diff --git a/main/commands/run.go b/main/commands/run.go index 066bfae18..328aff010 100644 --- a/main/commands/run.go +++ b/main/commands/run.go @@ -3,6 +3,8 @@ package commands import ( "fmt" "log" + "net/http" + _ "net/http/pprof" "os" "os/signal" "path/filepath" @@ -61,11 +63,14 @@ var ( configDirs cmdarg.Arg configFormat *string configDirRecursively *bool + + configPprof *string ) func setConfigFlags(cmd *base.Command) { configFormat = cmd.Flag.String("format", core.FormatAuto, "") configDirRecursively = cmd.Flag.Bool("r", false, "") + configPprof = cmd.Flag.String("pprof", "", "") cmd.Flag.Var(&configFiles, "config", "") cmd.Flag.Var(&configFiles, "c", "") @@ -83,6 +88,14 @@ func executeRun(cmd *base.Command, args []string) { base.Fatalf("Failed to start: %s", err) } + if addr := *configPprof; addr != "" { + go func() { + if err := http.ListenAndServe(addr, nil); err != nil { + log.Print(err) + } + }() + } + if err := server.Start(); err != nil { base.Fatalf("Failed to start: %s", err) }