Popularity
2.0
Growing
Activity
0.0
Stable
23
1
3

Programming language: Go
License: MIT License
Tags: Utilities    
Latest version: v0.1.1

shutdown alternatives and similar packages

Based on the "Utilities" category.
Alternatively, view shutdown alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of shutdown or a related project?

Add another 'Utilities' Package

README

Golang App Shutdown Hooks

GoDoc Report Coverage Status Build Status

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](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)