forked from External/grumble
Add a signal handler which freezes all servers
This commit is contained in:
parent
f273b7d328
commit
bee3327e0f
1 changed files with 18 additions and 0 deletions
18
grumble.go
18
grumble.go
|
|
@ -13,6 +13,7 @@ import (
|
|||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/signal"
|
||||
"log"
|
||||
"sqlite"
|
||||
"path/filepath"
|
||||
|
|
@ -218,6 +219,23 @@ func main() {
|
|||
log.Panicf("Unable to freeze server: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
case sig := <-signal.Incoming:
|
||||
if sig != signal.SIGINT && sig != signal.SIGTERM {
|
||||
continue
|
||||
}
|
||||
|
||||
for sid, s := range servers {
|
||||
err := s.FreezeToFile(filepath.Join(*datadir, fmt.Sprintf("%v", sid)))
|
||||
if err != nil {
|
||||
log.Printf("Unable to freeze server %v: %s", sid, err.String())
|
||||
continue
|
||||
}
|
||||
|
||||
log.Printf("Server %v frozen", sid)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue