go-systemd

module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2021 License: Apache-2.0

README

go-systemd

Build Status godoc

Go bindings to systemd. The project has several packages:

  • activation - for writing and using socket activation from Go
  • dbus - for starting/stopping/inspecting running services and units
  • journal - for writing to systemd's logging service, journald
  • sdjournal - for reading from journald by wrapping its C API
  • machine1 - for registering machines/containers with systemd
  • unit - for (de)serialization and comparison of unit files

Socket Activation

An example HTTP server using socket activation can be quickly set up by following this README on a Linux machine running systemd:

https://github.com/coreos/go-systemd/tree/master/examples/activation/httpserver

Journal

Using the pure-Go journal package you can submit journal entries directly to systemd's journal, taking advantage of features like indexed key/value pairs for each log entry. The sdjournal package provides read access to the journal by wrapping around journald's native C API; consequently it requires cgo and the journal headers to be available.

D-Bus

The dbus package connects to the systemd D-Bus API and lets you start, stop and introspect systemd units. The API docs are here:

http://godoc.org/github.com/coreos/go-systemd/dbus

Debugging

Create /etc/dbus-1/system-local.conf that looks like this:

<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
    <policy user="root">
        <allow eavesdrop="true"/>
        <allow eavesdrop="true" send_destination="*"/>
    </policy>
</busconfig>

machined

The machine1 package allows interaction with the systemd machined D-Bus API.

Units

The unit package provides various functions for working with systemd unit files.

Directories

Path Synopsis
Package activation implements primitives for systemd socket activation.
Package activation implements primitives for systemd socket activation.
Code forked from Docker project
Code forked from Docker project
Integration with the systemd D-Bus API.
Integration with the systemd D-Bus API.
examples
activation
Activation example used by the activation unit tests.
Activation example used by the activation unit tests.
Integration with the systemd hostnamed API.
Integration with the systemd hostnamed API.
Package journal provides write bindings to the local systemd journal.
Package journal provides write bindings to the local systemd journal.
Integration with the systemd logind API.
Integration with the systemd logind API.
Integration with the systemd machined API.
Integration with the systemd machined API.
Package sdjournal provides a low-level Go interface to the systemd journal wrapped around the sd-journal C API.
Package sdjournal provides a low-level Go interface to the systemd journal wrapped around the sd-journal C API.
Package util contains utility functions related to systemd that applications can use to check things like whether systemd is running.
Package util contains utility functions related to systemd that applications can use to check things like whether systemd is running.

Jump to

Keyboard shortcuts

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