mirror of
https://github.com/adnanh/webhook.git
synced 2025-05-31 09:42:28 +00:00
Add pidfile support
Copy a simple implementation from the Moby project, since importing their package would pull in too many dependencies. Fixes #320
This commit is contained in:
parent
569921cd72
commit
876c853073
35 changed files with 7198 additions and 2 deletions
16
signals.go
16
signals.go
|
@ -15,6 +15,8 @@ func setupSignals() {
|
|||
signals = make(chan os.Signal, 1)
|
||||
signal.Notify(signals, syscall.SIGUSR1)
|
||||
signal.Notify(signals, syscall.SIGHUP)
|
||||
signal.Notify(signals, syscall.SIGTERM)
|
||||
signal.Notify(signals, os.Interrupt)
|
||||
|
||||
go watchForSignals()
|
||||
}
|
||||
|
@ -27,12 +29,22 @@ func watchForSignals() {
|
|||
switch sig {
|
||||
case syscall.SIGUSR1:
|
||||
log.Println("caught USR1 signal")
|
||||
|
||||
reloadAllHooks()
|
||||
|
||||
case syscall.SIGHUP:
|
||||
log.Println("caught HUP signal")
|
||||
|
||||
reloadAllHooks()
|
||||
|
||||
case os.Interrupt, syscall.SIGTERM:
|
||||
log.Printf("caught %s signal; exiting\n", sig)
|
||||
if pidFile != nil {
|
||||
err := pidFile.Remove()
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
}
|
||||
}
|
||||
os.Exit(0)
|
||||
|
||||
default:
|
||||
log.Printf("caught unhandled signal %+v\n", sig)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue