Documentation ¶
Overview ¶
Package service provides a simple way to create a system service. Currently supports Linux/(systemd | Upstart | SysV), and OSX/Launchd.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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 { Installer Controller Runner Logger }
Service represents a generic way to interact with the system's service.
func NewService ¶
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.