Skip to content
/ goginx Public

A library of Go application, it can make the Go application run like daemon. Implements the daemon, graceful restart and graceful shutdown.

Notifications You must be signed in to change notification settings

wllenyj/goginx

Repository files navigation

goginx

A library of Go application, it can make the Go application run like Nginx. Implements the daemon, graceful restart and graceful shutdown.

Usage:

http.go

package main

import (
        "flag"
        "fmt"
        "github.com/wllenyj/goginx"
        "log"
        "net/http"
        "os"
)

var port = flag.String("p", "8883", "port")

func handler(w http.ResponseWriter, r *http.Request) {
        ret := fmt.Sprintf("pid:%d\n", os.Getpid())
        w.Write([]byte(ret))
}

func main() {
        flag.Parse()
        program, err := goginx.Daemon()
        if err != nil {
                log.Printf("Daemon err. %s", err)
                return
        }
        http.HandleFunc("/hello", handler)

        if err = program.ListenAndServe(":"+*port, nil); err != nil {
                log.Printf("listen err. %s", err)
                return
        }
        program.Run()
}
$> go get github.com/wllenyj/goginx
$> go build http.go
$> ./http -p 8883
$> curl "localhost:8883/hello"
pid:5442
$> ./http -s restart
$> curl "localhost:8883/hello"
pid:6312
$> ./http -s stop
$> curl "localhost:8883/hello"
curl: (7) couldn't connect to host

References

About

A library of Go application, it can make the Go application run like daemon. Implements the daemon, graceful restart and graceful shutdown.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published