Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - ztrue/shutdown: Golang app shutdown hooks.
Golang app shutdown hooks. Contribute to ztrue/shutdown development by creating an account on GitHub.
Visit SiteGitHub - ztrue/shutdown: Golang app shutdown hooks.
Golang app shutdown hooks. Contribute to ztrue/shutdown development by creating an account on GitHub.
Powered by 0x5a.live ๐
Golang App Shutdown Hooks
This package provides convenient interface for working with os.Signal
.
Multiple hooks can be applied, they will be called simultaneously on app shutdown.
Example
package main
import (
"log"
"time"
"github.com/ztrue/shutdown"
)
func main() {
shutdown.Add(func() {
// Write log.
// Stop writing files.
// Close connections.
// Etc.
log.Println("Stopping...")
log.Println("3")
time.Sleep(time.Second)
log.Println("2")
time.Sleep(time.Second)
log.Println("1")
time.Sleep(time.Second)
log.Println("0, stopped")
})
// App emulation.
go func() {
log.Println("App running, press CTRL + C to stop")
select {}
}()
shutdown.Listen()
}
Find more executable examples in examples dir.
How to Use
Import
import "github.com/ztrue/shutdown"
Add Shutdown Hook
shutdown.Add(func() {
log.Println("Stopping")
})
Remove Hook
key := shutdown.Add(func() {
log.Println("Stopping")
})
shutdown.Remove(key)
Hook With Custom Key
shutdown.AddWithKey("mykey", func() {
log.Println("Stopping")
})
shutdown.Remove("mykey")
Hook With Signal Parameter
shutdown.AddWithParam(func(os.Signal) {
log.Println("Stopping because of", os.Signal)
})
Listen for Specific Signals
shutdown.Listen(syscall.SIGINT, syscall.SIGTERM)
Reload
Reload service on SIGHUP
shutdown.AddWithParam(func(sig os.Signal) {
if sig == syscall.SIGHUP {
log.Println( "Reload conf...")
reloadConf()
// listen again signals to avoid shutdown
shutdown.Listen(syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
} else { // SIGINT, SIGTERM
log.Println("Stopping...")
}
})
shutdown.Listen(syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
GoLang Resources
are all listed below.
GitHub - GuilhermeCaruso/anko: :crystal_ball: Simple application watcher
resource
~/github.com
resource
GitHub - jidicula/go-fuzz-action: GitHub Action for Go 1.18 fuzz testing
resource
~/github.com
resource
GitHub - tucnak/climax: Climax is an alternative CLI with the human face
resource
~/github.com
resource
GitHub - lawrencewoodman/roveralls: A Go recursive coverage testing tool
resource
~/github.com
resource
GitHub - nakagami/firebirdsql: Firebird RDBMS sql driver for Go (golang)
resource
~/github.com
resource
GitHub - liweiyi88/onedump: Effortlessly database dump with one command.
resource
~/github.com
resource
GitHub - beefsack/go-astar: Go implementation of the A* search algorithm
resource
~/github.com
resource
GitHub - lxn/walk: A Windows GUI toolkit for the Go Programming Language
resource
~/github.com
resource
GitHub - mongodb/mongo-go-driver: The Official Golang driver for MongoDB
resource
~/github.com
resource
GitHub - bykof/gostradamus: Gostradamus: Better DateTimes for Go ๐ฐ๏ธ
resource
~/github.com
resource
GitHub - mozillazg/go-unidecode: ASCII transliterations of Unicode text.
resource
~/github.com
resource
GitHub - bolknote/go-gd: Go bingings for GD (http://www.boutell.com/gd/)
resource
~/github.com
resource
GitHub - mosajjal/dnsmonster: Passive DNS Capture and Monitoring Toolkit
resource
~/github.com
resource
GitHub - haxpax/gosms: :mailbox_closed: Your own local SMS gateway in Go
resource
~/github.com
resource
GitHub - wajox/gobase: This is a simple skeleton for golang applications
resource
~/github.com
resource
GitHub - VividCortex/gohistogram: Streaming approximate histograms in Go
resource
~/github.com
resource
GitHub - malaschitz/randomForest: Random Forest implementation in golang
resource
~/github.com
resource
GitHub - google/gopacket: Provides packet processing capabilities for Go
resource
~/github.com
resource
GitHub - khezen/evoli: Genetic Algorithm and Particle Swarm Optimization
resource
~/github.com
resource
GitHub - didip/tollbooth: Simple middleware to rate-limit HTTP requests.
resource
~/github.com
resource
GitHub - mustafaakin/gongular: A different approach to Go web frameworks
resource
~/github.com
resource
GitHub - songgao/colorgo: Colorize (highlight) `go build` command output
resource
~/github.com
resource
Made with โค๏ธ
to provide different kinds of informations and resources.