diff --git a/main.go b/main.go index a647833..8008252 100644 --- a/main.go +++ b/main.go @@ -18,16 +18,17 @@ import ( "golang.org/x/crypto/pbkdf2" "golang.org/x/term" - _ "github.com/Mrs4s/go-cqhttp/modules/mime" // mime检查模块 - "github.com/Mrs4s/go-cqhttp/modules/servers" - _ "github.com/Mrs4s/go-cqhttp/modules/silk" // silk编码模块 - "github.com/Mrs4s/go-cqhttp/coolq" "github.com/Mrs4s/go-cqhttp/global" "github.com/Mrs4s/go-cqhttp/global/terminal" "github.com/Mrs4s/go-cqhttp/internal/base" "github.com/Mrs4s/go-cqhttp/internal/selfupdate" + "github.com/Mrs4s/go-cqhttp/modules/servers" "github.com/Mrs4s/go-cqhttp/server" + + _ "github.com/Mrs4s/go-cqhttp/modules/mime" // mime检查模块 + _ "github.com/Mrs4s/go-cqhttp/modules/pprof" // pprof 性能分析 + _ "github.com/Mrs4s/go-cqhttp/modules/silk" // silk编码模块 ) // 允许通过配置文件设置的状态列表 diff --git a/server/pprof.go b/modules/pprof/pprof.go similarity index 62% rename from server/pprof.go rename to modules/pprof/pprof.go index 00b4988..87b69e1 100644 --- a/server/pprof.go +++ b/modules/pprof/pprof.go @@ -1,4 +1,4 @@ -package server +package pprof import ( "fmt" @@ -12,6 +12,7 @@ import ( "github.com/Mrs4s/go-cqhttp/coolq" "github.com/Mrs4s/go-cqhttp/modules/config" + "github.com/Mrs4s/go-cqhttp/modules/servers" ) // runPprof 启动 pprof 性能分析服务器 @@ -33,15 +34,17 @@ func runPprof(_ *coolq.CQBot, node yaml.Node) { mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) mux.HandleFunc("/debug/pprof/trace", pprof.Trace) server := http.Server{Addr: addr, Handler: mux} - go func() { - log.Infof("pprof debug 服务器已启动: %v/debug/pprof", addr) - log.Warnf("警告: pprof 服务不支持鉴权, 请不要运行在公网.") - if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed { - log.Error(err) - log.Infof("pprof 服务启动失败, 请检查端口是否被占用.") - log.Warnf("将在五秒后退出.") - time.Sleep(time.Second * 5) - os.Exit(1) - } - }() + log.Infof("pprof debug 服务器已启动: %v/debug/pprof", addr) + log.Warnf("警告: pprof 服务不支持鉴权, 请不要运行在公网.") + if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed { + log.Error(err) + log.Infof("pprof 服务启动失败, 请检查端口是否被占用.") + log.Warnf("将在五秒后退出.") + time.Sleep(time.Second * 5) + os.Exit(1) + } +} + +func init() { + servers.Register("pprof", runPprof) } diff --git a/server/doc.go b/server/doc.go index f0a6bdd..19a97b9 100644 --- a/server/doc.go +++ b/server/doc.go @@ -8,6 +8,5 @@ func init() { servers.Register("http", runHTTP) servers.Register("ws", runWSServer) servers.Register("ws-reverse", runWSClient) - servers.Register("pprof", runPprof) servers.Register("lambda", runLambda) }