func (s *Server) RegisterUnix(addr string, handler http.Handler) {
	s.addrs = append(s.addrs, address{addr, "unix"})
	s.handlers = append(s.handlers, handler)
}
RegisterUnix register (addr, handler) on unix socket
package graceful
import (
	"net/http"
	"os"
	"syscall"
	"time"
)
const (
	EnvWorker       = "GRACEFUL_WORKER"
	EnvNumFD        = "GRACEFUL_NUMFD"
	EnvOldWorkerPid = "GRACEFUL_OLD_WORKER_PID"
	EnvParentPid    = "GRACEFUL_PARENT_PID"
	ValWorker       = "1"
)
var (
	defaultWatchInterval = time.Second
	defaultStopTimeout   = 20 * time.Second
	defaultReloadSignals = []syscall.Signal{syscall.SIGHUP, syscall.SIGUSR1}
	defaultStopSignals   = []syscall.Signal{syscall.SIGKILL, syscall.SIGTERM, syscall.SIGINT}
	StartedAt time.Time
)
type option struct {
	reloadSignals []syscall.Signal
	stopSignals   []syscall.Signal
	watchInterval time.Duration
	stopTimeout   time.Duration
}
type Option func(o *option)
func WithReloadSignals(sigs []syscall.Signal) Option {
	return func(o *option) {
		o.reloadSignals = sigs
	}
}
func WithStopSignals(sigs []syscall.Signal) Option {
	return func(o *option) {
		o.stopSignals = sigs
	}
}
func WithStopTimeout(timeout time.Duration) Option {
	return func(o *option) {
		o.stopTimeout = timeout
	}
}
func WithWatchInterval(timeout time.Duration) Option {
	return func(o *option) {
		o.watchInterval = timeout
	}
}
type address struct {
	addr    string  
	network string  
}
type Server struct {
	opt      *option
	addrs    []address
	handlers []http.Handler
}
func NewServer(opts ...Option) *Server {
	option := &option{
		reloadSignals: defaultReloadSignals,
		stopSignals:   defaultStopSignals,
		watchInterval: defaultWatchInterval,
		stopTimeout:   defaultStopTimeout,
	}
	for _, opt := range opts {
		opt(option)
	}
	return &Server{
		addrs:    make([]address, 0),
		handlers: make([]http.Handler, 0),
		opt:      option,
	}
}
func (s *Server) Register(addr string, handler http.Handler) {
	s.addrs = append(s.addrs, address{addr, "tcp"})
	s.handlers = append(s.handlers, handler)
}