v0.1.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2024 License: GPL-3.0 Imports: 11 Imported by: 0



Package service provides a simple way to create a system service. Currently supports Linux/(systemd | Upstart | SysV), and OSX/Launchd.



This section is empty.


This section is empty.


This section is empty.


type Controller

type Controller interface {
	// Starts this service on the system.
	Start() error

	// Stops this service on the system.
	Stop() error

Controller is a service that implements ServiceController is able to start and stop itself.

type Installer

type Installer interface {
	// Installs this service on the system.  May return an
	// error if this service is already installed.
	Install() error

	// Removes this service from the system.  May return an
	// error if this service is not already installed.
	Remove() error

Installer is a simple install and remove commands.

type KeyValue

type KeyValue map[string]interface{}

KeyValue is a key value mapping that offers a few handy utilities.

type Logger

type Logger interface {
	// Basic log functions in the context of the service.
	Error(format string, a ...interface{}) error
	Warning(format string, a ...interface{}) error
	Info(format string, a ...interface{}) error

Logger is a service that implements ServiceLogger can perform simple system logging.

type Runner

type Runner interface {
	// Call quickly after initial entry point. Does not return until
	// service is ready to stop.  onStart is called when the service is
	// starting, returning an error will fail to start the service.
	// If an error is returned from onStop, the service will still stop.
	// An error passed from onStart or onStop will be returned as
	// an error from Run.
	// Both callbacks should return quickly and not block.
	Run(onStart, onStop func() error) error

Runner is a Generic way to stop and start a service.

type Service

type Service interface {

Service represents a generic way to interact with the system's service.

func NewService

func NewService(name, displayName, description string, args []string) (Service, error)

NewService creates a new service. name is the internal name and should not contain spaces. Display name is the pretty print name. The description is an arbitrary string used to describe the service.


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL