Skip to content

KarpelesLab/lifecycle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lifecycle

A Go module for managing the lifecycle of standard daemons with network listeners.

Usage

package main

import (
	"log"
	"net"
	"github.com/KarpelesLab/lifecycle"
)

func main() {
	// Create a new daemon
	daemon := lifecycle.New()
	
	// Set up a TCP listener
	err := daemon.SetListener("tcp", 
		func() (net.Listener, error) {
			return net.Listen("tcp", ":8080")
		},
		func(conn net.Conn) error {
			// Handle connection
			return nil
		},
	)
	if err != nil {
		log.Fatalf("Failed to set listener: %v", err)
	}
	
	// Start the daemon
	if err := daemon.Start(); err != nil {
		log.Fatalf("Failed to start daemon: %v", err)
	}
	
	// ... your application logic ...
	
	// Gracefully shut down
	if err := daemon.Stop(); err != nil {
		log.Fatalf("Failed to stop daemon: %v", err)
	}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published