# Functions
NewInitSystemService creates a new instance of PackageManagerService with the provided PackageManagerProvider.
NewProvider returns a new Provider.
RegisterLaunchd registers the launchd init system to a init system repository.
RegisterOpenRC registers OpenRC to a repository.
RegisterRunit register runit in a repository.
RegisterSystemd registers systemd into a repository.
RegisterSysVinit registers SysVinit in a repository.
RegisterUpstart registers Upstart in a repository.
RegisterWinSCM registers the WinSCM in a repository.
# Variables
DefaultProvider is the default repository for init systems.
ErrNoInitSystem is returned when no supported init system is found.
# Structs
Launchd is the init system for macOS (and darwin), the implementation is very basic and doesn't handle services in user space.
NullServiceManager is a service manager that always returns an error on every operation.
OpenRC is found on some linux systems, often installed on Alpine for example.
Runit is an init system implementation for runit.
Service provides a unified interface to interact with different init systems.
Systemd is found by default on most linux distributions today.
SysVinit is the service manager for SysVinit.
Upstart is the init system used by Ubuntu 14.04 and older.
WinSCM is a struct that implements the InitSystem interface for Windows Service Control Manager.
# Interfaces
InitSystemProvider is a function that returns a ServiceManager given a runner.
ServiceEnvironmentManager is a servicemanager that supports environment files (like systemd .env files).
ServiceManager defines the methods for interacting with an init system like OpenRC.
ServiceManagerLogReader is a servicemanager that supports reading service logs.
ServiceManagerReloader is a servicemanager that needs reloading (like systemd daemon-reload).
ServiceManagerRestarter is a servicemanager that supports direct restarts (instead of stop+start).