systemd

package
v0.0.0-...-298751d Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: AGPL-3.0 Imports: 18 Imported by: 15

Documentation

Index

Constants

View Source
const (
	LibSystemdDir          = "/lib/systemd/system"
	EtcSystemdDir          = "/etc/systemd/system"
	EtcSystemdMultiUserDir = EtcSystemdDir + "/multi-user.target.wants"
)

Variables

View Source
var NewDBusAPI = func() (DBusAPI, error) {
	return dbus.New()
}

Functions

func IsRunning

func IsRunning() bool

IsRunning returns whether or not systemd is the local init system.

func ListCommand

func ListCommand() string

ListCommand returns a command that will list the services on a host.

func ListServices

func ListServices() ([]string, error)

ListServices returns the list of installed service names.

func ServiceLimits

func ServiceLimits(conf common.Conf) []*unit.UnitOption

ServiceLimits converts the limits in conf to systemd unit options.

func SysdReload

func SysdReload() error

SysdReload reloads Service daemon.

func UnitSerialize

func UnitSerialize(opts []*unit.UnitOption) io.Reader

UnitSerialize encodes all of the given UnitOption objects into a unit file. Renamed from Serialize from github.com/coreos/go-systemd/unit so as to not conflict with the exported internal function in export_test.go.

Types

type Cmdline

type Cmdline struct {
	// contains filtered or unexported fields
}

Cmdline exposes the core operations of interacting with systemd units.

func (Cmdline) ListAll

func (cl Cmdline) ListAll() ([]string, error)

ListAll returns the names of all enabled systemd units.

type DBusAPI

type DBusAPI interface {
	Close()
	ListUnits() ([]dbus.UnitStatus, error)
	StartUnit(string, string, chan<- string) (int, error)
	StopUnit(string, string, chan<- string) (int, error)
	LinkUnitFiles([]string, bool, bool) ([]dbus.LinkUnitFileChange, error)
	EnableUnitFiles([]string, bool, bool) (bool, []dbus.EnableUnitFileChange, error)
	DisableUnitFiles([]string, bool) ([]dbus.DisableUnitFileChange, error)
	GetUnitProperties(string) (map[string]interface{}, error)
	GetUnitTypeProperties(string, string) (map[string]interface{}, error)
	Reload() error
}

DBusAPI describes all the systemd API methods needed by juju.

type DBusAPIFactory

type DBusAPIFactory = func() (DBusAPI, error)

Type alias for a DBusAPI factory method.

type FileSystemOps

type FileSystemOps interface {
	Remove(name string) error
	RemoveAll(name string) error
	WriteFile(fileName string, data []byte, perm os.FileMode) error
}

FileSystemOps describes file-system operations required to install and remove a service.

type Service

type Service struct {
	common.Service

	ConfName        string
	UnitName        string
	DirName         string
	FallBackDirName string
	Script          []byte
	// contains filtered or unexported fields
}

Service provides visibility into and control over a systemd service.

func NewService

func NewService(
	name string, conf common.Conf, dataDir string, newDBus DBusAPIFactory, fileOps FileSystemOps, fallBackDirName string,
) (*Service, error)

NewService returns a new reference to an object that implements the Service interface for systemd.

func NewServiceWithDefaults

func NewServiceWithDefaults(name string, conf common.Conf) (*Service, error)

NewServiceWithDefaults returns a new systemd service reference populated with sensible defaults.

func (Service) Conf

func (s Service) Conf() common.Conf

Conf implements service.Service.

func (*Service) Exists

func (s *Service) Exists() (bool, error)

Exists implements Service.

func (*Service) Install

func (s *Service) Install() error

Install implements Service.

func (*Service) InstallCommands

func (s *Service) InstallCommands() ([]string, error)

InstallCommands implements Service.

func (*Service) Installed

func (s *Service) Installed() (bool, error)

Installed implements Service.

func (Service) Name

func (s Service) Name() string

Name implements service.Service.

func (*Service) Remove

func (s *Service) Remove() error

Remove implements Service.

func (*Service) Running

func (s *Service) Running() (bool, error)

Running implements Service.

func (*Service) Start

func (s *Service) Start() error

Start implements Service.

func (*Service) StartCommands

func (s *Service) StartCommands() ([]string, error)

StartCommands implements Service.

func (*Service) Stop

func (s *Service) Stop() error

Stop implements Service.

func (*Service) WriteService

func (s *Service) WriteService() error

WriteService (UpgradableService) writes a systemd unit file for the service and ensures that it is linked and enabled by systemd.

type ShimExec

type ShimExec interface {
	RunCommands(args exec.RunParams) (*exec.ExecResponse, error)
}

ShimExec is used to indirect command-line interactions. A mock for this is "patched" over the the listed methods by the test suite. This should be phased out in favour of the fileSystemOps approach below.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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