From: Elias Fleckenstein Date: Wed, 8 Jun 2022 23:00:19 +0000 (+0200) Subject: Handle SIGUSR1 by printing stack trace X-Git-Tag: v0.2.0~2 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=1a8a4ac3dc8b9c3167e18192269d8609f6e7799e;p=hydra-dragonfire.git Handle SIGUSR1 by printing stack trace --- diff --git a/hydra.go b/hydra.go index 5b29a75..2d5d9e3 100644 --- a/hydra.go +++ b/hydra.go @@ -5,6 +5,7 @@ import ( "github.com/yuin/gopher-lua" "os" "os/signal" + "runtime/pprof" "syscall" "time" ) @@ -72,6 +73,15 @@ func main() { signalChannel = make(chan os.Signal, 1) signal.Notify(signalChannel, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP) + go func() { + ch := make(chan os.Signal, 1) + signal.Notify(ch, syscall.SIGUSR1) + for { + <-ch + pprof.Lookup("goroutine").WriteTo(os.Stdout, 1) + } + }() + l := lua.NewState() defer l.Close()