From 1a8a4ac3dc8b9c3167e18192269d8609f6e7799e Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Thu, 9 Jun 2022 01:00:19 +0200 Subject: [PATCH] Handle SIGUSR1 by printing stack trace --- hydra.go | 10 ++++++++++ 1 file changed, 10 insertions(+) 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() -- 2.44.0