starter/README.md
2026-05-10 15:53:17 +08:00

971 B

@go/starter

Service starter for @go applications, supporting background mode, PID management, and signal handling.

Installation

go get apigo.cc/go/starter

Usage

package main

import (
	"context"
	"fmt"
	"time"

	"apigo.cc/go/starter"
)

func main() {
	starter.SetInfo("myapp", "1.0.0")

	starter.OnStart(func(ctx context.Context) {
		fmt.Println("Service starting...")
		for {
			select {
			case <-ctx.Done():
				fmt.Println("Service stopping...")
				return
			case <-time.After(1 * time.Second):
				fmt.Println("Tick")
			}
		}
	})

	starter.OnStop(func() {
		fmt.Println("Service stopped.")
	})

	starter.Run()
}

Commands

  • start: Start the service in background.
  • stop: Stop the service.
  • restart: Restart the service.
  • status: Show service status.
  • -v, --version: Show version.
  • -h, --help: Show help.

Options

  • -pid: PID file path (default .pid).
  • -log: Log file path for background mode.