systemd website screenshot

systemd

systemd is a suite of basic building blocks for a Linux system. It runs as PID 1 and is the system and service manager that bootstraps the rest of the userspace, supervises long-running services, and exposes a coordinated set of D-Bus and Varlink IPC interfaces for managing services (systemd1), users and sessions (logind), network interfaces (networkd), name resolution (resolved), containers/VMs (machined), home directories (homed), boot entries (boot1/sysupdate1), system hostname/locale/timedate, OOM protection (oomd), portable services, and image imports. The project also publishes a stable command-line surface (systemctl, journalctl, networkctl, resolvectl, loginctl, machinectl, hostnamectl, timedatectl, localectl, busctl, varlinkctl, bootctl, homectl, coredumpctl, oomctl, portablectl, importctl, systemd-analyze and more). systemd is dual-licensed (LGPL-2.1-or-later for libraries and most code, GPL-2.0-or-later for select tools) and developed openly on GitHub at systemd/systemd.

16 APIs 0 Features
BootCgroupsContainerD-BusInitIPCJournalLinuxLoggingNetworkOpen SourcePID 1Service ManagerSystemSystemdVarlink

APIs

systemd Manager (org.freedesktop.systemd1)

Core D-Bus API exposed by PID 1 on the system bus. The Manager object at /org/freedesktop/systemd1 enumerates and controls units (services, sockets, mounts, targets, timers, pat...

systemd-logind (org.freedesktop.login1)

D-Bus API of systemd-logind for tracking user logins, seats, sessions, and inhibitor locks. Manages session creation, switching, idle hints, lock/unlock, power-button handling, ...

systemd-networkd (org.freedesktop.network1)

D-Bus API of systemd-networkd for managing network interfaces, link configuration, DHCP server state, and netdev/network unit reload. Exposes Manager and per-Link interfaces wit...

systemd-resolved (org.freedesktop.resolve1)

D-Bus API of systemd-resolved for DNS/mDNS/LLMNR resolution, DNSSEC validation, per-link DNS configuration, search domain management, DNS-over-TLS settings, and cache flushing. ...

systemd-machined (org.freedesktop.machine1)

D-Bus API of systemd-machined for tracking and managing local containers and virtual machines, enumerating their associated images, opening shells/login sessions inside them, co...

systemd-hostnamed (org.freedesktop.hostname1)

D-Bus API of systemd-hostnamed for getting and setting the system hostname (static, transient, pretty), deployment/location/icon metadata, chassis type, and machine info.

systemd-localed (org.freedesktop.locale1)

D-Bus API of systemd-localed for getting and setting the system locale, X11 keymap, and console keymap.

systemd-timedated (org.freedesktop.timedate1)

D-Bus API of systemd-timedated for getting and setting the system time, timezone, NTP enablement, and RTC-in-local-time policy.

systemd-timesyncd (org.freedesktop.timesync1)

D-Bus API of systemd-timesyncd exposing the current NTP server, peers, root delay/dispersion, and synchronization status.

systemd-homed (org.freedesktop.home1)

D-Bus API of systemd-homed for managing portable, encrypted user home directories (LUKS, btrfs subvol, fscrypt, CIFS, directory) including create/remove/update/list operations, ...

systemd-importd (org.freedesktop.import1)

D-Bus API of systemd-importd for importing, exporting, downloading, listing, and removing container/VM machine images (tar, raw, dkr/OCI, qcow2) used by machined and portable se...

systemd-oomd (org.freedesktop.oom1)

D-Bus API of systemd-oomd, the userspace out-of-memory killer that uses cgroup v2 PSI signals to kill cgroups under memory or swap pressure. Exposes per-slice/cgroup state and p...

systemd-portabled (org.freedesktop.portable1)

D-Bus API of systemd-portabled for attaching/detaching portable service images, listing attached images, inspecting them, and managing their lifecycle on the host.

systemd-sysupdated (org.freedesktop.sysupdate1)

D-Bus API of systemd-sysupdated for transactional A/B updates of system/host/portable/container images using systemd-sysupdate transfers, including target enumeration, version l...

LogControl1 (org.freedesktop.LogControl1)

Generic D-Bus interface that systemd daemons (and other services) implement to expose runtime log level and log target configuration. Allows tools like systemd-analyze to change...

systemd Varlink Interfaces (io.systemd.*)

Modern JSON-line IPC surface exposed by systemd daemons via Varlink (single-fd, self-describing, discoverable through `varlinkctl`). Covers ~39 interfaces including io.systemd.M...

Collections

Semantic Vocabularies

Systemd Context

32 classes · 0 properties

JSON-LD

API Governance Rules

systemd API Rules

8 rules · 3 errors 4 warnings

SPECTRAL

JSON Structure

Systemd Structure

1 properties

JSON STRUCTURE

Example Payloads

Login1 Inhibit Example

4 fields

EXAMPLE

Login1 Listsessions Example

3 fields

EXAMPLE

Network1 Listlinks Example

3 fields

EXAMPLE

Systemd1 Listunits Example

3 fields

EXAMPLE

Systemd1 Startunit Example

4 fields

EXAMPLE

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
💻
SourceCode
SourceCode
🔗
License
License
🔗
License
License
📄
ReleaseNotes
ReleaseNotes
📄
ChangeLog
ChangeLog
🔗
IssueTracker
IssueTracker
🔗
PullRequests
PullRequests
🔗
MailingList
MailingList
🔗
Mastodon
Mastodon
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔗
Vocabulary
Vocabulary
🔗
JSONLD
JSONLD

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: systemd Varlink Interfaces (io.systemd.*)
  version: '1.0'
items:
- info:
    name: Manager
    type: folder
  items:
  - info:
      name: Describe Manager State
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.Manager/Describe
    docs: Calls `io.systemd.Manager.Describe` on PID 1's varlink socket. Returns the manager's runtime state (architecture,
      virtualization, version, features, tainted, timestamps).
  - info:
      name: List All Units
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.Manager/ListUnits
    docs: Calls `io.systemd.Manager.ListUnits`. Returns an iterable stream of unit records.
- info:
    name: Unit
    type: folder
  items:
  - info:
      name: Describe A Single Unit
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.Unit/Describe
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.Unit.Describe`. Returns the full property bag for one unit.
- info:
    name: UserDatabase
    type: folder
  items:
  - info:
      name: Look Up A User Record
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.UserDatabase/GetUserRecord
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.UserDatabase.GetUserRecord`. NSS-replacement lookup, returns a JSON User Record per the systemd
      UserRecord spec.
  - info:
      name: Look Up A Group Record
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.UserDatabase/GetGroupRecord
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.UserDatabase.GetGroupRecord`.
  - info:
      name: Look Up Group Memberships
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.UserDatabase/GetMemberships
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.UserDatabase.GetMemberships`.
- info:
    name: Resolve
    type: folder
  items:
  - info:
      name: Resolve A Hostname (Varlink)
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.Resolve/ResolveHostname
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.Resolve.ResolveHostname`. Newer JSON-native equivalent of the D-Bus ResolveHostname.
- info:
    name: Credentials
    type: folder
  items:
  - info:
      name: Encrypt A Credential
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.Credentials/Encrypt
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.Credentials.Encrypt`. Wraps a secret with the system's encrypted-credentials key (TPM2 or host)
      for use as a `LoadCredentialEncrypted=` unit credential.
  - info:
      name: Decrypt A Credential
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.Credentials/Decrypt
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.Credentials.Decrypt`.
- info:
    name: PCR
    type: folder
  items:
  - info:
      name: Extend A TPM2 PCR
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.PCRExtend/Extend
      body:
        type: json
        data: '{}'
    docs: Calls `io.systemd.PCRExtend.Extend`. Extends the named PCR with the supplied data.
- info:
    name: Boot
    type: folder
  items:
  - info:
      name: List Boot Entries
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.BootControl/ListBootEntries
    docs: Calls `io.systemd.BootControl.ListBootEntries`. Returns Boot Loader Specification entries.
- info:
    name: Image
    type: folder
  items:
  - info:
      name: List Machine Images (Varlink)
      type: http
    http:
      method: POST
      url: varlink://run/systemd/io.systemd/io.systemd.MachineImage/List
    docs: Calls `io.systemd.MachineImage.List`. JSON-native equivalent of machined's ListImages.
bundled: true