systemd

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: GPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// the default target for systemd units that we generate
	ServicesTarget = "multi-user.target"

	// the target prerequisite for systemd units we generate
	PrerequisiteTarget = "network.target"

	// the default target for systemd socket units that we generate
	SocketsTarget = "sockets.target"

	// the default target for systemd timer units that we generate
	TimersTarget = "timers.target"
)

Variables

View Source
var ServicesDir = "/etc/systemd/system"

Functions

func Available

func Available() error

func EscapeUnitNamePath

func EscapeUnitNamePath(in string) string

EscapeUnitNamePath works like systemd-escape --path

func FakeJournalctl

func FakeJournalctl(f func(svcs []string, n int, follow bool) (io.ReadCloser, error)) func()

func FakeStopDelays

func FakeStopDelays(checkDelay, notifyDelay time.Duration) func()

FakeStopDelays is used from tests so that Stop can be less forgiving there.

func FakeSystemctl

func FakeSystemctl(f func(args ...string) ([]byte, error)) func()

FakeSystemctl is called from the commands to actually call out to systemctl. It's exported so it can be overridden by testing.

func IsTimeout

func IsTimeout(err error) bool

IsTimeout checks whether the given error is a Timeout

func MountUnitPath

func MountUnitPath(baseDir string) string

MountUnitPath returns the path of a {,auto}mount unit

func NewJournalStreamFile

func NewJournalStreamFile(identifier string, priority syslog.Priority, levelPrefix bool) (*os.File, error)

NewJournalStreamFile creates log stream file descriptor to the journal. The semantics is identical to that of sd_journal_stream_fd(3) call.

func SdNotify

func SdNotify(notifyState string) error

SdNotify sends the given state string notification to systemd.

inspired by libsystemd/sd-daemon/sd-daemon.c from the systemd source

func SocketAvailable

func SocketAvailable() bool

Types

type Error

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

Error is returned if the systemd action failed

func (*Error) Error

func (e *Error) Error() string

type InstanceMode

type InstanceMode int

InstanceMode determines which instance of systemd to control.

SystemMode refers to the system instance (i.e. pid 1). UserMode refers to the the instance launched to manage the user's desktop session. GlobalUserMode controls configuration respected by all user instances on the system.

As GlobalUserMode does not refer to a single instance of systemd, some operations are not supported such as starting and stopping daemons.

const (
	SystemMode InstanceMode = iota
	UserMode
	GlobalUserMode
)

type Log

type Log map[string]string

A Log is a single entry in the systemd journal

func (Log) Message

func (l Log) Message() string

Message of the Log, if any; otherwise, "-".

func (Log) PID

func (l Log) PID() string

PID is the pid of the client pid, if any; otherwise, "-".

func (Log) SID

func (l Log) SID() string

SID is the syslog identifier of the Log, if any; otherwise, "-".

func (Log) Time

func (l Log) Time() (time.Time, error)

Time returns the time the Log was received by the journal.

type Systemd

type Systemd interface {
	DaemonReload() error
	Enable(service string) error
	Disable(service string) error
	Start(service ...string) error
	StartNoBlock(service ...string) error
	Stop(service string, timeout time.Duration) error
	Kill(service, signal, who string) error
	Restart(service string, timeout time.Duration) error
	Status(units ...string) ([]*UnitStatus, error)
	IsEnabled(service string) (bool, error)
	IsActive(service string) (bool, error)
	LogReader(services []string, n int, follow bool) (io.ReadCloser, error)
	AddMountUnitFile(name, revision, what, where, fstype string) (string, error)
	RemoveMountUnitFile(baseDir string) error
	Mask(service string) error
	Unmask(service string) error
}

Systemd exposes a minimal interface to manage systemd via the systemctl command.

func New

func New(rootDir string, mode InstanceMode, rep reporter) Systemd

New returns a Systemd that uses the given rootDir

type Timeout

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

Timeout is returned if the systemd action failed to reach the expected state in a reasonable amount of time

func (*Timeout) Error

func (e *Timeout) Error() string

type UnitStatus

type UnitStatus struct {
	Daemon   string
	UnitName string
	Enabled  bool
	Active   bool
}

Jump to

Keyboard shortcuts

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