man/bootup.7 \
man/busctl.1 \
man/daemon.7 \
+ man/file-hierarchy.7 \
man/halt.8 \
man/hostname.5 \
man/journalctl.1 \
man/systemd-cat.1 \
man/systemd-cgls.1 \
man/systemd-cgtop.1 \
+ man/systemd-debug-generator.8 \
man/systemd-delta.1 \
man/systemd-detect-virt.1 \
man/systemd-efi-boot-generator.8 \
man/systemd-machine-id-setup.1 \
man/systemd-notify.1 \
man/systemd-nspawn.1 \
+ man/systemd-path.1 \
man/systemd-remount-fs.service.8 \
man/systemd-run.1 \
man/systemd-shutdownd.service.8 \
man/systemd-sysctl.service.8 \
man/systemd-system-update-generator.8 \
man/systemd-system.conf.5 \
+ man/systemd-sysusers.8 \
man/systemd-tmpfiles.8 \
man/systemd-tty-ask-password-agent.1 \
man/systemd-udevd.service.8 \
+ man/systemd-update-done.service.8 \
man/systemd-update-utmp.service.8 \
man/systemd.1 \
man/systemd.automount.5 \
man/systemd.time.7 \
man/systemd.timer.5 \
man/systemd.unit.5 \
+ man/sysusers.d.5 \
man/telinit.8 \
man/tmpfiles.d.5 \
man/udev.7 \
man/systemd-hybrid-sleep.service.8 \
man/systemd-initctl.8 \
man/systemd-initctl.socket.8 \
+ man/systemd-journald-dev-log.socket.8 \
man/systemd-journald.8 \
man/systemd-journald.socket.8 \
man/systemd-kexec.service.8 \
man/systemd-shutdownd.socket.8 \
man/systemd-sleep.8 \
man/systemd-sysctl.8 \
+ man/systemd-sysusers.service.8 \
man/systemd-tmpfiles-clean.service.8 \
man/systemd-tmpfiles-clean.timer.8 \
man/systemd-tmpfiles-setup-dev.service.8 \
man/systemd-udevd-control.socket.8 \
man/systemd-udevd-kernel.socket.8 \
man/systemd-udevd.8 \
+ man/systemd-update-done.8 \
man/systemd-update-utmp-runlevel.service.8 \
man/systemd-update-utmp.8 \
man/systemd-user.conf.5
man/systemd-hybrid-sleep.service.8: man/systemd-suspend.service.8
man/systemd-initctl.8: man/systemd-initctl.service.8
man/systemd-initctl.socket.8: man/systemd-initctl.service.8
+man/systemd-journald-dev-log.socket.8: man/systemd-journald.service.8
man/systemd-journald.8: man/systemd-journald.service.8
man/systemd-journald.socket.8: man/systemd-journald.service.8
man/systemd-kexec.service.8: man/systemd-halt.service.8
man/systemd-shutdownd.socket.8: man/systemd-shutdownd.service.8
man/systemd-sleep.8: man/systemd-suspend.service.8
man/systemd-sysctl.8: man/systemd-sysctl.service.8
+man/systemd-sysusers.service.8: man/systemd-sysusers.8
man/systemd-tmpfiles-clean.service.8: man/systemd-tmpfiles.8
man/systemd-tmpfiles-clean.timer.8: man/systemd-tmpfiles.8
man/systemd-tmpfiles-setup-dev.service.8: man/systemd-tmpfiles.8
man/systemd-udevd-control.socket.8: man/systemd-udevd.service.8
man/systemd-udevd-kernel.socket.8: man/systemd-udevd.service.8
man/systemd-udevd.8: man/systemd-udevd.service.8
+man/systemd-update-done.8: man/systemd-update-done.service.8
man/systemd-update-utmp-runlevel.service.8: man/systemd-update-utmp.service.8
man/systemd-update-utmp.8: man/systemd-update-utmp.service.8
man/systemd-user.conf.5: man/systemd-system.conf.5
man/systemd-initctl.socket.html: man/systemd-initctl.service.html
$(html-alias)
+man/systemd-journald-dev-log.socket.html: man/systemd-journald.service.html
+ $(html-alias)
+
man/systemd-journald.html: man/systemd-journald.service.html
$(html-alias)
man/systemd-sysctl.html: man/systemd-sysctl.service.html
$(html-alias)
+man/systemd-sysusers.service.html: man/systemd-sysusers.html
+ $(html-alias)
+
man/systemd-tmpfiles-clean.service.html: man/systemd-tmpfiles.html
$(html-alias)
man/systemd-udevd.html: man/systemd-udevd.service.html
$(html-alias)
+man/systemd-update-done.html: man/systemd-update-done.service.html
+ $(html-alias)
+
man/systemd-update-utmp-runlevel.service.html: man/systemd-update-utmp.service.html
$(html-alias)
if ENABLE_COREDUMP
MANPAGES += \
- man/systemd-coredumpctl.1
+ man/coredump.conf.5 \
+ man/coredumpctl.1
MANPAGES_ALIAS += \
#
# Really, do not edit this file.
EXTRA_DIST += \
- man/binfmt.d.xml \
+ man/binfmt.d.xml \
man/bootchart.conf.xml \
man/bootctl.xml \
man/bootup.xml \
man/busctl.xml \
+ man/coredump.conf.xml \
+ man/coredumpctl.xml \
man/crypttab.xml \
man/daemon.xml \
+ man/file-hierarchy.xml \
man/halt.xml \
man/hostname.xml \
man/hostnamectl.xml \
man/systemd-cat.xml \
man/systemd-cgls.xml \
man/systemd-cgtop.xml \
- man/systemd-coredumpctl.xml \
man/systemd-cryptsetup-generator.xml \
man/systemd-cryptsetup@.service.xml \
+ man/systemd-debug-generator.xml \
man/systemd-delta.xml \
man/systemd-detect-virt.xml \
man/systemd-efi-boot-generator.xml \
man/systemd-networkd.service.xml \
man/systemd-notify.xml \
man/systemd-nspawn.xml \
+ man/systemd-path.xml \
man/systemd-quotacheck.service.xml \
man/systemd-random-seed.service.xml \
man/systemd-readahead-replay.service.xml \
man/systemd-sysctl.service.xml \
man/systemd-system-update-generator.xml \
man/systemd-system.conf.xml \
+ man/systemd-sysusers.xml \
man/systemd-timedated.service.xml \
man/systemd-timesyncd.service.xml \
man/systemd-tmpfiles.xml \
man/systemd-tty-ask-password-agent.xml \
man/systemd-udevd.service.xml \
+ man/systemd-update-done.service.xml \
man/systemd-update-utmp.service.xml \
man/systemd-user-sessions.service.xml \
man/systemd-vconsole-setup.service.xml \
man/systemd.timer.xml \
man/systemd.unit.xml \
man/systemd.xml \
+ man/sysusers.d.xml \
man/telinit.xml \
man/timedatectl.xml \
man/tmpfiles.d.xml \
# Keep the test-suite.log
.PRECIOUS: $(TEST_SUITE_LOG) Makefile
-LIBUDEV_CURRENT=5
-LIBUDEV_REVISION=1
-LIBUDEV_AGE=4
+LIBUDEV_CURRENT=6
+LIBUDEV_REVISION=0
+LIBUDEV_AGE=5
LIBGUDEV_CURRENT=2
LIBGUDEV_REVISION=0
LIBGUDEV_AGE=2
LIBSYSTEMD_CURRENT=3
-LIBSYSTEMD_REVISION=0
+LIBSYSTEMD_REVISION=1
LIBSYSTEMD_AGE=3
# The following four libraries only exist for compatibility reasons,
userunitdir=$(prefix)/lib/systemd/user
userpresetdir=$(prefix)/lib/systemd/user-preset
tmpfilesdir=$(prefix)/lib/tmpfiles.d
+sysusersdir=$(prefix)/lib/sysusers.d
sysctldir=$(prefix)/lib/sysctl.d
+binfmtdir=$(prefix)/lib/binfmt.d
+modulesloaddir=$(prefix)/lib/modules-load.d
networkdir=$(rootprefix)/lib/systemd/network
pkgincludedir=$(includedir)/systemd
systemgeneratordir=$(rootlibexecdir)/system-generators
-DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \
-DQUOTACHECK=\"$(QUOTACHECK)\" \
-DKEXEC=\"$(KEXEC)\" \
+ -DLIBDIR=\"$(libdir)\" \
+ -DROOTLIBDIR=\"$(rootlibdir)\" \
-I $(top_srcdir)/src \
-I $(top_builddir)/src/shared \
-I $(top_srcdir)/src/shared \
done
endef
+install-touch-usr-hook:
+ touch -c $(DESTDIR)/$(prefix)
+
INSTALL_EXEC_HOOKS += \
install-target-wants-hook \
install-directories-hook \
- install-aliases-hook
+ install-aliases-hook \
+ install-touch-usr-hook
# ------------------------------------------------------------------------------
AM_V_M4 = $(AM_V_M4_$(V))
systemd-detect-virt \
systemd-delta \
systemd-analyze \
- systemd-run
+ systemd-run \
+ systemd-path
dist_bin_SCRIPTS = \
src/kernel-install/kernel-install
systemd-sysctl \
systemd-sleep \
systemd-bus-proxyd \
- systemd-socket-proxyd
+ systemd-socket-proxyd \
+ systemd-update-done
systemgenerator_PROGRAMS = \
systemd-getty-generator \
systemd-fstab-generator \
- systemd-system-update-generator
+ systemd-system-update-generator \
+ systemd-debug-generator
dist_bashcompletion_DATA = \
shell-completion/bash/busctl \
units/systemd-udevd-control.socket \
units/systemd-udevd-kernel.socket \
units/system-update.target \
- units/initrd-switch-root.target
+ units/initrd-switch-root.target \
+ units/ldconfig.service
nodist_systemunit_DATA = \
units/getty@.service \
units/systemd-udevd.service \
units/systemd-udev-trigger.service \
units/systemd-udev-settle.service \
+ units/systemd-udev-hwdb-update.service \
units/debug-shell.service \
units/initrd-parse-etc.service \
units/initrd-cleanup.service \
units/initrd-udevadm-cleanup-db.service \
units/initrd-switch-root.service \
- units/systemd-nspawn@.service
+ units/systemd-nspawn@.service \
+ units/systemd-update-done.service
dist_userunit_DATA = \
units/user/basic.target \
nodist_userunit_DATA = \
units/user/systemd-exit.service
+dist_systempreset_DATA = \
+ system-preset/90-systemd.preset
+
EXTRA_DIST += \
units/getty@.service.m4 \
units/serial-getty@.service.m4 \
units/initrd-cleanup.service.in \
units/initrd-udevadm-cleanup-db.service.in \
units/initrd-switch-root.service.in \
- units/systemd-nspawn@.service.in
+ units/systemd-nspawn@.service.in \
+ units/systemd-update-done.service.in
CLEANFILES += \
units/console-shell.service.m4 \
src/shared/bus-label.c \
src/shared/bus-label.h \
src/shared/gpt.h \
- src/shared/generator.h \
- src/shared/generator.c \
src/shared/clean-ipc.h \
src/shared/clean-ipc.c \
src/shared/login-shared.c \
src/shared/eventfd-util.c \
src/shared/eventfd-util.h \
src/shared/copy.c \
- src/shared/copy.h
+ src/shared/copy.h \
+ src/shared/base-filesystem.c \
+ src/shared/base-filesystem.h
nodist_libsystemd_shared_la_SOURCES = \
src/shared/errno-from-name.h \
libsystemd_shared_la_CFLAGS = \
$(AM_CFLAGS) \
- $(SECCOMP_CFLAGS)
+ $(SECCOMP_CFLAGS) \
+ -pthread
# ------------------------------------------------------------------------------
noinst_LTLIBRARIES += \
src/shared/fileio-label.c \
src/shared/fileio-label.h \
src/shared/dev-setup.c \
- src/shared/dev-setup.h
+ src/shared/dev-setup.h \
+ src/shared/dropin.c \
+ src/shared/dropin.h \
+ src/shared/generator.h \
+ src/shared/generator.c
libsystemd_label_la_CFLAGS = \
$(AM_CFLAGS) \
test-tables \
test-device-nodes \
test-xml \
- test-architecture
+ test-architecture \
+ test-socket-util \
+ test-fdset \
+ test-conf-files \
+ test-capability \
+ test-async \
+ test-ratelimit
EXTRA_DIST += \
test/sched_idle_bad.service \
test_utf8_LDADD = \
libsystemd-shared.la
+test_capability_SOURCES = \
+ src/test/test-capability.c
+
+test_capability_LDADD = \
+ libsystemd-shared.la \
+ libsystemd-capability.la
+
+test_async_SOURCES = \
+ src/test/test-async.c
+
+test_async_LDADD = \
+ libsystemd-shared.la
+
+test_fdset_SOURCES = \
+ src/test/test-fdset.c
+
+test_fdset_LDADD = \
+ libsystemd-core.la
+
+test_ratelimit_SOURCES = \
+ src/test/test-ratelimit.c
+
+test_ratelimit_LDADD = \
+ libsystemd-shared.la
+
test_util_SOURCES = \
src/test/test-util.c
test_util_LDADD = \
libsystemd-core.la
+test_socket_util_SOURCES = \
+ src/test/test-socket-util.c
+
+test_socket_util_LDADD = \
+ libsystemd-core.la
+
test_ring_SOURCES = \
src/test/test-ring.c
libsystemd-core.la \
$(RT_LIBS)
+test_conf_files_SOURCES = \
+ src/test/test-conf-files.c
+
+test_conf_files_LDADD = \
+ libsystemd-shared.la
+
# ------------------------------------------------------------------------------
## .PHONY so it always rebuilds it
.PHONY: coverage lcov-run lcov-report coverage-sync
# run lcov from scratch, always
-coverage:
+coverage: all
$(MAKE) lcov-run
$(MAKE) lcov-report
libsystemd-shared.la \
$(AUDIT_LIBS)
+# ------------------------------------------------------------------------------
+systemd_update_done_SOURCES = \
+ src/update-done/update-done.c
+
+systemd_update_done_LDADD = \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
# ------------------------------------------------------------------------------
systemd_shutdownd_SOURCES = \
src/shutdownd/shutdownd.c
tmpfiles.d/systemd-nologin.conf \
tmpfiles.d/tmp.conf \
tmpfiles.d/x11.conf \
- tmpfiles.d/var.conf
+ tmpfiles.d/var.conf \
+ tmpfiles.d/etc.conf
if HAVE_SYSV_COMPAT
dist_tmpfiles_DATA += \
units/systemd-tmpfiles-setup.service.in \
units/systemd-tmpfiles-clean.service.in
+# ------------------------------------------------------------------------------
+if ENABLE_SYSUSERS
+systemd_sysusers_SOURCES = \
+ src/sysusers/sysusers.c
+
+systemd_sysusers_LDADD = \
+ libsystemd-units.la \
+ libsystemd-label.la \
+ libsystemd-capability.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
+rootbin_PROGRAMS += \
+ systemd-sysusers
+
+nodist_systemunit_DATA += \
+ units/systemd-sysusers.service
+
+SYSINIT_TARGET_WANTS += \
+ systemd-sysusers.service
+
+dist_sysusers_DATA = \
+ sysusers.d/systemd.conf
+
+nodist_sysusers_DATA = \
+ sysusers.d/basic.conf
+
+EXTRA_DIST += \
+ units/systemd-sysusers.service.in \
+ sysusers.d/basic.conf.in
+
+CLEANFILES += \
+ sysusers.d/basic.conf
+
+INSTALL_DIRS += \
+ $(sysusersdir)
+endif
+
# ------------------------------------------------------------------------------
systemd_machine_id_setup_SOURCES = \
src/machine-id-setup/machine-id-setup-main.c \
libsystemd-label.la \
libsystemd-shared.la
+# ------------------------------------------------------------------------------
+systemd_debug_generator_SOURCES = \
+ src/debug-generator/debug-generator.c
+
+systemd_debug_generator_LDADD = \
+ libsystemd-label.la \
+ libsystemd-shared.la
+
# ------------------------------------------------------------------------------
systemd_fstab_generator_SOURCES = \
src/fstab-generator/fstab-generator.c \
libsystemd-internal.la \
libsystemd-shared.la
+# ------------------------------------------------------------------------------
+systemd_path_SOURCES = \
+ src/path/path.c
+
+systemd_path_LDADD = \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
# ------------------------------------------------------------------------------
systemd_ask_password_SOURCES = \
src/ask-password/ask-password.c
src/systemd/sd-login.h \
src/systemd/sd-id128.h \
src/systemd/sd-daemon.h \
+ src/systemd/sd-path.h \
src/libsystemd/sd-bus/sd-bus.c \
src/libsystemd/sd-bus/bus-control.c \
src/libsystemd/sd-bus/bus-control.h \
src/libsystemd/sd-rtnl/rtnl-util.c \
src/libsystemd/sd-id128/sd-id128.c \
src/libsystemd/sd-daemon/sd-daemon.c \
- src/libsystemd/sd-login/sd-login.c
+ src/libsystemd/sd-login/sd-login.c \
+ src/libsystemd/sd-path/sd-path.c
nodist_libsystemd_internal_la_SOURCES = \
src/libsystemd/libsystemd.sym \
src/systemd/sd-utf8.h \
src/systemd/sd-event.h \
src/systemd/sd-rtnl.h \
- src/systemd/sd-resolve.h
+ src/systemd/sd-resolve.h \
+ src/systemd/sd-path.h
endif
lib_LTLIBRARIES += \
libsystemd_network_la_SOURCES = \
src/systemd/sd-network.h \
src/systemd/sd-dhcp-client.h \
+ src/systemd/sd-dhcp-server.h \
src/systemd/sd-dhcp-lease.h \
src/systemd/sd-ipv4ll.h \
src/network/sd-network.c \
src/network/network-util.h \
src/libsystemd-network/sd-dhcp-client.c \
+ src/libsystemd-network/sd-dhcp-server.c \
src/libsystemd-network/dhcp-network.c \
src/libsystemd-network/dhcp-option.c \
src/libsystemd-network/dhcp-packet.c \
src/libsystemd-network/dhcp-internal.h \
+ src/libsystemd-network/dhcp-server-internal.h \
src/libsystemd-network/dhcp-protocol.h \
src/libsystemd-network/dhcp-lease-internal.h \
src/libsystemd-network/sd-dhcp-lease.c \
src/libsystemd-network/ipv4ll-packet.c \
src/libsystemd-network/ipv4ll-internal.h \
src/libsystemd-network/network-internal.c \
- src/libsystemd-network/network-internal.h
+ src/libsystemd-network/network-internal.h \
+ src/systemd/sd-icmp6-nd.h \
+ src/systemd/sd-dhcp6-client.h \
+ src/systemd/sd-dhcp6-lease.h \
+ src/libsystemd-network/sd-icmp6-nd.c \
+ src/libsystemd-network/sd-dhcp6-client.c \
+ src/libsystemd-network/dhcp6-internal.h \
+ src/libsystemd-network/dhcp6-protocol.h \
+ src/libsystemd-network/dhcp6-network.c \
+ src/libsystemd-network/dhcp6-option.c \
+ src/libsystemd-network/dhcp6-lease-internal.h \
+ src/libsystemd-network/sd-dhcp6-lease.c
libsystemd_network_la_LIBADD = \
libudev-internal.la \
libsystemd-internal.la \
libsystemd-shared.la
+test_dhcp_server_SOURCES = \
+ src/libsystemd-network/test-dhcp-server.c
+
+test_dhcp_server_LDADD = \
+ libsystemd-network.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
test_ipv4ll_SOURCES = \
src/systemd/sd-ipv4ll.h \
src/libsystemd-network/ipv4ll-internal.h \
libsystemd-internal.la \
libsystemd-shared.la
+test_icmp6_rs_SOURCES = \
+ src/systemd/sd-dhcp6-client.h \
+ src/systemd/sd-icmp6-nd.h \
+ src/libsystemd-network/dhcp6-internal.h \
+ src/libsystemd-network/test-icmp6-rs.c
+
+test_icmp6_rs_LDADD = \
+ libsystemd-network.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
+test_dhcp6_client_SOURCES = \
+ src/systemd/sd-dhcp6-client.h \
+ src/libsystemd-network/dhcp6-internal.h \
+ src/libsystemd-network/test-dhcp6-client.c
+
+test_dhcp6_client_LDADD = \
+ libsystemd-network.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
tests += \
test-dhcp-option \
test-dhcp-client \
- test-ipv4ll
+ test-dhcp-server \
+ test-ipv4ll \
+ test-icmp6-rs \
+ test-dhcp6-client
# ------------------------------------------------------------------------------
if ENABLE_GTK_DOC
EXTRA_DIST += \
units/systemd-udevd.service.in \
units/systemd-udev-trigger.service.in \
- units/systemd-udev-settle.service.in
+ units/systemd-udev-settle.service.in \
+ units/systemd-udev-hwdb-update.service.in
CLEANFILES += \
units/systemd-udevd.service \
units/systemd-udev-trigger.service \
- units/systemd-udev-settle.service
+ units/systemd-udev-settle.service \
+ units/systemd-udev-hwdb-update.service
SOCKETS_TARGET_WANTS += \
systemd-udevd-control.socket \
systemd-udevd-kernel.socket
+
SYSINIT_TARGET_WANTS += \
systemd-udevd.service \
- systemd-udev-trigger.service
+ systemd-udev-trigger.service \
+ systemd-udev-hwdb-update.service
rootbin_PROGRAMS += \
udevadm
src/gudev/gudev-1.0.pc
libgudev_1_0_la_SOURCES = \
+ src/gudev/libgudev-1.0.sym \
src/gudev/gudevenums.h \
src/gudev/gudevenumtypes.h \
src/gudev/gudevenumtypes.h\
libgudev_1_0_la_LDFLAGS = \
$(AM_LDFLAGS) \
-version-info $(LIBGUDEV_CURRENT):$(LIBGUDEV_REVISION):$(LIBGUDEV_AGE) \
- -export-dynamic -no-undefined \
- -export-symbols-regex '^g_udev_.*'
+ -export-dynamic \
+ -no-undefined \
+ -Wl,--version-script=$(top_srcdir)/src/gudev/libgudev-1.0.sym
src/gudev/gudevmarshal.h: src/gudev/gudevmarshal.list
$(AM_V_at)$(MKDIR_P) $(dir $@)
test_catalog_LDADD = \
libsystemd-journal-core.la
+if HAVE_XZ
+test_compress_SOURCES = \
+ src/journal/test-compress.c
+
+test_compress_LDADD = \
+ libsystemd-journal-internal.la \
+ libsystemd-shared.la
+endif
+
libsystemd_journal_core_la_SOURCES = \
src/journal/journald-kmsg.c \
src/journal/journald-kmsg.h \
test-mmap-cache \
test-catalog
+if HAVE_XZ
+tests += test-compress
+endif
+
pkginclude_HEADERS += \
src/systemd/sd-journal.h \
src/systemd/sd-messages.h \
src/journal/mmap-cache.h
# using _CFLAGS = in the conditional below would suppress AM_CFLAGS
-libsystemd_journal_internal_la_CFLAGS =
+libsystemd_journal_internal_la_CFLAGS = \
$(AM_CFLAGS)
libsystemd_journal_internal_la_LIBADD =
nodist_systemunit_DATA += \
units/systemd-journald.service \
- units/systemd-journal-flush.service
+ units/systemd-journal-flush.service \
+ units/systemd-journal-catalog-update.service
dist_pkgsysconf_DATA += \
src/journal/journald.conf
SYSINIT_TARGET_WANTS += \
systemd-journald.service \
- systemd-journal-flush.service
+ systemd-journal-flush.service \
+ systemd-journal-catalog-update.service
EXTRA_DIST += \
units/systemd-journald.service.in \
units/systemd-journal-flush.service.in \
+ units/systemd-journal-catalog-update.service.in \
src/journal/journald-gperf.gperf
CLEANFILES += \
# ------------------------------------------------------------------------------
if ENABLE_COREDUMP
systemd_coredump_SOURCES = \
- src/journal/coredump.c
+ src/journal/coredump.c \
+ src/journal/coredump-vacuum.c \
+ src/journal/coredump-vacuum.h
systemd_coredump_LDADD = \
libsystemd-journal-internal.la \
libsystemd-internal.la \
libsystemd-shared.la
+if HAVE_ELFUTILS
+systemd_coredump_SOURCES += \
+ src/journal/stacktrace.c \
+ src/journal/stacktrace.h
+
+systemd_coredump_LDADD += \
+ $(ELFUTILS_LIBS)
+endif
+
rootlibexec_PROGRAMS += \
systemd-coredump
-systemd_coredumpctl_SOURCES = \
+dist_pkgsysconf_DATA += \
+ src/journal/coredump.conf
+
+if HAVE_ACL
+systemd_coredump_LDADD += \
+ libsystemd-acl.la
+endif
+
+coredumpctl_SOURCES = \
src/journal/coredumpctl.c
-systemd_coredumpctl_LDADD = \
+coredumpctl_LDADD = \
libsystemd-journal-internal.la \
libsystemd-internal.la \
libsystemd-shared.la
bin_PROGRAMS += \
- systemd-coredumpctl
+ coredumpctl
+
+manual_tests += \
+ test-coredump-vacuum
+
+test_coredump_vacuum_SOURCES = \
+ src/journal/test-coredump-vacuum.c \
+ src/journal/coredump-vacuum.c \
+ src/journal/coredump-vacuum.h
+
+test_coredump_vacuum_LDADD = \
+ libsystemd-internal.la \
+ libsystemd-shared.la
dist_bashcompletion_DATA += \
- shell-completion/bash/systemd-coredumpctl
+ shell-completion/bash/coredumpctl
dist_zshcompletion_DATA += \
- shell-completion/zsh/_systemd-coredumpctl
+ shell-completion/zsh/_coredumpctl
+
+GENERAL_ALIASES += \
+ $(bindir)/coredumpctl $(bindir)/systemd-coredumpctl
sysctl_DATA = \
sysctl.d/50-coredump.conf
systemd-cryptsetup-generator
dist_systemunit_DATA += \
- units/cryptsetup.target
+ units/cryptsetup.target \
+ units/cryptsetup-pre.target
systemd_cryptsetup_SOURCES = \
src/cryptsetup/cryptsetup.c
nodist_systemunit_DATA += \
units/systemd-timesyncd.service
+GENERAL_ALIASES += \
+ $(systemunitdir)/systemd-timesyncd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-timesyncd.service
+
EXTRA_DIST += \
units/systemd-timesyncd.service.in
src/network/networkd-netdev.c \
src/network/networkd-tunnel.c \
src/network/networkd-veth.c \
+ src/network/networkd-vxlan.c \
+ src/network/networkd-vlan.c \
+ src/network/networkd-macvlan.c \
+ src/network/networkd-dummy.c \
+ src/network/networkd-tuntap.c \
src/network/networkd-network.c \
src/network/networkd-address.c \
src/network/networkd-route.c \
- src/network/networkd-manager.c
+ src/network/networkd-manager.c \
+ src/network/networkd-address-pool.c
nodist_libsystemd_networkd_core_la_SOURCES = \
src/network/networkd-network-gperf.c \
if HAVE_PAM
pam_systemd_la_SOURCES = \
- src/login/pam-module.c
+ src/login/pam_systemd.sym \
+ src/login/pam_systemd.c
pam_systemd_la_CFLAGS = \
$(AM_CFLAGS) \
-export-dynamic \
-avoid-version \
-shared \
- -export-symbols-regex '^pam_sm_.*'
+ -Wl,--version-script=$(top_srcdir)/src/login/pam_systemd.sym
pam_systemd_la_LIBADD = \
libsystemd-capability.la \
id128_la_SOURCES = \
src/python-systemd/id128.c \
- src/python-systemd/id128-constants.h \
src/python-systemd/pyutil.c \
src/python-systemd/pyutil.h
+nodist_id128_la_SOURCES = \
+ src/python-systemd/id128-constants.h
+
id128_la_CFLAGS = \
$(AM_CFLAGS) \
-fvisibility=default \
'|udevrulesdir=$(udevrulesdir)|' \
'|catalogdir=$(catalogdir)|' \
'|tmpfilesdir=$(tmpfilesdir)|' \
+ '|sysusersdir=$(sysusersdir)|' \
'|sysctldir=$(sysctldir)|' \
'|systemgeneratordir=$(systemgeneratordir)|' \
'|usergeneratordir=$(usergeneratordir)|' \
'|NTP_SERVERS=$(NTP_SERVERS)|' \
'|DNS_SERVERS=$(DNS_SERVERS)|' \
'|systemuidmax=$(SYSTEM_UID_MAX)|' \
- '|systemgidmax=$(SYSTEM_GID_MAX)|'
+ '|systemgidmax=$(SYSTEM_GID_MAX)|' \
+ '|TTY_GID=$(TTY_GID)|' \
+ '|systemsleepdir=$(systemsleepdir)|' \
+ '|systemshutdowndir=$(systemshutdowndir)|' \
+ '|binfmtdir=$(binfmtdir)|' \
+ '|modulesloaddir=$(modulesloaddir)|'
SED_PROCESS = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(AM_V_M4)$(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@
if ENABLE_POLKIT
-nodist_polkitpolicy_DATA = \
+dist_polkitpolicy_DATA = \
$(polkitpolicy_files) \
$(polkitpolicy_in_in_files:.policy.in.in=.policy)
endif
RUNLEVEL5_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
endif
+
SYSINIT_TARGET_WANTS += \
- systemd-update-utmp.service
+ systemd-update-utmp.service \
+ systemd-update-done.service \
+ ldconfig.service
+
LOCAL_FS_TARGET_WANTS += \
systemd-remount-fs.service \
tmp.mount
+
MULTI_USER_TARGET_WANTS += \
getty.target \
systemd-ask-password-wall.path
+
SYSINIT_TARGET_WANTS += \
dev-hugepages.mount \
dev-mqueue.mount \
--with-sysvrcnd-path=
endif
+if HAVE_PYTHON
+DISTCHECK_CONFIGURE_FLAGS += \
+ --with-python
+endif
+
if ENABLE_GTK_DOC
DISTCHECK_CONFIGURE_FLAGS += \
--enable-gtk-doc
endif
+#
+# Require python when making dist
+#
+.PHONY: dist-check-python
+dist-check-python:
+if !HAVE_PYTHON
+ @echo "*** python and python-lxml module must be installed and enabled in order to make dist"
+ @false
+endif
+
+dist-check-compat-libs:
+if !ENABLE_COMPAT_LIBS
+ @echo "*** compat-libs must be enabled in order to make dist"
+ @false
+endif
+
+dist: dist-check-python dist-check-compat-libs
+
# check "broken" platforms limited toolchains for link breakage before we release
.PHONY: linkcheck
linkcheck:
done
exported-%: %
- $(AM_V_GEN)nm -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@
+ $(AM_V_GEN)$(NM) -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@
exported: $(addprefix exported-, $(lib_LTLIBRARIES))
$(AM_V_GEN)cat $^ > $@
undefined defined: $(ALL_OBJECTS)
$(AM_V_GEN)for f in $(ALL_OBJECTS) ; do \
- nm -g --$@-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
+ $(NM) -g --$@-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
done | cut -c 20- | cut -d @ -f 1 | sort -u > $@
CLEANFILES += \
build_triplet = @build@
host_triplet = @host@
check_PROGRAMS =
-@ENABLE_TESTS_TRUE@noinst_PROGRAMS = $(am__EXEEXT_10) $(am__EXEEXT_14)
+@ENABLE_TESTS_TRUE@noinst_PROGRAMS = $(am__EXEEXT_11) $(am__EXEEXT_16)
@ENABLE_TESTS_FALSE@TESTS = test/udev-test.pl test/rules-test.sh
-@ENABLE_TESTS_TRUE@TESTS = $(am__EXEEXT_14) test/udev-test.pl \
+@ENABLE_TESTS_TRUE@TESTS = $(am__EXEEXT_16) test/udev-test.pl \
@ENABLE_TESTS_TRUE@ test/rules-test.sh
udevlibexec_PROGRAMS = ata_id$(EXEEXT) cdrom_id$(EXEEXT) \
collect$(EXEEXT) scsi_id$(EXEEXT) v4l_id$(EXEEXT) \
rootbin_PROGRAMS = systemctl$(EXEEXT) systemd-notify$(EXEEXT) \
systemd-ask-password$(EXEEXT) \
systemd-tty-ask-password-agent$(EXEEXT) \
- systemd-machine-id-setup$(EXEEXT) $(am__EXEEXT_15) \
- udevadm$(EXEEXT) journalctl$(EXEEXT) $(am__EXEEXT_16) \
- $(am__EXEEXT_17)
+ systemd-machine-id-setup$(EXEEXT) $(am__EXEEXT_17) \
+ $(am__EXEEXT_18) udevadm$(EXEEXT) journalctl$(EXEEXT) \
+ $(am__EXEEXT_19) $(am__EXEEXT_20)
bin_PROGRAMS = systemd-cgls$(EXEEXT) systemd-cgtop$(EXEEXT) \
systemd-nspawn$(EXEEXT) systemd-detect-virt$(EXEEXT) \
systemd-delta$(EXEEXT) systemd-analyze$(EXEEXT) \
- systemd-run$(EXEEXT) $(am__EXEEXT_1) busctl$(EXEEXT) \
- systemd-cat$(EXEEXT) $(am__EXEEXT_2) $(am__EXEEXT_3) \
- $(am__EXEEXT_4) $(am__EXEEXT_5)
+ systemd-run$(EXEEXT) systemd-path$(EXEEXT) $(am__EXEEXT_1) \
+ busctl$(EXEEXT) systemd-cat$(EXEEXT) $(am__EXEEXT_2) \
+ $(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5)
rootlibexec_PROGRAMS = systemd$(EXEEXT) systemd-cgroups-agent$(EXEEXT) \
systemd-initctl$(EXEEXT) systemd-update-utmp$(EXEEXT) \
systemd-shutdownd$(EXEEXT) systemd-shutdown$(EXEEXT) \
systemd-fsck$(EXEEXT) systemd-ac-power$(EXEEXT) \
systemd-sysctl$(EXEEXT) systemd-sleep$(EXEEXT) \
systemd-bus-proxyd$(EXEEXT) systemd-socket-proxyd$(EXEEXT) \
- $(am__EXEEXT_18) systemd-udevd$(EXEEXT) \
- systemd-activate$(EXEEXT) $(am__EXEEXT_19) \
- systemd-journald$(EXEEXT) $(am__EXEEXT_20) $(am__EXEEXT_21) \
- $(am__EXEEXT_22) $(am__EXEEXT_23) $(am__EXEEXT_24) \
- $(am__EXEEXT_25) $(am__EXEEXT_26) $(am__EXEEXT_27) \
- $(am__EXEEXT_28) $(am__EXEEXT_29) $(am__EXEEXT_30) \
- $(am__EXEEXT_31) $(am__EXEEXT_32) $(am__EXEEXT_33) \
- $(am__EXEEXT_34) $(am__EXEEXT_35) $(am__EXEEXT_36) \
- $(am__EXEEXT_37) $(am__EXEEXT_38) $(am__EXEEXT_39)
+ systemd-update-done$(EXEEXT) $(am__EXEEXT_21) \
+ systemd-udevd$(EXEEXT) systemd-activate$(EXEEXT) \
+ $(am__EXEEXT_22) systemd-journald$(EXEEXT) $(am__EXEEXT_23) \
+ $(am__EXEEXT_24) $(am__EXEEXT_25) $(am__EXEEXT_26) \
+ $(am__EXEEXT_27) $(am__EXEEXT_28) $(am__EXEEXT_29) \
+ $(am__EXEEXT_30) $(am__EXEEXT_31) $(am__EXEEXT_32) \
+ $(am__EXEEXT_33) $(am__EXEEXT_34) $(am__EXEEXT_35) \
+ $(am__EXEEXT_36) $(am__EXEEXT_37) $(am__EXEEXT_38) \
+ $(am__EXEEXT_39) $(am__EXEEXT_40) $(am__EXEEXT_41) \
+ $(am__EXEEXT_42)
systemgenerator_PROGRAMS = systemd-getty-generator$(EXEEXT) \
systemd-fstab-generator$(EXEEXT) \
- systemd-system-update-generator$(EXEEXT) $(am__EXEEXT_40) \
- $(am__EXEEXT_41) $(am__EXEEXT_42) $(am__EXEEXT_43) \
- $(am__EXEEXT_44)
+ systemd-system-update-generator$(EXEEXT) \
+ systemd-debug-generator$(EXEEXT) $(am__EXEEXT_43) \
+ $(am__EXEEXT_44) $(am__EXEEXT_45) $(am__EXEEXT_46) \
+ $(am__EXEEXT_47)
@HAVE_SYSV_COMPAT_TRUE@am__append_1 = \
@HAVE_SYSV_COMPAT_TRUE@ units/rc-local.service \
@HAVE_SYSV_COMPAT_TRUE@ units/halt-local.service
$(am__dist_gatewayddocumentroot_DATA_DIST) \
$(dist_network_DATA) $(am__dist_ntpunits_DATA_DIST) \
$(am__dist_pamconf_DATA_DIST) $(am__dist_pkgdata_DATA_DIST) \
- $(am__dist_pkgsysconf_DATA_DIST) $(dist_sysctl_DATA) \
- $(am__dist_systemunit_DATA_DIST) \
- $(am__dist_tmpfiles_DATA_DIST) $(dist_udevconf_DATA) \
- $(dist_udevhwdb_DATA) $(am__dist_udevrules_DATA_DIST) \
- $(am__dist_userunit_DATA_DIST) \
+ $(am__dist_pkgsysconf_DATA_DIST) \
+ $(am__dist_polkitpolicy_DATA_DIST) $(dist_sysctl_DATA) \
+ $(dist_systempreset_DATA) $(am__dist_systemunit_DATA_DIST) \
+ $(am__dist_sysusers_DATA_DIST) $(am__dist_tmpfiles_DATA_DIST) \
+ $(dist_udevconf_DATA) $(dist_udevhwdb_DATA) \
+ $(am__dist_udevrules_DATA_DIST) $(am__dist_userunit_DATA_DIST) \
$(am__dist_zshcompletion_DATA_DIST) $(include_HEADERS) \
$(am__libgudev_include_HEADERS_DIST) \
$(am__pkginclude_HEADERS_DIST) \
@ENABLE_BOOTCHART_TRUE@ #
@ENABLE_COREDUMP_TRUE@am__append_9 = \
-@ENABLE_COREDUMP_TRUE@ man/systemd-coredumpctl.1
+@ENABLE_COREDUMP_TRUE@ man/coredump.conf.5 \
+@ENABLE_COREDUMP_TRUE@ man/coredumpctl.1
@ENABLE_COREDUMP_TRUE@am__append_10 = \
@ENABLE_COREDUMP_TRUE@ #
@ENABLE_TMPFILES_TRUE@ $(tmpfilesdir) \
@ENABLE_TMPFILES_TRUE@ $(sysconfdir)/tmpfiles.d
+@ENABLE_SYSUSERS_TRUE@am__append_77 = \
+@ENABLE_SYSUSERS_TRUE@ systemd-sysusers
+
+@ENABLE_SYSUSERS_TRUE@am__append_78 = \
+@ENABLE_SYSUSERS_TRUE@ units/systemd-sysusers.service
+
+@ENABLE_SYSUSERS_TRUE@am__append_79 = \
+@ENABLE_SYSUSERS_TRUE@ systemd-sysusers.service
+
+@ENABLE_SYSUSERS_TRUE@am__append_80 = \
+@ENABLE_SYSUSERS_TRUE@ units/systemd-sysusers.service.in \
+@ENABLE_SYSUSERS_TRUE@ sysusers.d/basic.conf.in
+
+@ENABLE_SYSUSERS_TRUE@am__append_81 = \
+@ENABLE_SYSUSERS_TRUE@ sysusers.d/basic.conf
+
+@ENABLE_SYSUSERS_TRUE@am__append_82 = \
+@ENABLE_SYSUSERS_TRUE@ $(sysusersdir)
+
# ------------------------------------------------------------------------------
-@ENABLE_EFI_TRUE@am__append_77 = \
+@ENABLE_EFI_TRUE@am__append_83 = \
@ENABLE_EFI_TRUE@ systemd-efi-boot-generator
-@ENABLE_EFI_TRUE@am__append_78 = \
+@ENABLE_EFI_TRUE@am__append_84 = \
@ENABLE_EFI_TRUE@ bootctl
-@ENABLE_EFI_TRUE@am__append_79 = \
+@ENABLE_EFI_TRUE@am__append_85 = \
@ENABLE_EFI_TRUE@ shell-completion/bash/bootctl
-@ENABLE_EFI_TRUE@am__append_80 = \
+@ENABLE_EFI_TRUE@am__append_86 = \
@ENABLE_EFI_TRUE@ shell-completion/zsh/_bootctl
# ------------------------------------------------------------------------------
-@HAVE_BLKID_TRUE@am__append_81 = \
+@HAVE_BLKID_TRUE@am__append_87 = \
@HAVE_BLKID_TRUE@ systemd-gpt-auto-generator
# ------------------------------------------------------------------------------
-@ENABLE_KDBUS_TRUE@am__append_82 = \
+@ENABLE_KDBUS_TRUE@am__append_88 = \
@ENABLE_KDBUS_TRUE@ systemd-dbus1-generator
-@ENABLE_KDBUS_TRUE@am__append_83 = dbus1-generator-install-hook
-@ENABLE_KDBUS_TRUE@am__append_84 = dbus1-generator-uninstall-hook
-@HAVE_SECCOMP_TRUE@am__append_85 = \
+@ENABLE_KDBUS_TRUE@am__append_89 = dbus1-generator-install-hook
+@ENABLE_KDBUS_TRUE@am__append_90 = dbus1-generator-uninstall-hook
+@HAVE_SECCOMP_TRUE@am__append_91 = \
@HAVE_SECCOMP_TRUE@ libsystemd-seccomp.la \
@HAVE_SECCOMP_TRUE@ $(SECCOMP_LIBS)
-@ENABLE_KDBUS_TRUE@am__append_86 = \
+@ENABLE_KDBUS_TRUE@am__append_92 = \
@ENABLE_KDBUS_TRUE@ units/systemd-bus-proxyd@.service
-@ENABLE_KDBUS_TRUE@am__append_87 = \
+@ENABLE_KDBUS_TRUE@am__append_93 = \
@ENABLE_KDBUS_TRUE@ units/systemd-bus-proxyd.socket
-@ENABLE_KDBUS_TRUE@am__append_88 = \
+@ENABLE_KDBUS_TRUE@am__append_94 = \
@ENABLE_KDBUS_TRUE@ units/user/systemd-bus-proxyd.socket \
@ENABLE_KDBUS_TRUE@ units/user/systemd-bus-proxyd@.service
-@ENABLE_KDBUS_TRUE@am__append_89 = \
+@ENABLE_KDBUS_TRUE@am__append_95 = \
@ENABLE_KDBUS_TRUE@ src/systemd/sd-bus.h \
@ENABLE_KDBUS_TRUE@ src/systemd/sd-bus-protocol.h \
@ENABLE_KDBUS_TRUE@ src/systemd/sd-bus-vtable.h \
@ENABLE_KDBUS_TRUE@ src/systemd/sd-utf8.h \
@ENABLE_KDBUS_TRUE@ src/systemd/sd-event.h \
@ENABLE_KDBUS_TRUE@ src/systemd/sd-rtnl.h \
-@ENABLE_KDBUS_TRUE@ src/systemd/sd-resolve.h
+@ENABLE_KDBUS_TRUE@ src/systemd/sd-resolve.h \
+@ENABLE_KDBUS_TRUE@ src/systemd/sd-path.h
# ------------------------------------------------------------------------------
-@ENABLE_GTK_DOC_TRUE@am__append_90 = \
+@ENABLE_GTK_DOC_TRUE@am__append_96 = \
@ENABLE_GTK_DOC_TRUE@ docs/libudev
-@ENABLE_GTK_DOC_TRUE@am__append_91 = \
+@ENABLE_GTK_DOC_TRUE@am__append_97 = \
@ENABLE_GTK_DOC_TRUE@ docs/html/libudev \
@ENABLE_GTK_DOC_TRUE@ docs/html/gudev
-@ENABLE_FIRMWARE_TRUE@am__append_92 = \
+@ENABLE_FIRMWARE_TRUE@am__append_98 = \
@ENABLE_FIRMWARE_TRUE@ src/udev/udev-builtin-firmware.c
-@ENABLE_FIRMWARE_TRUE@am__append_93 = \
+@ENABLE_FIRMWARE_TRUE@am__append_99 = \
@ENABLE_FIRMWARE_TRUE@ rules/50-firmware.rules
-@HAVE_KMOD_TRUE@am__append_94 = \
+@HAVE_KMOD_TRUE@am__append_100 = \
@HAVE_KMOD_TRUE@ src/udev/udev-builtin-kmod.c
-@HAVE_KMOD_TRUE@am__append_95 = \
+@HAVE_KMOD_TRUE@am__append_101 = \
@HAVE_KMOD_TRUE@ rules/80-drivers.rules
-@HAVE_BLKID_TRUE@am__append_96 = \
+@HAVE_BLKID_TRUE@am__append_102 = \
@HAVE_BLKID_TRUE@ src/udev/udev-builtin-blkid.c
-@HAVE_ACL_TRUE@am__append_97 = \
+@HAVE_ACL_TRUE@am__append_103 = \
@HAVE_ACL_TRUE@ src/udev/udev-builtin-uaccess.c \
@HAVE_ACL_TRUE@ src/login/logind-acl.c \
@HAVE_ACL_TRUE@ src/libsystemd/sd-login/sd-login.c \
@HAVE_ACL_TRUE@ src/systemd/sd-login.h
-@HAVE_ACL_TRUE@am__append_98 = \
+@HAVE_ACL_TRUE@am__append_104 = \
@HAVE_ACL_TRUE@ libsystemd-acl.la
-@HAVE_ACL_TRUE@am__append_99 = \
+@HAVE_ACL_TRUE@am__append_105 = \
@HAVE_ACL_TRUE@ libsystemd-acl.la
# ------------------------------------------------------------------------------
-@ENABLE_GTK_DOC_TRUE@@ENABLE_GUDEV_TRUE@am__append_100 = \
+@ENABLE_GTK_DOC_TRUE@@ENABLE_GUDEV_TRUE@am__append_106 = \
@ENABLE_GTK_DOC_TRUE@@ENABLE_GUDEV_TRUE@ docs/gudev
-@ENABLE_GUDEV_TRUE@am__append_101 = libgudev-1.0.la
-@ENABLE_GUDEV_TRUE@am__append_102 = \
+@ENABLE_GUDEV_TRUE@am__append_107 = libgudev-1.0.la
+@ENABLE_GUDEV_TRUE@am__append_108 = \
@ENABLE_GUDEV_TRUE@ src/gudev/gudev-1.0.pc
-@ENABLE_GUDEV_TRUE@am__append_103 = \
+@ENABLE_GUDEV_TRUE@am__append_109 = \
@ENABLE_GUDEV_TRUE@ src/gudev/gudev-1.0.pc
-@ENABLE_GUDEV_TRUE@am__append_104 = \
+@ENABLE_GUDEV_TRUE@am__append_110 = \
@ENABLE_GUDEV_TRUE@ $(nodist_libgudev_1_0_la_SOURCES)
-@ENABLE_GUDEV_TRUE@@HAVE_INTROSPECTION_TRUE@am__append_105 = $(gir_DATA) $(typelibs_DATA)
-@ENABLE_GUDEV_TRUE@am__append_106 = libgudev-install-hook
-@ENABLE_GUDEV_TRUE@am__append_107 = libgudev-uninstall-hook
-@HAVE_MICROHTTPD_TRUE@am__append_108 = \
+@ENABLE_GUDEV_TRUE@@HAVE_INTROSPECTION_TRUE@am__append_111 = $(gir_DATA) $(typelibs_DATA)
+@ENABLE_GUDEV_TRUE@am__append_112 = libgudev-install-hook
+@ENABLE_GUDEV_TRUE@am__append_113 = libgudev-uninstall-hook
+@HAVE_MICROHTTPD_TRUE@am__append_114 = \
@HAVE_MICROHTTPD_TRUE@ systemd-journal-remote
-@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@am__append_109 = \
+@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@am__append_115 = \
@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@ $(GNUTLS_LIBS)
-@HAVE_ACL_TRUE@am__append_110 = \
+@HAVE_ACL_TRUE@am__append_116 = \
@HAVE_ACL_TRUE@ libsystemd-acl.la
-@HAVE_QRENCODE_TRUE@am__append_111 = \
+@HAVE_QRENCODE_TRUE@am__append_117 = \
@HAVE_QRENCODE_TRUE@ src/journal/journal-qrcode.c \
@HAVE_QRENCODE_TRUE@ src/journal/journal-qrcode.h
-@HAVE_QRENCODE_TRUE@am__append_112 = \
+@HAVE_QRENCODE_TRUE@am__append_118 = \
@HAVE_QRENCODE_TRUE@ $(QRENCODE_CFLAGS)
-@HAVE_QRENCODE_TRUE@am__append_113 = \
+@HAVE_QRENCODE_TRUE@am__append_119 = \
@HAVE_QRENCODE_TRUE@ $(QRENCODE_LIBS)
-@HAVE_ACL_TRUE@am__append_114 = \
+@HAVE_ACL_TRUE@am__append_120 = \
@HAVE_ACL_TRUE@ libsystemd-acl.la
-@HAVE_XZ_TRUE@am__append_115 = \
+@HAVE_XZ_TRUE@am__append_121 = test-compress
+@HAVE_XZ_TRUE@am__append_122 = \
@HAVE_XZ_TRUE@ src/journal/compress.c
-@HAVE_XZ_TRUE@am__append_116 = \
+@HAVE_XZ_TRUE@am__append_123 = \
@HAVE_XZ_TRUE@ $(XZ_CFLAGS)
-@HAVE_XZ_TRUE@am__append_117 = \
+@HAVE_XZ_TRUE@am__append_124 = \
@HAVE_XZ_TRUE@ $(XZ_LIBS)
-@HAVE_GCRYPT_TRUE@am__append_118 = \
+@HAVE_GCRYPT_TRUE@am__append_125 = \
@HAVE_GCRYPT_TRUE@ src/journal/journal-authenticate.c \
@HAVE_GCRYPT_TRUE@ src/journal/journal-authenticate.h \
@HAVE_GCRYPT_TRUE@ src/journal/fsprg.c \
@HAVE_GCRYPT_TRUE@ src/journal/fsprg.h
-@HAVE_GCRYPT_TRUE@am__append_119 = \
+@HAVE_GCRYPT_TRUE@am__append_126 = \
@HAVE_GCRYPT_TRUE@ $(GCRYPT_LIBS)
# fsprg.c is a drop-in file using void pointer arithmetic
-@HAVE_GCRYPT_TRUE@am__append_120 = \
+@HAVE_GCRYPT_TRUE@am__append_127 = \
@HAVE_GCRYPT_TRUE@ $(GCRYPT_CFLAGS) \
@HAVE_GCRYPT_TRUE@ -Wno-pointer-arith
-@HAVE_MICROHTTPD_TRUE@am__append_121 = \
+@HAVE_MICROHTTPD_TRUE@am__append_128 = \
@HAVE_MICROHTTPD_TRUE@ systemd-journal-gatewayd
-@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@am__append_122 = \
+@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@am__append_129 = \
@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@ $(GNUTLS_LIBS)
-@HAVE_MICROHTTPD_TRUE@am__append_123 = \
+@HAVE_MICROHTTPD_TRUE@am__append_130 = \
@HAVE_MICROHTTPD_TRUE@ units/systemd-journal-gatewayd.socket
-@HAVE_MICROHTTPD_TRUE@am__append_124 = \
+@HAVE_MICROHTTPD_TRUE@am__append_131 = \
@HAVE_MICROHTTPD_TRUE@ units/systemd-journal-gatewayd.service
-@ENABLE_COREDUMP_TRUE@am__append_125 = \
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@am__append_132 = \
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@ src/journal/stacktrace.c \
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@ src/journal/stacktrace.h
+
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@am__append_133 = \
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@ $(ELFUTILS_LIBS)
+
+@ENABLE_COREDUMP_TRUE@am__append_134 = \
@ENABLE_COREDUMP_TRUE@ systemd-coredump
-@ENABLE_COREDUMP_TRUE@am__append_126 = \
-@ENABLE_COREDUMP_TRUE@ systemd-coredumpctl
+@ENABLE_COREDUMP_TRUE@am__append_135 = \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump.conf
+
+@ENABLE_COREDUMP_TRUE@@HAVE_ACL_TRUE@am__append_136 = \
+@ENABLE_COREDUMP_TRUE@@HAVE_ACL_TRUE@ libsystemd-acl.la
+
+@ENABLE_COREDUMP_TRUE@am__append_137 = \
+@ENABLE_COREDUMP_TRUE@ coredumpctl
-@ENABLE_COREDUMP_TRUE@am__append_127 = \
-@ENABLE_COREDUMP_TRUE@ shell-completion/bash/systemd-coredumpctl
+@ENABLE_COREDUMP_TRUE@am__append_138 = \
+@ENABLE_COREDUMP_TRUE@ test-coredump-vacuum
-@ENABLE_COREDUMP_TRUE@am__append_128 = \
-@ENABLE_COREDUMP_TRUE@ shell-completion/zsh/_systemd-coredumpctl
+@ENABLE_COREDUMP_TRUE@am__append_139 = \
+@ENABLE_COREDUMP_TRUE@ shell-completion/bash/coredumpctl
-@ENABLE_COREDUMP_TRUE@am__append_129 = \
+@ENABLE_COREDUMP_TRUE@am__append_140 = \
+@ENABLE_COREDUMP_TRUE@ shell-completion/zsh/_coredumpctl
+
+@ENABLE_COREDUMP_TRUE@am__append_141 = \
+@ENABLE_COREDUMP_TRUE@ $(bindir)/coredumpctl $(bindir)/systemd-coredumpctl
+
+@ENABLE_COREDUMP_TRUE@am__append_142 = \
@ENABLE_COREDUMP_TRUE@ sysctl.d/50-coredump.conf
-@ENABLE_BINFMT_TRUE@am__append_130 = \
+@ENABLE_BINFMT_TRUE@am__append_143 = \
@ENABLE_BINFMT_TRUE@ systemd-binfmt
-@ENABLE_BINFMT_TRUE@am__append_131 = \
+@ENABLE_BINFMT_TRUE@am__append_144 = \
@ENABLE_BINFMT_TRUE@ units/proc-sys-fs-binfmt_misc.automount \
@ENABLE_BINFMT_TRUE@ units/proc-sys-fs-binfmt_misc.mount
-@ENABLE_BINFMT_TRUE@am__append_132 = \
+@ENABLE_BINFMT_TRUE@am__append_145 = \
@ENABLE_BINFMT_TRUE@ units/systemd-binfmt.service
-@ENABLE_BINFMT_TRUE@am__append_133 = \
+@ENABLE_BINFMT_TRUE@am__append_146 = \
@ENABLE_BINFMT_TRUE@ $(prefix)/lib/binfmt.d \
@ENABLE_BINFMT_TRUE@ $(sysconfdir)/binfmt.d
-@ENABLE_BINFMT_TRUE@am__append_134 = \
+@ENABLE_BINFMT_TRUE@am__append_147 = \
@ENABLE_BINFMT_TRUE@ systemd-binfmt.service \
@ENABLE_BINFMT_TRUE@ proc-sys-fs-binfmt_misc.automount
-@ENABLE_VCONSOLE_TRUE@am__append_135 = \
+@ENABLE_VCONSOLE_TRUE@am__append_148 = \
@ENABLE_VCONSOLE_TRUE@ systemd-vconsole-setup
-@ENABLE_VCONSOLE_TRUE@am__append_136 = \
+@ENABLE_VCONSOLE_TRUE@am__append_149 = \
@ENABLE_VCONSOLE_TRUE@ units/systemd-vconsole-setup.service
-@ENABLE_VCONSOLE_TRUE@am__append_137 = \
+@ENABLE_VCONSOLE_TRUE@am__append_150 = \
@ENABLE_VCONSOLE_TRUE@ systemd-vconsole-setup.service
-@ENABLE_READAHEAD_TRUE@am__append_138 = \
+@ENABLE_READAHEAD_TRUE@am__append_151 = \
@ENABLE_READAHEAD_TRUE@ src/readahead/sd-readahead.c \
@ENABLE_READAHEAD_TRUE@ src/systemd/sd-readahead.h
-@ENABLE_READAHEAD_TRUE@am__append_139 = \
+@ENABLE_READAHEAD_TRUE@am__append_152 = \
@ENABLE_READAHEAD_TRUE@ systemd-readahead
-@ENABLE_READAHEAD_TRUE@am__append_140 = \
+@ENABLE_READAHEAD_TRUE@am__append_153 = \
@ENABLE_READAHEAD_TRUE@ units/systemd-readahead-drop.service \
@ENABLE_READAHEAD_TRUE@ units/systemd-readahead-done.timer
-@ENABLE_READAHEAD_TRUE@am__append_141 = \
+@ENABLE_READAHEAD_TRUE@am__append_154 = \
@ENABLE_READAHEAD_TRUE@ units/systemd-readahead-collect.service \
@ENABLE_READAHEAD_TRUE@ units/systemd-readahead-replay.service \
@ENABLE_READAHEAD_TRUE@ units/systemd-readahead-done.service
-@ENABLE_READAHEAD_TRUE@am__append_142 = \
+@ENABLE_READAHEAD_TRUE@am__append_155 = \
@ENABLE_READAHEAD_TRUE@ test-ssd
-@ENABLE_BOOTCHART_TRUE@am__append_143 = \
+@ENABLE_BOOTCHART_TRUE@am__append_156 = \
@ENABLE_BOOTCHART_TRUE@ systemd-bootchart
-@ENABLE_BOOTCHART_TRUE@am__append_144 = \
+@ENABLE_BOOTCHART_TRUE@am__append_157 = \
@ENABLE_BOOTCHART_TRUE@ src/bootchart/bootchart.conf
# ------------------------------------------------------------------------------
-@ENABLE_QUOTACHECK_TRUE@am__append_145 = \
+@ENABLE_QUOTACHECK_TRUE@am__append_158 = \
@ENABLE_QUOTACHECK_TRUE@ systemd-quotacheck
-@ENABLE_QUOTACHECK_TRUE@am__append_146 = \
+@ENABLE_QUOTACHECK_TRUE@am__append_159 = \
@ENABLE_QUOTACHECK_TRUE@ units/systemd-quotacheck.service
# ------------------------------------------------------------------------------
-@ENABLE_RANDOMSEED_TRUE@am__append_147 = \
+@ENABLE_RANDOMSEED_TRUE@am__append_160 = \
@ENABLE_RANDOMSEED_TRUE@ systemd-random-seed
-@ENABLE_RANDOMSEED_TRUE@am__append_148 = \
+@ENABLE_RANDOMSEED_TRUE@am__append_161 = \
@ENABLE_RANDOMSEED_TRUE@ units/systemd-random-seed.service
-@ENABLE_RANDOMSEED_TRUE@am__append_149 = \
+@ENABLE_RANDOMSEED_TRUE@am__append_162 = \
@ENABLE_RANDOMSEED_TRUE@ systemd-random-seed.service
# ------------------------------------------------------------------------------
-@ENABLE_BACKLIGHT_TRUE@am__append_150 = \
+@ENABLE_BACKLIGHT_TRUE@am__append_163 = \
@ENABLE_BACKLIGHT_TRUE@ systemd-backlight
-@ENABLE_BACKLIGHT_TRUE@am__append_151 = \
+@ENABLE_BACKLIGHT_TRUE@am__append_164 = \
@ENABLE_BACKLIGHT_TRUE@ units/systemd-backlight@.service
# ------------------------------------------------------------------------------
-@ENABLE_RFKILL_TRUE@am__append_152 = \
+@ENABLE_RFKILL_TRUE@am__append_165 = \
@ENABLE_RFKILL_TRUE@ systemd-rfkill
-@ENABLE_RFKILL_TRUE@am__append_153 = \
+@ENABLE_RFKILL_TRUE@am__append_166 = \
@ENABLE_RFKILL_TRUE@ units/systemd-rfkill@.service
# ------------------------------------------------------------------------------
-@HAVE_LIBCRYPTSETUP_TRUE@am__append_154 = \
+@HAVE_LIBCRYPTSETUP_TRUE@am__append_167 = \
@HAVE_LIBCRYPTSETUP_TRUE@ systemd-cryptsetup
-@HAVE_LIBCRYPTSETUP_TRUE@am__append_155 = \
+@HAVE_LIBCRYPTSETUP_TRUE@am__append_168 = \
@HAVE_LIBCRYPTSETUP_TRUE@ systemd-cryptsetup-generator
-@HAVE_LIBCRYPTSETUP_TRUE@am__append_156 = \
-@HAVE_LIBCRYPTSETUP_TRUE@ units/cryptsetup.target
+@HAVE_LIBCRYPTSETUP_TRUE@am__append_169 = \
+@HAVE_LIBCRYPTSETUP_TRUE@ units/cryptsetup.target \
+@HAVE_LIBCRYPTSETUP_TRUE@ units/cryptsetup-pre.target
-@HAVE_LIBCRYPTSETUP_TRUE@am__append_157 = \
+@HAVE_LIBCRYPTSETUP_TRUE@am__append_170 = \
@HAVE_LIBCRYPTSETUP_TRUE@ cryptsetup.target
-@ENABLE_HOSTNAMED_TRUE@am__append_158 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_171 = \
@ENABLE_HOSTNAMED_TRUE@ systemd-hostnamed
-@ENABLE_HOSTNAMED_TRUE@am__append_159 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_172 = \
@ENABLE_HOSTNAMED_TRUE@ units/systemd-hostnamed.service
-@ENABLE_HOSTNAMED_TRUE@am__append_160 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_173 = \
@ENABLE_HOSTNAMED_TRUE@ units/org.freedesktop.hostname1.busname
-@ENABLE_HOSTNAMED_TRUE@am__append_161 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_174 = \
@ENABLE_HOSTNAMED_TRUE@ src/hostname/org.freedesktop.hostname1.conf
-@ENABLE_HOSTNAMED_TRUE@am__append_162 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_175 = \
@ENABLE_HOSTNAMED_TRUE@ src/hostname/org.freedesktop.hostname1.service
-@ENABLE_HOSTNAMED_TRUE@am__append_163 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_176 = \
@ENABLE_HOSTNAMED_TRUE@ src/hostname/org.freedesktop.hostname1.policy
-@ENABLE_HOSTNAMED_TRUE@am__append_164 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_177 = \
@ENABLE_HOSTNAMED_TRUE@ systemd-hostnamed.service dbus-org.freedesktop.hostname1.service
-@ENABLE_HOSTNAMED_TRUE@am__append_165 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_178 = \
@ENABLE_HOSTNAMED_TRUE@ org.freedesktop.hostname1.busname
-@ENABLE_HOSTNAMED_TRUE@am__append_166 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_179 = \
@ENABLE_HOSTNAMED_TRUE@ hostnamectl
-@ENABLE_HOSTNAMED_TRUE@am__append_167 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_180 = \
@ENABLE_HOSTNAMED_TRUE@ shell-completion/bash/hostnamectl
-@ENABLE_HOSTNAMED_TRUE@am__append_168 = \
+@ENABLE_HOSTNAMED_TRUE@am__append_181 = \
@ENABLE_HOSTNAMED_TRUE@ shell-completion/zsh/_hostnamectl
# ------------------------------------------------------------------------------
-@ENABLE_KDBUS_TRUE@am__append_169 = \
+@ENABLE_KDBUS_TRUE@am__append_182 = \
@ENABLE_KDBUS_TRUE@ units/org.freedesktop.systemd1.busname
-@ENABLE_KDBUS_TRUE@am__append_170 = \
+@ENABLE_KDBUS_TRUE@am__append_183 = \
@ENABLE_KDBUS_TRUE@ org.freedesktop.systemd1.busname
-@ENABLE_LOCALED_TRUE@am__append_171 = \
+@ENABLE_LOCALED_TRUE@am__append_184 = \
@ENABLE_LOCALED_TRUE@ units/systemd-localed.service
-@ENABLE_LOCALED_TRUE@am__append_172 = \
+@ENABLE_LOCALED_TRUE@am__append_185 = \
@ENABLE_LOCALED_TRUE@ units/org.freedesktop.locale1.busname
-@ENABLE_LOCALED_TRUE@am__append_173 = \
+@ENABLE_LOCALED_TRUE@am__append_186 = \
@ENABLE_LOCALED_TRUE@ systemd-localed
-@ENABLE_LOCALED_TRUE@am__append_174 = \
+@ENABLE_LOCALED_TRUE@am__append_187 = \
@ENABLE_LOCALED_TRUE@ src/locale/org.freedesktop.locale1.conf
-@ENABLE_LOCALED_TRUE@am__append_175 = \
+@ENABLE_LOCALED_TRUE@am__append_188 = \
@ENABLE_LOCALED_TRUE@ src/locale/org.freedesktop.locale1.service
-@ENABLE_LOCALED_TRUE@am__append_176 = \
+@ENABLE_LOCALED_TRUE@am__append_189 = \
@ENABLE_LOCALED_TRUE@ src/locale/org.freedesktop.locale1.policy
-@ENABLE_LOCALED_TRUE@am__append_177 = \
+@ENABLE_LOCALED_TRUE@am__append_190 = \
@ENABLE_LOCALED_TRUE@ systemd-localed.service dbus-org.freedesktop.locale1.service
-@ENABLE_LOCALED_TRUE@am__append_178 = \
+@ENABLE_LOCALED_TRUE@am__append_191 = \
@ENABLE_LOCALED_TRUE@ org.freedesktop.locale1.busname
-@ENABLE_LOCALED_TRUE@am__append_179 = \
+@ENABLE_LOCALED_TRUE@am__append_192 = \
@ENABLE_LOCALED_TRUE@ src/locale/kbd-model-map
-@ENABLE_LOCALED_TRUE@am__append_180 = \
+@ENABLE_LOCALED_TRUE@am__append_193 = \
@ENABLE_LOCALED_TRUE@ localectl
-@ENABLE_LOCALED_TRUE@am__append_181 = \
+@ENABLE_LOCALED_TRUE@am__append_194 = \
@ENABLE_LOCALED_TRUE@ shell-completion/bash/localectl
-@ENABLE_LOCALED_TRUE@am__append_182 = \
+@ENABLE_LOCALED_TRUE@am__append_195 = \
@ENABLE_LOCALED_TRUE@ shell-completion/zsh/_localectl
-@ENABLE_TIMEDATED_TRUE@am__append_183 = \
+@ENABLE_TIMEDATED_TRUE@am__append_196 = \
@ENABLE_TIMEDATED_TRUE@ systemd-timedated
-@ENABLE_TIMEDATED_TRUE@am__append_184 = \
+@ENABLE_TIMEDATED_TRUE@am__append_197 = \
@ENABLE_TIMEDATED_TRUE@ src/timedate/org.freedesktop.timedate1.service
-@ENABLE_TIMEDATED_TRUE@am__append_185 = \
+@ENABLE_TIMEDATED_TRUE@am__append_198 = \
@ENABLE_TIMEDATED_TRUE@ src/timedate/org.freedesktop.timedate1.conf
-@ENABLE_TIMEDATED_TRUE@am__append_186 = \
+@ENABLE_TIMEDATED_TRUE@am__append_199 = \
@ENABLE_TIMEDATED_TRUE@ units/systemd-timedated.service
-@ENABLE_TIMEDATED_TRUE@am__append_187 = \
+@ENABLE_TIMEDATED_TRUE@am__append_200 = \
@ENABLE_TIMEDATED_TRUE@ units/org.freedesktop.timedate1.busname
-@ENABLE_TIMEDATED_TRUE@am__append_188 = \
+@ENABLE_TIMEDATED_TRUE@am__append_201 = \
@ENABLE_TIMEDATED_TRUE@ src/timedate/org.freedesktop.timedate1.policy
-@ENABLE_TIMEDATED_TRUE@am__append_189 = \
+@ENABLE_TIMEDATED_TRUE@am__append_202 = \
@ENABLE_TIMEDATED_TRUE@ $(prefix)/lib/systemd/ntp-units.d \
@ENABLE_TIMEDATED_TRUE@ $(sysconfdir)/systemd/ntp-units.d
-@ENABLE_TIMEDATED_TRUE@am__append_190 = \
+@ENABLE_TIMEDATED_TRUE@am__append_203 = \
@ENABLE_TIMEDATED_TRUE@ systemd-timedated.service dbus-org.freedesktop.timedate1.service
-@ENABLE_TIMEDATED_TRUE@am__append_191 = \
+@ENABLE_TIMEDATED_TRUE@am__append_204 = \
@ENABLE_TIMEDATED_TRUE@ org.freedesktop.timedate1.busname
-@ENABLE_TIMEDATED_TRUE@am__append_192 = \
+@ENABLE_TIMEDATED_TRUE@am__append_205 = \
@ENABLE_TIMEDATED_TRUE@ timedatectl
-@ENABLE_TIMEDATED_TRUE@am__append_193 = \
+@ENABLE_TIMEDATED_TRUE@am__append_206 = \
@ENABLE_TIMEDATED_TRUE@ shell-completion/bash/timedatectl
-@ENABLE_TIMEDATED_TRUE@am__append_194 = \
+@ENABLE_TIMEDATED_TRUE@am__append_207 = \
@ENABLE_TIMEDATED_TRUE@ shell-completion/zsh/_timedatectl
-@ENABLE_TIMESYNCD_TRUE@am__append_195 = \
+@ENABLE_TIMESYNCD_TRUE@am__append_208 = \
@ENABLE_TIMESYNCD_TRUE@ src/timesync/timesyncd-gperf.gperf \
@ENABLE_TIMESYNCD_TRUE@ units/systemd-timesyncd.service.in \
@ENABLE_TIMESYNCD_TRUE@ src/timesync/timesyncd.conf.in
-@ENABLE_TIMESYNCD_TRUE@am__append_196 = \
+@ENABLE_TIMESYNCD_TRUE@am__append_209 = \
@ENABLE_TIMESYNCD_TRUE@ src/timesync/timesyncd-gperf.c \
@ENABLE_TIMESYNCD_TRUE@ src/timesync/timesyncd.conf
-@ENABLE_TIMESYNCD_TRUE@am__append_197 = \
+@ENABLE_TIMESYNCD_TRUE@am__append_210 = \
@ENABLE_TIMESYNCD_TRUE@ systemd-timesyncd
-@ENABLE_TIMESYNCD_TRUE@am__append_198 = \
+@ENABLE_TIMESYNCD_TRUE@am__append_211 = \
@ENABLE_TIMESYNCD_TRUE@ units/systemd-timesyncd.service
-@ENABLE_TIMESYNCD_TRUE@am__append_199 = \
+@ENABLE_TIMESYNCD_TRUE@am__append_212 = \
+@ENABLE_TIMESYNCD_TRUE@ $(systemunitdir)/systemd-timesyncd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-timesyncd.service
+
+@ENABLE_TIMESYNCD_TRUE@am__append_213 = \
@ENABLE_TIMESYNCD_TRUE@ src/timesync/timesyncd.conf
-@HAVE_MYHOSTNAME_TRUE@am__append_200 = \
+@HAVE_MYHOSTNAME_TRUE@am__append_214 = \
@HAVE_MYHOSTNAME_TRUE@ libnss_myhostname.la
-@ENABLE_MACHINED_TRUE@am__append_201 = \
+@ENABLE_MACHINED_TRUE@am__append_215 = \
@ENABLE_MACHINED_TRUE@ systemd-machined
-@ENABLE_MACHINED_TRUE@am__append_202 = \
+@ENABLE_MACHINED_TRUE@am__append_216 = \
@ENABLE_MACHINED_TRUE@ libsystemd-machine-core.la
-@ENABLE_MACHINED_TRUE@am__append_203 = \
+@ENABLE_MACHINED_TRUE@am__append_217 = \
@ENABLE_MACHINED_TRUE@ machinectl
-@ENABLE_MACHINED_TRUE@am__append_204 = \
+@ENABLE_MACHINED_TRUE@am__append_218 = \
@ENABLE_MACHINED_TRUE@ shell-completion/bash/machinectl
-@ENABLE_MACHINED_TRUE@am__append_205 = \
+@ENABLE_MACHINED_TRUE@am__append_219 = \
@ENABLE_MACHINED_TRUE@ test-machine-tables
-@ENABLE_MACHINED_TRUE@am__append_206 = \
+@ENABLE_MACHINED_TRUE@am__append_220 = \
@ENABLE_MACHINED_TRUE@ units/systemd-machined.service
-@ENABLE_MACHINED_TRUE@am__append_207 = \
+@ENABLE_MACHINED_TRUE@am__append_221 = \
@ENABLE_MACHINED_TRUE@ units/machine.slice \
@ENABLE_MACHINED_TRUE@ units/org.freedesktop.machine1.busname
-@ENABLE_MACHINED_TRUE@am__append_208 = \
+@ENABLE_MACHINED_TRUE@am__append_222 = \
@ENABLE_MACHINED_TRUE@ src/machine/org.freedesktop.machine1.service
-@ENABLE_MACHINED_TRUE@am__append_209 = \
+@ENABLE_MACHINED_TRUE@am__append_223 = \
@ENABLE_MACHINED_TRUE@ src/machine/org.freedesktop.machine1.conf
-@ENABLE_MACHINED_TRUE@am__append_210 = \
+@ENABLE_MACHINED_TRUE@am__append_224 = \
@ENABLE_MACHINED_TRUE@ shell-completion/zsh/_machinectl \
@ENABLE_MACHINED_TRUE@ shell-completion/zsh/_sd_machines
-@ENABLE_MACHINED_TRUE@am__append_211 = \
+@ENABLE_MACHINED_TRUE@am__append_225 = \
@ENABLE_MACHINED_TRUE@ systemd-machined.service dbus-org.freedesktop.machine1.service
-@ENABLE_MACHINED_TRUE@am__append_212 = \
+@ENABLE_MACHINED_TRUE@am__append_226 = \
@ENABLE_MACHINED_TRUE@ org.freedesktop.machine1.busname
-@ENABLE_MACHINED_TRUE@am__append_213 = \
+@ENABLE_MACHINED_TRUE@am__append_227 = \
@ENABLE_MACHINED_TRUE@ units/systemd-machined.service.in
-@ENABLE_RESOLVED_TRUE@am__append_214 = \
+@ENABLE_RESOLVED_TRUE@am__append_228 = \
@ENABLE_RESOLVED_TRUE@ src/resolve/resolved-gperf.gperf \
@ENABLE_RESOLVED_TRUE@ units/systemd-resolved.service.in \
@ENABLE_RESOLVED_TRUE@ src/resolve/resolved.conf.in
-@ENABLE_RESOLVED_TRUE@am__append_215 = src/resolve/resolved-gperf.c \
+@ENABLE_RESOLVED_TRUE@am__append_229 = src/resolve/resolved-gperf.c \
@ENABLE_RESOLVED_TRUE@ src/resolve/resolved.conf
-@ENABLE_RESOLVED_TRUE@am__append_216 = \
+@ENABLE_RESOLVED_TRUE@am__append_230 = \
@ENABLE_RESOLVED_TRUE@ systemd-resolved
-@ENABLE_RESOLVED_TRUE@am__append_217 = \
+@ENABLE_RESOLVED_TRUE@am__append_231 = \
@ENABLE_RESOLVED_TRUE@ units/systemd-resolved.service
-@ENABLE_RESOLVED_TRUE@am__append_218 = \
+@ENABLE_RESOLVED_TRUE@am__append_232 = \
@ENABLE_RESOLVED_TRUE@ $(systemunitdir)/systemd-resolved.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-resolved.service
-@ENABLE_RESOLVED_TRUE@am__append_219 = \
+@ENABLE_RESOLVED_TRUE@am__append_233 = \
@ENABLE_RESOLVED_TRUE@ src/resolve/resolved.conf
# ------------------------------------------------------------------------------
-@ENABLE_NETWORKD_TRUE@am__append_220 = systemd-networkd \
+@ENABLE_NETWORKD_TRUE@am__append_234 = systemd-networkd \
@ENABLE_NETWORKD_TRUE@ systemd-networkd-wait-online
-@ENABLE_NETWORKD_TRUE@am__append_221 = \
+@ENABLE_NETWORKD_TRUE@am__append_235 = \
@ENABLE_NETWORKD_TRUE@ libsystemd-networkd-core.la
-@ENABLE_NETWORKD_TRUE@am__append_222 = \
+@ENABLE_NETWORKD_TRUE@am__append_236 = \
@ENABLE_NETWORKD_TRUE@ test-network
-@ENABLE_NETWORKD_TRUE@am__append_223 = \
+@ENABLE_NETWORKD_TRUE@am__append_237 = \
@ENABLE_NETWORKD_TRUE@ units/systemd-networkd.service \
@ENABLE_NETWORKD_TRUE@ units/systemd-networkd-wait-online.service
-@ENABLE_NETWORKD_TRUE@am__append_224 = \
+@ENABLE_NETWORKD_TRUE@am__append_238 = \
@ENABLE_NETWORKD_TRUE@ $(systemunitdir)/systemd-networkd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-networkd.service \
@ENABLE_NETWORKD_TRUE@ $(systemunitdir)/systemd-networkd-wait-online.service $(pkgsysconfdir)/system/network-online.target.wants/systemd-networkd-wait-online.service
-@ENABLE_NETWORKD_TRUE@am__append_225 = \
+@ENABLE_NETWORKD_TRUE@am__append_239 = \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-network-gperf.gperf \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-netdev-gperf.gperf \
@ENABLE_NETWORKD_TRUE@ units/systemd-networkd.service.in \
@ENABLE_NETWORKD_TRUE@ units/systemd-networkd-wait-online.service.in
-@ENABLE_NETWORKD_TRUE@am__append_226 = \
+@ENABLE_NETWORKD_TRUE@am__append_240 = \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-network-gperf.c \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-netdev-gperf.c
-@ENABLE_LOGIND_TRUE@@HAVE_ACL_TRUE@am__append_227 = \
+@ENABLE_LOGIND_TRUE@@HAVE_ACL_TRUE@am__append_241 = \
@ENABLE_LOGIND_TRUE@@HAVE_ACL_TRUE@ src/login/logind-acl.c
-@ENABLE_LOGIND_TRUE@@HAVE_ACL_TRUE@am__append_228 = \
+@ENABLE_LOGIND_TRUE@@HAVE_ACL_TRUE@am__append_242 = \
@ENABLE_LOGIND_TRUE@@HAVE_ACL_TRUE@ libsystemd-acl.la
-@ENABLE_LOGIND_TRUE@am__append_229 = \
+@ENABLE_LOGIND_TRUE@am__append_243 = \
@ENABLE_LOGIND_TRUE@ libsystemd-logind-core.la
-@ENABLE_LOGIND_TRUE@am__append_230 = \
+@ENABLE_LOGIND_TRUE@am__append_244 = \
@ENABLE_LOGIND_TRUE@ systemd-logind \
@ENABLE_LOGIND_TRUE@ systemd-user-sessions
-@ENABLE_LOGIND_TRUE@am__append_231 = loginctl systemd-inhibit
-@ENABLE_LOGIND_TRUE@am__append_232 = \
+@ENABLE_LOGIND_TRUE@am__append_245 = loginctl systemd-inhibit
+@ENABLE_LOGIND_TRUE@am__append_246 = \
@ENABLE_LOGIND_TRUE@ shell-completion/bash/loginctl
-@ENABLE_LOGIND_TRUE@am__append_233 = \
+@ENABLE_LOGIND_TRUE@am__append_247 = \
@ENABLE_LOGIND_TRUE@ shell-completion/zsh/_loginctl \
@ENABLE_LOGIND_TRUE@ shell-completion/zsh/_systemd-inhibit
-@ENABLE_LOGIND_TRUE@am__append_234 = \
+@ENABLE_LOGIND_TRUE@am__append_248 = \
@ENABLE_LOGIND_TRUE@ test-login \
@ENABLE_LOGIND_TRUE@ test-inhibit
-@ENABLE_LOGIND_TRUE@am__append_235 = \
+@ENABLE_LOGIND_TRUE@am__append_249 = \
@ENABLE_LOGIND_TRUE@ test-login-tables \
@ENABLE_LOGIND_TRUE@ test-login-shared
-@ENABLE_LOGIND_TRUE@am__append_236 = \
+@ENABLE_LOGIND_TRUE@am__append_250 = \
@ENABLE_LOGIND_TRUE@ units/systemd-logind.service \
@ENABLE_LOGIND_TRUE@ units/systemd-user-sessions.service
-@ENABLE_LOGIND_TRUE@am__append_237 = \
+@ENABLE_LOGIND_TRUE@am__append_251 = \
@ENABLE_LOGIND_TRUE@ units/user.slice \
@ENABLE_LOGIND_TRUE@ units/org.freedesktop.login1.busname
-@ENABLE_LOGIND_TRUE@am__append_238 = \
+@ENABLE_LOGIND_TRUE@am__append_252 = \
@ENABLE_LOGIND_TRUE@ src/login/org.freedesktop.login1.service
-@ENABLE_LOGIND_TRUE@am__append_239 = \
+@ENABLE_LOGIND_TRUE@am__append_253 = \
@ENABLE_LOGIND_TRUE@ src/login/org.freedesktop.login1.conf
-@ENABLE_LOGIND_TRUE@am__append_240 = \
+@ENABLE_LOGIND_TRUE@am__append_254 = \
@ENABLE_LOGIND_TRUE@ src/login/logind.conf
-@ENABLE_LOGIND_TRUE@am__append_241 = \
+@ENABLE_LOGIND_TRUE@am__append_255 = \
@ENABLE_LOGIND_TRUE@ src/login/org.freedesktop.login1.policy
-@ENABLE_LOGIND_TRUE@am__append_242 = \
+@ENABLE_LOGIND_TRUE@am__append_256 = \
@ENABLE_LOGIND_TRUE@ $(systemdstatedir)
-@ENABLE_LOGIND_TRUE@am__append_243 = \
+@ENABLE_LOGIND_TRUE@am__append_257 = \
@ENABLE_LOGIND_TRUE@ systemd-logind.service \
@ENABLE_LOGIND_TRUE@ systemd-user-sessions.service
-@ENABLE_LOGIND_TRUE@am__append_244 = \
+@ENABLE_LOGIND_TRUE@am__append_258 = \
@ENABLE_LOGIND_TRUE@ systemd-logind.service dbus-org.freedesktop.login1.service
-@ENABLE_LOGIND_TRUE@am__append_245 = \
+@ENABLE_LOGIND_TRUE@am__append_259 = \
@ENABLE_LOGIND_TRUE@ org.freedesktop.login1.busname
-@ENABLE_LOGIND_TRUE@@ENABLE_MULTI_SEAT_X_TRUE@am__append_246 = \
+@ENABLE_LOGIND_TRUE@@ENABLE_MULTI_SEAT_X_TRUE@am__append_260 = \
@ENABLE_LOGIND_TRUE@@ENABLE_MULTI_SEAT_X_TRUE@ systemd-multi-seat-x
-@ENABLE_LOGIND_TRUE@am__append_247 = \
+@ENABLE_LOGIND_TRUE@am__append_261 = \
@ENABLE_LOGIND_TRUE@ src/login/70-uaccess.rules \
@ENABLE_LOGIND_TRUE@ src/login/70-power-switch.rules
-@ENABLE_LOGIND_TRUE@am__append_248 = \
+@ENABLE_LOGIND_TRUE@am__append_262 = \
@ENABLE_LOGIND_TRUE@ src/login/71-seat.rules \
@ENABLE_LOGIND_TRUE@ src/login/73-seat-late.rules
-@ENABLE_LOGIND_TRUE@am__append_249 = \
+@ENABLE_LOGIND_TRUE@am__append_263 = \
@ENABLE_LOGIND_TRUE@ src/login/logind-gperf.c \
@ENABLE_LOGIND_TRUE@ src/login/71-seat.rules \
@ENABLE_LOGIND_TRUE@ src/login/73-seat-late.rules
-@HAVE_PYTHON_DEVEL_TRUE@am__append_250 = \
+@HAVE_PYTHON_DEVEL_TRUE@am__append_264 = \
@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/id128-constants.h
# ------------------------------------------------------------------------------
-@ENABLE_COMPAT_LIBS_TRUE@am__append_251 = \
+@ENABLE_COMPAT_LIBS_TRUE@am__append_265 = \
@ENABLE_COMPAT_LIBS_TRUE@ src/compat-libs/linkwarning.h
-@ENABLE_COMPAT_LIBS_TRUE@am__append_252 = \
+@ENABLE_COMPAT_LIBS_TRUE@am__append_266 = \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-journal.c \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-login.c \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-id128.c \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-daemon.c
-@ENABLE_COMPAT_LIBS_TRUE@am__append_253 = \
+@ENABLE_COMPAT_LIBS_TRUE@am__append_267 = \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-journal.la \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-login.la \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-id128.la \
@ENABLE_COMPAT_LIBS_TRUE@ libsystemd-daemon.la
-@ENABLE_COMPAT_LIBS_TRUE@am__append_254 = \
+@ENABLE_COMPAT_LIBS_TRUE@am__append_268 = \
@ENABLE_COMPAT_LIBS_TRUE@ src/compat-libs/libsystemd-journal.pc \
@ENABLE_COMPAT_LIBS_TRUE@ src/compat-libs/libsystemd-login.pc \
@ENABLE_COMPAT_LIBS_TRUE@ src/compat-libs/libsystemd-id128.pc \
@ENABLE_COMPAT_LIBS_TRUE@ src/compat-libs/libsystemd-daemon.pc
-@ENABLE_COMPAT_LIBS_TRUE@am__append_255 = compat-lib-install-hook
-@ENABLE_COMPAT_LIBS_TRUE@am__append_256 = compat-lib-uninstall-hook
-@ENABLE_MANPAGES_TRUE@am__append_257 = \
+@ENABLE_COMPAT_LIBS_TRUE@am__append_269 = compat-lib-install-hook
+@ENABLE_COMPAT_LIBS_TRUE@am__append_270 = compat-lib-uninstall-hook
+@ENABLE_MANPAGES_TRUE@am__append_271 = \
@ENABLE_MANPAGES_TRUE@ man/custom-entities.ent
-@HAVE_SYSV_COMPAT_TRUE@am__append_258 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_272 = \
@HAVE_SYSV_COMPAT_TRUE@ docs/sysvinit/README \
@HAVE_SYSV_COMPAT_TRUE@ docs/var-log/README
-@HAVE_SYSV_COMPAT_TRUE@am__append_259 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_273 = \
@HAVE_SYSV_COMPAT_TRUE@ systemd-update-utmp-runlevel.service
-@HAVE_SYSV_COMPAT_TRUE@am__append_260 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_274 = \
@HAVE_SYSV_COMPAT_TRUE@ systemd-update-utmp-runlevel.service
-@HAVE_SYSV_COMPAT_TRUE@am__append_261 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_275 = \
@HAVE_SYSV_COMPAT_TRUE@ systemd-update-utmp-runlevel.service
-@HAVE_SYSV_COMPAT_TRUE@am__append_262 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_276 = \
@HAVE_SYSV_COMPAT_TRUE@ systemd-update-utmp-runlevel.service
-@HAVE_SYSV_COMPAT_TRUE@am__append_263 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_277 = \
@HAVE_SYSV_COMPAT_TRUE@ systemd-update-utmp-runlevel.service
-@HAVE_SYSV_COMPAT_TRUE@am__append_264 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_278 = \
@HAVE_SYSV_COMPAT_TRUE@ poweroff.target runlevel0.target \
@HAVE_SYSV_COMPAT_TRUE@ rescue.target runlevel1.target \
@HAVE_SYSV_COMPAT_TRUE@ multi-user.target runlevel2.target \
@HAVE_SYSV_COMPAT_TRUE@ graphical.target runlevel5.target \
@HAVE_SYSV_COMPAT_TRUE@ reboot.target runlevel6.target
-@HAVE_SYSV_COMPAT_TRUE@am__append_265 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_279 = \
@HAVE_SYSV_COMPAT_TRUE@ $(systemunitdir)/runlevel1.target.wants \
@HAVE_SYSV_COMPAT_TRUE@ $(systemunitdir)/runlevel2.target.wants \
@HAVE_SYSV_COMPAT_TRUE@ $(systemunitdir)/runlevel3.target.wants \
@HAVE_SYSV_COMPAT_TRUE@ $(systemunitdir)/runlevel4.target.wants \
@HAVE_SYSV_COMPAT_TRUE@ $(systemunitdir)/runlevel5.target.wants
-@HAVE_SYSV_COMPAT_TRUE@am__append_266 = \
+@HAVE_SYSV_COMPAT_TRUE@am__append_280 = \
@HAVE_SYSV_COMPAT_TRUE@ --with-sysvinit-path=$$dc_install_base/$(sysvinitdir) \
@HAVE_SYSV_COMPAT_TRUE@ --with-sysvrcnd-path=$$dc_install_base/$(sysvrcnddir)
-@HAVE_SYSV_COMPAT_FALSE@am__append_267 = \
+@HAVE_SYSV_COMPAT_FALSE@am__append_281 = \
@HAVE_SYSV_COMPAT_FALSE@ --with-sysvinit-path= \
@HAVE_SYSV_COMPAT_FALSE@ --with-sysvrcnd-path=
-@ENABLE_GTK_DOC_TRUE@am__append_268 = \
+@HAVE_PYTHON_TRUE@am__append_282 = \
+@HAVE_PYTHON_TRUE@ --with-python
+
+@ENABLE_GTK_DOC_TRUE@am__append_283 = \
@ENABLE_GTK_DOC_TRUE@ --enable-gtk-doc
subdir = .
"$(DESTDIR)$(gatewayddocumentrootdir)" \
"$(DESTDIR)$(networkdir)" "$(DESTDIR)$(ntpunitsdir)" \
"$(DESTDIR)$(pamconfdir)" "$(DESTDIR)$(pkgdatadir)" \
- "$(DESTDIR)$(pkgsysconfdir)" "$(DESTDIR)$(sysctldir)" \
- "$(DESTDIR)$(systemunitdir)" "$(DESTDIR)$(tmpfilesdir)" \
- "$(DESTDIR)$(udevconfdir)" "$(DESTDIR)$(udevhwdbdir)" \
- "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(userunitdir)" \
- "$(DESTDIR)$(zshcompletiondir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(pkgsysconfdir)" "$(DESTDIR)$(polkitpolicydir)" \
+ "$(DESTDIR)$(sysctldir)" "$(DESTDIR)$(systempresetdir)" \
+ "$(DESTDIR)$(systemunitdir)" "$(DESTDIR)$(sysusersdir)" \
+ "$(DESTDIR)$(tmpfilesdir)" "$(DESTDIR)$(udevconfdir)" \
+ "$(DESTDIR)$(udevhwdbdir)" "$(DESTDIR)$(udevrulesdir)" \
+ "$(DESTDIR)$(userunitdir)" "$(DESTDIR)$(zshcompletiondir)" \
+ "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgsysconfdir)" \
"$(DESTDIR)$(rpmmacrosdir)" "$(DESTDIR)$(systemunitdir)" \
- "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(userunitdir)" \
- "$(DESTDIR)$(pkgconfigdatadir)" "$(DESTDIR)$(pkgconfiglibdir)" \
+ "$(DESTDIR)$(sysusersdir)" "$(DESTDIR)$(udevrulesdir)" \
+ "$(DESTDIR)$(userunitdir)" "$(DESTDIR)$(pkgconfigdatadir)" \
+ "$(DESTDIR)$(pkgconfiglibdir)" \
"$(DESTDIR)$(sharepkgconfigdir)" "$(DESTDIR)$(sysctldir)" \
"$(DESTDIR)$(sysvinitdir)" "$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(varlogdir)" "$(DESTDIR)$(includedir)" \
@HAVE_PYTHON_DEVEL_TRUE@id128_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@HAVE_PYTHON_DEVEL_TRUE@ libsystemd-shared.la libsystemd.la
am__id128_la_SOURCES_DIST = src/python-systemd/id128.c \
- src/python-systemd/id128-constants.h \
src/python-systemd/pyutil.c src/python-systemd/pyutil.h
@HAVE_PYTHON_DEVEL_TRUE@am_id128_la_OBJECTS = \
@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/id128_la-id128.lo \
@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/id128_la-pyutil.lo
-id128_la_OBJECTS = $(am_id128_la_OBJECTS)
+nodist_id128_la_OBJECTS =
+id128_la_OBJECTS = $(am_id128_la_OBJECTS) $(nodist_id128_la_OBJECTS)
id128_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(id128_la_CFLAGS) \
$(CFLAGS) $(id128_la_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_PYTHON_DEVEL_TRUE@am_id128_la_rpath = -rpath $(pkgpyexecdir)
@ENABLE_GUDEV_TRUE@libgudev_1_0_la_DEPENDENCIES = libudev.la \
@ENABLE_GUDEV_TRUE@ $(am__DEPENDENCIES_1)
-am__libgudev_1_0_la_SOURCES_DIST = src/gudev/gudevenums.h \
- src/gudev/gudevenumtypes.h src/gudev/gudevtypes.h \
- src/gudev/gudevclient.h src/gudev/gudevclient.c \
- src/gudev/gudevdevice.h src/gudev/gudevdevice.c \
- src/gudev/gudevenumerator.h src/gudev/gudevenumerator.c \
- src/gudev/gudevprivate.h
+am__libgudev_1_0_la_SOURCES_DIST = src/gudev/libgudev-1.0.sym \
+ src/gudev/gudevenums.h src/gudev/gudevenumtypes.h \
+ src/gudev/gudevtypes.h src/gudev/gudevclient.h \
+ src/gudev/gudevclient.c src/gudev/gudevdevice.h \
+ src/gudev/gudevdevice.c src/gudev/gudevenumerator.h \
+ src/gudev/gudevenumerator.c src/gudev/gudevprivate.h
@ENABLE_GUDEV_TRUE@am_libgudev_1_0_la_OBJECTS = \
@ENABLE_GUDEV_TRUE@ src/gudev/libgudev_1_0_la-gudevclient.lo \
@ENABLE_GUDEV_TRUE@ src/gudev/libgudev_1_0_la-gudevdevice.lo \
src/libsystemd/sd-rtnl/libsystemd_internal_la-rtnl-util.lo \
src/libsystemd/sd-id128/libsystemd_internal_la-sd-id128.lo \
src/libsystemd/sd-daemon/libsystemd_internal_la-sd-daemon.lo \
- src/libsystemd/sd-login/libsystemd_internal_la-sd-login.lo
+ src/libsystemd/sd-login/libsystemd_internal_la-sd-login.lo \
+ src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo
nodist_libsystemd_internal_la_OBJECTS = src/libsystemd/sd-bus/libsystemd_internal_la-bus-error-mapping.lo
libsystemd_internal_la_OBJECTS = $(am_libsystemd_internal_la_OBJECTS) \
$(nodist_libsystemd_internal_la_OBJECTS)
libsystemd_journal_core_la_DEPENDENCIES = \
libsystemd-journal-internal.la libudev-internal.la \
libsystemd-capability.la libsystemd-label.la \
- libsystemd-internal.la libsystemd-shared.la $(am__append_114)
+ libsystemd-internal.la libsystemd-shared.la $(am__append_120)
am_libsystemd_journal_core_la_OBJECTS = src/journal/journald-kmsg.lo \
src/journal/journald-syslog.lo src/journal/journald-stream.lo \
src/journal/journald-server.lo src/journal/journald-console.lo \
src/shared/libsystemd_label_la-mkdir-label.lo \
src/shared/libsystemd_label_la-ask-password-api.lo \
src/shared/libsystemd_label_la-fileio-label.lo \
- src/shared/libsystemd_label_la-dev-setup.lo
+ src/shared/libsystemd_label_la-dev-setup.lo \
+ src/shared/libsystemd_label_la-dropin.lo \
+ src/shared/libsystemd_label_la-generator.lo
libsystemd_label_la_OBJECTS = $(am_libsystemd_label_la_OBJECTS)
libsystemd_label_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@ENABLE_LOGIND_TRUE@ libsystemd-label.la \
@ENABLE_LOGIND_TRUE@ libsystemd-capability.la \
@ENABLE_LOGIND_TRUE@ libsystemd-internal.la libudev-internal.la \
-@ENABLE_LOGIND_TRUE@ libsystemd-shared.la $(am__append_228)
+@ENABLE_LOGIND_TRUE@ libsystemd-shared.la $(am__append_242)
am__libsystemd_logind_core_la_SOURCES_DIST = src/login/logind-core.c \
src/login/logind-device.c src/login/logind-device.h \
src/login/logind-button.c src/login/logind-button.h \
am_libsystemd_network_la_OBJECTS = \
src/network/libsystemd_network_la-sd-network.lo \
src/libsystemd-network/libsystemd_network_la-sd-dhcp-client.lo \
+ src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo \
src/libsystemd-network/libsystemd_network_la-dhcp-network.lo \
src/libsystemd-network/libsystemd_network_la-dhcp-option.lo \
src/libsystemd-network/libsystemd_network_la-dhcp-packet.lo \
src/libsystemd-network/libsystemd_network_la-sd-ipv4ll.lo \
src/libsystemd-network/libsystemd_network_la-ipv4ll-network.lo \
src/libsystemd-network/libsystemd_network_la-ipv4ll-packet.lo \
- src/libsystemd-network/libsystemd_network_la-network-internal.lo
+ src/libsystemd-network/libsystemd_network_la-network-internal.lo \
+ src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo \
+ src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo \
+ src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo \
+ src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo \
+ src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo
libsystemd_network_la_OBJECTS = $(am_libsystemd_network_la_OBJECTS)
libsystemd_network_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
src/libsystemd-network/network-internal.h \
src/network/networkd.h src/network/networkd-link.c \
src/network/networkd-netdev.c src/network/networkd-tunnel.c \
- src/network/networkd-veth.c src/network/networkd-network.c \
- src/network/networkd-address.c src/network/networkd-route.c \
- src/network/networkd-manager.c
+ src/network/networkd-veth.c src/network/networkd-vxlan.c \
+ src/network/networkd-vlan.c src/network/networkd-macvlan.c \
+ src/network/networkd-dummy.c src/network/networkd-tuntap.c \
+ src/network/networkd-network.c src/network/networkd-address.c \
+ src/network/networkd-route.c src/network/networkd-manager.c \
+ src/network/networkd-address-pool.c
@ENABLE_NETWORKD_TRUE@am_libsystemd_networkd_core_la_OBJECTS = src/network/libsystemd_networkd_core_la-networkd-link.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-netdev.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-tunnel.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-veth.lo \
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-vxlan.lo \
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-vlan.lo \
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-macvlan.lo \
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-dummy.lo \
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-tuntap.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-network.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-address.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-route.lo \
-@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-manager.lo
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-manager.lo \
+@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-address-pool.lo
@ENABLE_NETWORKD_TRUE@nodist_libsystemd_networkd_core_la_OBJECTS = src/network/libsystemd_networkd_core_la-networkd-network-gperf.lo \
@ENABLE_NETWORKD_TRUE@ src/network/libsystemd_networkd_core_la-networkd-netdev-gperf.lo
libsystemd_networkd_core_la_OBJECTS = \
src/shared/libsystemd_shared_la-xml.lo \
src/shared/libsystemd_shared_la-condition-util.lo \
src/shared/libsystemd_shared_la-bus-label.lo \
- src/shared/libsystemd_shared_la-generator.lo \
src/shared/libsystemd_shared_la-clean-ipc.lo \
src/shared/libsystemd_shared_la-login-shared.lo \
src/shared/libsystemd_shared_la-ring.lo \
src/shared/libsystemd_shared_la-async.lo \
src/shared/libsystemd_shared_la-eventfd-util.lo \
- src/shared/libsystemd_shared_la-copy.lo
+ src/shared/libsystemd_shared_la-copy.lo \
+ src/shared/libsystemd_shared_la-base-filesystem.lo
nodist_libsystemd_shared_la_OBJECTS =
libsystemd_shared_la_OBJECTS = $(am_libsystemd_shared_la_OBJECTS) \
$(nodist_libsystemd_shared_la_OBJECTS)
src/systemd/sd-event.h src/systemd/sd-rtnl.h \
src/systemd/sd-resolve.h src/systemd/sd-login.h \
src/systemd/sd-id128.h src/systemd/sd-daemon.h \
- src/libsystemd/sd-bus/sd-bus.c \
+ src/systemd/sd-path.h src/libsystemd/sd-bus/sd-bus.c \
src/libsystemd/sd-bus/bus-control.c \
src/libsystemd/sd-bus/bus-control.h \
src/libsystemd/sd-bus/bus-error.c \
src/libsystemd/sd-id128/sd-id128.c \
src/libsystemd/sd-daemon/sd-daemon.c \
src/libsystemd/sd-login/sd-login.c \
+ src/libsystemd/sd-path/sd-path.c \
src/libsystemd/sd-resolve/sd-resolve.c \
src/libsystemd/sd-resolve/resolve-util.h \
src/journal/sd-journal.c src/systemd/sd-journal.h \
src/libsystemd/sd-rtnl/libsystemd_la-rtnl-util.lo \
src/libsystemd/sd-id128/libsystemd_la-sd-id128.lo \
src/libsystemd/sd-daemon/libsystemd_la-sd-daemon.lo \
- src/libsystemd/sd-login/libsystemd_la-sd-login.lo
+ src/libsystemd/sd-login/libsystemd_la-sd-login.lo \
+ src/libsystemd/sd-path/libsystemd_la-sd-path.lo
am__objects_6 = src/libsystemd/sd-resolve/libsystemd_la-sd-resolve.lo
@HAVE_XZ_TRUE@am__objects_7 = src/journal/libsystemd_la-compress.lo
@HAVE_GCRYPT_TRUE@am__objects_8 = src/journal/libsystemd_la-journal-authenticate.lo \
libudev_core_la_DEPENDENCIES = libudev-internal.la libsystemd-label.la \
libsystemd-internal.la libsystemd-network.la \
libsystemd-shared.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__append_98)
+ $(am__DEPENDENCIES_1) $(am__append_104)
am__libudev_core_la_SOURCES_DIST = src/udev/udev.h \
src/udev/udev-event.c src/udev/udev-watch.c \
src/udev/udev-node.c src/udev/udev-rules.c \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ libsystemd-internal.la \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ libsystemd-shared.la \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ $(am__DEPENDENCIES_1)
-am__pam_systemd_la_SOURCES_DIST = src/login/pam-module.c
-@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@am_pam_systemd_la_OBJECTS = src/login/pam_systemd_la-pam-module.lo
+am__pam_systemd_la_SOURCES_DIST = src/login/pam_systemd.sym \
+ src/login/pam_systemd.c
+@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@am_pam_systemd_la_OBJECTS = src/login/pam_systemd_la-pam_systemd.lo
pam_systemd_la_OBJECTS = $(am_pam_systemd_la_OBJECTS)
pam_systemd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@am_pam_systemd_la_rpath = -rpath \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ $(pamlibdir)
@ENABLE_EFI_TRUE@am__EXEEXT_1 = bootctl$(EXEEXT)
-@ENABLE_COREDUMP_TRUE@am__EXEEXT_2 = systemd-coredumpctl$(EXEEXT)
+@ENABLE_COREDUMP_TRUE@am__EXEEXT_2 = coredumpctl$(EXEEXT)
@ENABLE_HOSTNAMED_TRUE@am__EXEEXT_3 = hostnamectl$(EXEEXT)
@ENABLE_LOCALED_TRUE@am__EXEEXT_4 = localectl$(EXEEXT)
@ENABLE_TIMEDATED_TRUE@am__EXEEXT_5 = timedatectl$(EXEEXT)
@HAVE_KMOD_TRUE@am__EXEEXT_6 = test-rtnl-manual$(EXEEXT)
@ENABLE_EFI_TRUE@am__EXEEXT_7 = test-boot-timestamp$(EXEEXT)
-@ENABLE_READAHEAD_TRUE@am__EXEEXT_8 = test-ssd$(EXEEXT)
-@ENABLE_LOGIND_TRUE@am__EXEEXT_9 = test-login$(EXEEXT) \
+@ENABLE_COREDUMP_TRUE@am__EXEEXT_8 = test-coredump-vacuum$(EXEEXT)
+@ENABLE_READAHEAD_TRUE@am__EXEEXT_9 = test-ssd$(EXEEXT)
+@ENABLE_LOGIND_TRUE@am__EXEEXT_10 = test-login$(EXEEXT) \
@ENABLE_LOGIND_TRUE@ test-inhibit$(EXEEXT)
-am__EXEEXT_10 = test-engine$(EXEEXT) test-ns$(EXEEXT) \
+am__EXEEXT_11 = test-engine$(EXEEXT) test-ns$(EXEEXT) \
test-loopback$(EXEEXT) test-hostname$(EXEEXT) \
test-daemon$(EXEEXT) test-cgroup$(EXEEXT) \
test-cgroup-mask$(EXEEXT) test-install$(EXEEXT) \
test-watchdog$(EXEEXT) test-log$(EXEEXT) test-ipcrm$(EXEEXT) \
$(am__EXEEXT_6) $(am__EXEEXT_7) test-libudev$(EXEEXT) \
test-udev$(EXEEXT) test-journal-enum$(EXEEXT) $(am__EXEEXT_8) \
- $(am__EXEEXT_9)
-@ENABLE_MACHINED_TRUE@am__EXEEXT_11 = test-machine-tables$(EXEEXT)
-@ENABLE_NETWORKD_TRUE@am__EXEEXT_12 = test-network$(EXEEXT)
-@ENABLE_LOGIND_TRUE@am__EXEEXT_13 = test-login-tables$(EXEEXT) \
+ $(am__EXEEXT_9) $(am__EXEEXT_10)
+@HAVE_XZ_TRUE@am__EXEEXT_12 = test-compress$(EXEEXT)
+@ENABLE_MACHINED_TRUE@am__EXEEXT_13 = test-machine-tables$(EXEEXT)
+@ENABLE_NETWORKD_TRUE@am__EXEEXT_14 = test-network$(EXEEXT)
+@ENABLE_LOGIND_TRUE@am__EXEEXT_15 = test-login-tables$(EXEEXT) \
@ENABLE_LOGIND_TRUE@ test-login-shared$(EXEEXT)
-am__EXEEXT_14 = test-job-type$(EXEEXT) test-env-replace$(EXEEXT) \
+am__EXEEXT_16 = test-job-type$(EXEEXT) test-env-replace$(EXEEXT) \
test-strbuf$(EXEEXT) test-strv$(EXEEXT) \
test-path-util$(EXEEXT) test-strxcpyx$(EXEEXT) \
test-unit-name$(EXEEXT) test-unit-file$(EXEEXT) \
test-fileio$(EXEEXT) test-time$(EXEEXT) test-hashmap$(EXEEXT) \
test-list$(EXEEXT) test-tables$(EXEEXT) \
test-device-nodes$(EXEEXT) test-xml$(EXEEXT) \
- test-architecture$(EXEEXT) test-bus-marshal$(EXEEXT) \
+ test-architecture$(EXEEXT) test-socket-util$(EXEEXT) \
+ test-fdset$(EXEEXT) test-conf-files$(EXEEXT) \
+ test-capability$(EXEEXT) test-async$(EXEEXT) \
+ test-ratelimit$(EXEEXT) test-bus-marshal$(EXEEXT) \
test-bus-signature$(EXEEXT) test-bus-chat$(EXEEXT) \
test-bus-cleanup$(EXEEXT) test-bus-server$(EXEEXT) \
test-bus-match$(EXEEXT) test-bus-kernel$(EXEEXT) \
test-bus-creds$(EXEEXT) test-bus-gvariant$(EXEEXT) \
test-event$(EXEEXT) test-rtnl$(EXEEXT) test-resolve$(EXEEXT) \
test-dhcp-option$(EXEEXT) test-dhcp-client$(EXEEXT) \
- test-ipv4ll$(EXEEXT) test-id128$(EXEEXT) test-journal$(EXEEXT) \
+ test-dhcp-server$(EXEEXT) test-ipv4ll$(EXEEXT) \
+ test-icmp6-rs$(EXEEXT) test-dhcp6-client$(EXEEXT) \
+ test-id128$(EXEEXT) test-journal$(EXEEXT) \
test-journal-send$(EXEEXT) test-journal-syslog$(EXEEXT) \
test-journal-match$(EXEEXT) test-journal-stream$(EXEEXT) \
test-journal-init$(EXEEXT) test-journal-verify$(EXEEXT) \
test-journal-interleaving$(EXEEXT) test-journal-flush$(EXEEXT) \
test-mmap-cache$(EXEEXT) test-catalog$(EXEEXT) \
- $(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \
- test-libsystemd-sym$(EXEEXT) test-libudev-sym$(EXEEXT)
-@ENABLE_TMPFILES_TRUE@am__EXEEXT_15 = systemd-tmpfiles$(EXEEXT)
-@ENABLE_MACHINED_TRUE@am__EXEEXT_16 = machinectl$(EXEEXT)
-@ENABLE_LOGIND_TRUE@am__EXEEXT_17 = loginctl$(EXEEXT) \
+ $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14) \
+ $(am__EXEEXT_15) test-libsystemd-sym$(EXEEXT) \
+ test-libudev-sym$(EXEEXT)
+@ENABLE_TMPFILES_TRUE@am__EXEEXT_17 = systemd-tmpfiles$(EXEEXT)
+@ENABLE_SYSUSERS_TRUE@am__EXEEXT_18 = systemd-sysusers$(EXEEXT)
+@ENABLE_MACHINED_TRUE@am__EXEEXT_19 = machinectl$(EXEEXT)
+@ENABLE_LOGIND_TRUE@am__EXEEXT_20 = loginctl$(EXEEXT) \
@ENABLE_LOGIND_TRUE@ systemd-inhibit$(EXEEXT)
-@HAVE_KMOD_TRUE@am__EXEEXT_18 = systemd-modules-load$(EXEEXT)
-@HAVE_MICROHTTPD_TRUE@am__EXEEXT_19 = systemd-journal-remote$(EXEEXT)
-@HAVE_MICROHTTPD_TRUE@am__EXEEXT_20 = \
+@HAVE_KMOD_TRUE@am__EXEEXT_21 = systemd-modules-load$(EXEEXT)
+@HAVE_MICROHTTPD_TRUE@am__EXEEXT_22 = systemd-journal-remote$(EXEEXT)
+@HAVE_MICROHTTPD_TRUE@am__EXEEXT_23 = \
@HAVE_MICROHTTPD_TRUE@ systemd-journal-gatewayd$(EXEEXT)
-@ENABLE_COREDUMP_TRUE@am__EXEEXT_21 = systemd-coredump$(EXEEXT)
-@ENABLE_BINFMT_TRUE@am__EXEEXT_22 = systemd-binfmt$(EXEEXT)
-@ENABLE_VCONSOLE_TRUE@am__EXEEXT_23 = systemd-vconsole-setup$(EXEEXT)
-@ENABLE_READAHEAD_TRUE@am__EXEEXT_24 = systemd-readahead$(EXEEXT)
-@ENABLE_BOOTCHART_TRUE@am__EXEEXT_25 = systemd-bootchart$(EXEEXT)
-@ENABLE_QUOTACHECK_TRUE@am__EXEEXT_26 = systemd-quotacheck$(EXEEXT)
-@ENABLE_RANDOMSEED_TRUE@am__EXEEXT_27 = systemd-random-seed$(EXEEXT)
-@ENABLE_BACKLIGHT_TRUE@am__EXEEXT_28 = systemd-backlight$(EXEEXT)
-@ENABLE_RFKILL_TRUE@am__EXEEXT_29 = systemd-rfkill$(EXEEXT)
-@HAVE_LIBCRYPTSETUP_TRUE@am__EXEEXT_30 = systemd-cryptsetup$(EXEEXT)
-@ENABLE_HOSTNAMED_TRUE@am__EXEEXT_31 = systemd-hostnamed$(EXEEXT)
-@ENABLE_LOCALED_TRUE@am__EXEEXT_32 = systemd-localed$(EXEEXT)
-@ENABLE_TIMEDATED_TRUE@am__EXEEXT_33 = systemd-timedated$(EXEEXT)
-@ENABLE_TIMESYNCD_TRUE@am__EXEEXT_34 = systemd-timesyncd$(EXEEXT)
-@ENABLE_MACHINED_TRUE@am__EXEEXT_35 = systemd-machined$(EXEEXT)
-@ENABLE_RESOLVED_TRUE@am__EXEEXT_36 = systemd-resolved$(EXEEXT)
-@ENABLE_NETWORKD_TRUE@am__EXEEXT_37 = systemd-networkd$(EXEEXT) \
+@ENABLE_COREDUMP_TRUE@am__EXEEXT_24 = systemd-coredump$(EXEEXT)
+@ENABLE_BINFMT_TRUE@am__EXEEXT_25 = systemd-binfmt$(EXEEXT)
+@ENABLE_VCONSOLE_TRUE@am__EXEEXT_26 = systemd-vconsole-setup$(EXEEXT)
+@ENABLE_READAHEAD_TRUE@am__EXEEXT_27 = systemd-readahead$(EXEEXT)
+@ENABLE_BOOTCHART_TRUE@am__EXEEXT_28 = systemd-bootchart$(EXEEXT)
+@ENABLE_QUOTACHECK_TRUE@am__EXEEXT_29 = systemd-quotacheck$(EXEEXT)
+@ENABLE_RANDOMSEED_TRUE@am__EXEEXT_30 = systemd-random-seed$(EXEEXT)
+@ENABLE_BACKLIGHT_TRUE@am__EXEEXT_31 = systemd-backlight$(EXEEXT)
+@ENABLE_RFKILL_TRUE@am__EXEEXT_32 = systemd-rfkill$(EXEEXT)
+@HAVE_LIBCRYPTSETUP_TRUE@am__EXEEXT_33 = systemd-cryptsetup$(EXEEXT)
+@ENABLE_HOSTNAMED_TRUE@am__EXEEXT_34 = systemd-hostnamed$(EXEEXT)
+@ENABLE_LOCALED_TRUE@am__EXEEXT_35 = systemd-localed$(EXEEXT)
+@ENABLE_TIMEDATED_TRUE@am__EXEEXT_36 = systemd-timedated$(EXEEXT)
+@ENABLE_TIMESYNCD_TRUE@am__EXEEXT_37 = systemd-timesyncd$(EXEEXT)
+@ENABLE_MACHINED_TRUE@am__EXEEXT_38 = systemd-machined$(EXEEXT)
+@ENABLE_RESOLVED_TRUE@am__EXEEXT_39 = systemd-resolved$(EXEEXT)
+@ENABLE_NETWORKD_TRUE@am__EXEEXT_40 = systemd-networkd$(EXEEXT) \
@ENABLE_NETWORKD_TRUE@ systemd-networkd-wait-online$(EXEEXT)
-@ENABLE_LOGIND_TRUE@am__EXEEXT_38 = systemd-logind$(EXEEXT) \
+@ENABLE_LOGIND_TRUE@am__EXEEXT_41 = systemd-logind$(EXEEXT) \
@ENABLE_LOGIND_TRUE@ systemd-user-sessions$(EXEEXT)
-@ENABLE_LOGIND_TRUE@@ENABLE_MULTI_SEAT_X_TRUE@am__EXEEXT_39 = systemd-multi-seat-x$(EXEEXT)
-@HAVE_SYSV_COMPAT_TRUE@am__EXEEXT_40 = \
+@ENABLE_LOGIND_TRUE@@ENABLE_MULTI_SEAT_X_TRUE@am__EXEEXT_42 = systemd-multi-seat-x$(EXEEXT)
+@HAVE_SYSV_COMPAT_TRUE@am__EXEEXT_43 = \
@HAVE_SYSV_COMPAT_TRUE@ systemd-sysv-generator$(EXEEXT) \
@HAVE_SYSV_COMPAT_TRUE@ systemd-rc-local-generator$(EXEEXT)
-@ENABLE_EFI_TRUE@am__EXEEXT_41 = systemd-efi-boot-generator$(EXEEXT)
-@HAVE_BLKID_TRUE@am__EXEEXT_42 = systemd-gpt-auto-generator$(EXEEXT)
-@ENABLE_KDBUS_TRUE@am__EXEEXT_43 = systemd-dbus1-generator$(EXEEXT)
-@HAVE_LIBCRYPTSETUP_TRUE@am__EXEEXT_44 = systemd-cryptsetup-generator$(EXEEXT)
+@ENABLE_EFI_TRUE@am__EXEEXT_44 = systemd-efi-boot-generator$(EXEEXT)
+@HAVE_BLKID_TRUE@am__EXEEXT_45 = systemd-gpt-auto-generator$(EXEEXT)
+@ENABLE_KDBUS_TRUE@am__EXEEXT_46 = systemd-dbus1-generator$(EXEEXT)
+@HAVE_LIBCRYPTSETUP_TRUE@am__EXEEXT_47 = systemd-cryptsetup-generator$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(rootbin_PROGRAMS) \
$(rootlibexec_PROGRAMS) $(systemgenerator_PROGRAMS) \
$(udevlibexec_PROGRAMS)
am_collect_OBJECTS = src/udev/collect/collect.$(OBJEXT)
collect_OBJECTS = $(am_collect_OBJECTS)
collect_DEPENDENCIES = libudev-internal.la libsystemd-shared.la
+am__coredumpctl_SOURCES_DIST = src/journal/coredumpctl.c
+@ENABLE_COREDUMP_TRUE@am_coredumpctl_OBJECTS = \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredumpctl.$(OBJEXT)
+coredumpctl_OBJECTS = $(am_coredumpctl_OBJECTS)
+@ENABLE_COREDUMP_TRUE@coredumpctl_DEPENDENCIES = \
+@ENABLE_COREDUMP_TRUE@ libsystemd-journal-internal.la \
+@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
+@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
am__hostnamectl_SOURCES_DIST = src/hostname/hostnamectl.c
@ENABLE_HOSTNAMED_TRUE@am_hostnamectl_OBJECTS = \
@ENABLE_HOSTNAMED_TRUE@ src/hostname/hostnamectl.$(OBJEXT)
@HAVE_QRENCODE_TRUE@am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1)
journalctl_DEPENDENCIES = libsystemd-journal-internal.la \
libsystemd-internal.la libsystemd-logs.la libsystemd-shared.la \
- $(am__append_110) $(am__DEPENDENCIES_6)
+ $(am__append_116) $(am__DEPENDENCIES_6)
journalctl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(journalctl_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
am_systemd_cgtop_OBJECTS = src/cgtop/cgtop.$(OBJEXT)
systemd_cgtop_OBJECTS = $(am_systemd_cgtop_OBJECTS)
systemd_cgtop_DEPENDENCIES = libsystemd-shared.la
-am__systemd_coredump_SOURCES_DIST = src/journal/coredump.c
+am__systemd_coredump_SOURCES_DIST = src/journal/coredump.c \
+ src/journal/coredump-vacuum.c src/journal/coredump-vacuum.h \
+ src/journal/stacktrace.c src/journal/stacktrace.h
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@am__objects_17 = src/journal/stacktrace.$(OBJEXT)
@ENABLE_COREDUMP_TRUE@am_systemd_coredump_OBJECTS = \
-@ENABLE_COREDUMP_TRUE@ src/journal/coredump.$(OBJEXT)
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump.$(OBJEXT) \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump-vacuum.$(OBJEXT) \
+@ENABLE_COREDUMP_TRUE@ $(am__objects_17)
systemd_coredump_OBJECTS = $(am_systemd_coredump_OBJECTS)
+@ENABLE_COREDUMP_TRUE@@HAVE_ELFUTILS_TRUE@am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1)
@ENABLE_COREDUMP_TRUE@systemd_coredump_DEPENDENCIES = \
@ENABLE_COREDUMP_TRUE@ libsystemd-journal-internal.la \
@ENABLE_COREDUMP_TRUE@ libsystemd-label.la \
@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
-@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
-am__systemd_coredumpctl_SOURCES_DIST = src/journal/coredumpctl.c
-@ENABLE_COREDUMP_TRUE@am_systemd_coredumpctl_OBJECTS = \
-@ENABLE_COREDUMP_TRUE@ src/journal/coredumpctl.$(OBJEXT)
-systemd_coredumpctl_OBJECTS = $(am_systemd_coredumpctl_OBJECTS)
-@ENABLE_COREDUMP_TRUE@systemd_coredumpctl_DEPENDENCIES = \
-@ENABLE_COREDUMP_TRUE@ libsystemd-journal-internal.la \
-@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
-@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
+@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la \
+@ENABLE_COREDUMP_TRUE@ $(am__DEPENDENCIES_7) $(am__append_136)
am__systemd_cryptsetup_SOURCES_DIST = src/cryptsetup/cryptsetup.c
@HAVE_LIBCRYPTSETUP_TRUE@am_systemd_cryptsetup_OBJECTS = src/cryptsetup/systemd_cryptsetup-cryptsetup.$(OBJEXT)
systemd_cryptsetup_OBJECTS = $(am_systemd_cryptsetup_OBJECTS)
@ENABLE_KDBUS_TRUE@systemd_dbus1_generator_DEPENDENCIES = \
@ENABLE_KDBUS_TRUE@ libsystemd-label.la libsystemd-shared.la \
@ENABLE_KDBUS_TRUE@ libsystemd-internal.la
+am_systemd_debug_generator_OBJECTS = \
+ src/debug-generator/debug-generator.$(OBJEXT)
+systemd_debug_generator_OBJECTS = \
+ $(am_systemd_debug_generator_OBJECTS)
+systemd_debug_generator_DEPENDENCIES = libsystemd-label.la \
+ libsystemd-shared.la
am_systemd_delta_OBJECTS = src/delta/delta.$(OBJEXT)
systemd_delta_OBJECTS = $(am_systemd_delta_OBJECTS)
systemd_delta_DEPENDENCIES = libsystemd-shared.la
@HAVE_MICROHTTPD_TRUE@ src/journal/systemd_journal_gatewayd-microhttpd-util.$(OBJEXT)
systemd_journal_gatewayd_OBJECTS = \
$(am_systemd_journal_gatewayd_OBJECTS)
-@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@am__DEPENDENCIES_7 = \
+@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@am__DEPENDENCIES_8 = \
@HAVE_GNUTLS_TRUE@@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_1)
@HAVE_MICROHTTPD_TRUE@systemd_journal_gatewayd_DEPENDENCIES = \
@HAVE_MICROHTTPD_TRUE@ libsystemd-logs.la \
@HAVE_MICROHTTPD_TRUE@ libsystemd-internal.la \
@HAVE_MICROHTTPD_TRUE@ libsystemd-shared.la \
@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_7)
+@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_8)
systemd_journal_gatewayd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(systemd_journal_gatewayd_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
@HAVE_MICROHTTPD_TRUE@ libsystemd-internal.la \
@HAVE_MICROHTTPD_TRUE@ libsystemd-journal-core.la \
@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_1) \
-@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_7)
+@HAVE_MICROHTTPD_TRUE@ $(am__DEPENDENCIES_8)
systemd_journal_remote_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(systemd_journal_remote_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
src/core/systemd_nspawn-mount-setup.$(OBJEXT) \
src/core/systemd_nspawn-loopback-setup.$(OBJEXT)
systemd_nspawn_OBJECTS = $(am_systemd_nspawn_OBJECTS)
-@HAVE_SECCOMP_TRUE@am__DEPENDENCIES_8 = libsystemd-seccomp.la \
+@HAVE_SECCOMP_TRUE@am__DEPENDENCIES_9 = libsystemd-seccomp.la \
@HAVE_SECCOMP_TRUE@ $(am__DEPENDENCIES_1)
systemd_nspawn_DEPENDENCIES = libsystemd-label.la \
libsystemd-capability.la libsystemd-internal.la \
libudev-internal.la libsystemd-shared.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_8)
+ $(am__DEPENDENCIES_9)
systemd_nspawn_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(systemd_nspawn_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
$@
+am_systemd_path_OBJECTS = src/path/path.$(OBJEXT)
+systemd_path_OBJECTS = $(am_systemd_path_OBJECTS)
+systemd_path_DEPENDENCIES = libsystemd-internal.la \
+ libsystemd-shared.la
am__systemd_quotacheck_SOURCES_DIST = src/quotacheck/quotacheck.c
@ENABLE_QUOTACHECK_TRUE@am_systemd_quotacheck_OBJECTS = \
@ENABLE_QUOTACHECK_TRUE@ src/quotacheck/quotacheck.$(OBJEXT)
$(am_systemd_system_update_generator_OBJECTS)
systemd_system_update_generator_DEPENDENCIES = libsystemd-label.la \
libsystemd-shared.la
+am__systemd_sysusers_SOURCES_DIST = src/sysusers/sysusers.c
+@ENABLE_SYSUSERS_TRUE@am_systemd_sysusers_OBJECTS = \
+@ENABLE_SYSUSERS_TRUE@ src/sysusers/sysusers.$(OBJEXT)
+systemd_sysusers_OBJECTS = $(am_systemd_sysusers_OBJECTS)
+@ENABLE_SYSUSERS_TRUE@systemd_sysusers_DEPENDENCIES = \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-units.la libsystemd-label.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-capability.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-internal.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-shared.la
am_systemd_sysv_generator_OBJECTS = \
src/sysv-generator/sysv-generator.$(OBJEXT)
systemd_sysv_generator_OBJECTS = $(am_systemd_sysv_generator_OBJECTS)
am_systemd_udevd_OBJECTS = src/udev/udevd.$(OBJEXT)
systemd_udevd_OBJECTS = $(am_systemd_udevd_OBJECTS)
systemd_udevd_DEPENDENCIES = libudev-core.la
+am_systemd_update_done_OBJECTS = \
+ src/update-done/update-done.$(OBJEXT)
+systemd_update_done_OBJECTS = $(am_systemd_update_done_OBJECTS)
+systemd_update_done_DEPENDENCIES = libsystemd-internal.la \
+ libsystemd-shared.la
am_systemd_update_utmp_OBJECTS = \
src/update-utmp/systemd_update_utmp-update-utmp.$(OBJEXT)
systemd_update_utmp_OBJECTS = $(am_systemd_update_utmp_OBJECTS)
am_test_architecture_OBJECTS = src/test/test-architecture.$(OBJEXT)
test_architecture_OBJECTS = $(am_test_architecture_OBJECTS)
test_architecture_DEPENDENCIES = libsystemd-shared.la
+am_test_async_OBJECTS = src/test/test-async.$(OBJEXT)
+test_async_OBJECTS = $(am_test_async_OBJECTS)
+test_async_DEPENDENCIES = libsystemd-shared.la
am__test_boot_timestamp_SOURCES_DIST = \
src/test/test-boot-timestamps.c
@ENABLE_EFI_TRUE@am_test_boot_timestamp_OBJECTS = \
am_test_calendarspec_OBJECTS = src/test/test-calendarspec.$(OBJEXT)
test_calendarspec_OBJECTS = $(am_test_calendarspec_OBJECTS)
test_calendarspec_DEPENDENCIES = libsystemd-shared.la
+am_test_capability_OBJECTS = src/test/test-capability.$(OBJEXT)
+test_capability_OBJECTS = $(am_test_capability_OBJECTS)
+test_capability_DEPENDENCIES = libsystemd-shared.la \
+ libsystemd-capability.la
am_test_catalog_OBJECTS = \
src/journal/test_catalog-test-catalog.$(OBJEXT)
test_catalog_OBJECTS = $(am_test_catalog_OBJECTS)
test_cgroup_util_OBJECTS = $(am_test_cgroup_util_OBJECTS)
test_cgroup_util_DEPENDENCIES = libsystemd-label.la \
libsystemd-internal.la libsystemd-shared.la
+am__test_compress_SOURCES_DIST = src/journal/test-compress.c
+@HAVE_XZ_TRUE@am_test_compress_OBJECTS = \
+@HAVE_XZ_TRUE@ src/journal/test-compress.$(OBJEXT)
+test_compress_OBJECTS = $(am_test_compress_OBJECTS)
+@HAVE_XZ_TRUE@test_compress_DEPENDENCIES = \
+@HAVE_XZ_TRUE@ libsystemd-journal-internal.la \
+@HAVE_XZ_TRUE@ libsystemd-shared.la
+am_test_conf_files_OBJECTS = src/test/test-conf-files.$(OBJEXT)
+test_conf_files_OBJECTS = $(am_test_conf_files_OBJECTS)
+test_conf_files_DEPENDENCIES = libsystemd-shared.la
+am__test_coredump_vacuum_SOURCES_DIST = \
+ src/journal/test-coredump-vacuum.c \
+ src/journal/coredump-vacuum.c src/journal/coredump-vacuum.h
+@ENABLE_COREDUMP_TRUE@am_test_coredump_vacuum_OBJECTS = src/journal/test-coredump-vacuum.$(OBJEXT) \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump-vacuum.$(OBJEXT)
+test_coredump_vacuum_OBJECTS = $(am_test_coredump_vacuum_OBJECTS)
+@ENABLE_COREDUMP_TRUE@test_coredump_vacuum_DEPENDENCIES = \
+@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
+@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
am_test_daemon_OBJECTS = src/test/test-daemon.$(OBJEXT)
test_daemon_OBJECTS = $(am_test_daemon_OBJECTS)
test_daemon_DEPENDENCIES = libsystemd-internal.la libsystemd-shared.la
test_dhcp_option_OBJECTS = $(am_test_dhcp_option_OBJECTS)
test_dhcp_option_DEPENDENCIES = libsystemd-network.la \
libsystemd-internal.la libsystemd-shared.la
+am_test_dhcp_server_OBJECTS = \
+ src/libsystemd-network/test-dhcp-server.$(OBJEXT)
+test_dhcp_server_OBJECTS = $(am_test_dhcp_server_OBJECTS)
+test_dhcp_server_DEPENDENCIES = libsystemd-network.la \
+ libsystemd-internal.la libsystemd-shared.la
+am_test_dhcp6_client_OBJECTS = \
+ src/libsystemd-network/test-dhcp6-client.$(OBJEXT)
+test_dhcp6_client_OBJECTS = $(am_test_dhcp6_client_OBJECTS)
+test_dhcp6_client_DEPENDENCIES = libsystemd-network.la \
+ libsystemd-internal.la libsystemd-shared.la
am_test_ellipsize_OBJECTS = src/test/test-ellipsize.$(OBJEXT)
test_ellipsize_OBJECTS = $(am_test_ellipsize_OBJECTS)
test_ellipsize_DEPENDENCIES = libsystemd-core.la
am_test_event_OBJECTS = src/libsystemd/sd-event/test-event.$(OBJEXT)
test_event_OBJECTS = $(am_test_event_OBJECTS)
test_event_DEPENDENCIES = libsystemd-internal.la libsystemd-shared.la
+am_test_fdset_OBJECTS = src/test/test-fdset.$(OBJEXT)
+test_fdset_OBJECTS = $(am_test_fdset_OBJECTS)
+test_fdset_DEPENDENCIES = libsystemd-core.la
am_test_fileio_OBJECTS = src/test/test-fileio.$(OBJEXT)
test_fileio_OBJECTS = $(am_test_fileio_OBJECTS)
test_fileio_DEPENDENCIES = libsystemd-core.la
am_test_hostname_OBJECTS = src/test/test-hostname.$(OBJEXT)
test_hostname_OBJECTS = $(am_test_hostname_OBJECTS)
test_hostname_DEPENDENCIES = libsystemd-core.la
+am_test_icmp6_rs_OBJECTS = \
+ src/libsystemd-network/test-icmp6-rs.$(OBJEXT)
+test_icmp6_rs_OBJECTS = $(am_test_icmp6_rs_OBJECTS)
+test_icmp6_rs_DEPENDENCIES = libsystemd-network.la \
+ libsystemd-internal.la libsystemd-shared.la
am_test_id128_OBJECTS = src/test/test-id128.$(OBJEXT)
test_id128_OBJECTS = $(am_test_id128_OBJECTS)
test_id128_DEPENDENCIES = libsystemd-internal.la libsystemd-shared.la
am_test_prioq_OBJECTS = src/test/test-prioq.$(OBJEXT)
test_prioq_OBJECTS = $(am_test_prioq_OBJECTS)
test_prioq_DEPENDENCIES = libsystemd-core.la
+am_test_ratelimit_OBJECTS = src/test/test-ratelimit.$(OBJEXT)
+test_ratelimit_OBJECTS = $(am_test_ratelimit_OBJECTS)
+test_ratelimit_DEPENDENCIES = libsystemd-shared.la
am_test_replace_var_OBJECTS = src/test/test-replace-var.$(OBJEXT)
test_replace_var_OBJECTS = $(am_test_replace_var_OBJECTS)
test_replace_var_DEPENDENCIES = libsystemd-shared.la
am_test_sleep_OBJECTS = src/test/test-sleep.$(OBJEXT)
test_sleep_OBJECTS = $(am_test_sleep_OBJECTS)
test_sleep_DEPENDENCIES = libsystemd-core.la
+am_test_socket_util_OBJECTS = src/test/test-socket-util.$(OBJEXT)
+test_socket_util_OBJECTS = $(am_test_socket_util_OBJECTS)
+test_socket_util_DEPENDENCIES = libsystemd-core.la
am__test_ssd_SOURCES_DIST = src/readahead/test-ssd.c \
src/readahead/readahead-common.c \
src/readahead/readahead-common.h
am_test_udev_OBJECTS = src/test/test-udev.$(OBJEXT)
test_udev_OBJECTS = $(am_test_udev_OBJECTS)
test_udev_DEPENDENCIES = libudev-core.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_99)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_105)
am_test_unit_file_OBJECTS = \
src/test/test_unit_file-test-unit-file.$(OBJEXT)
test_unit_file_OBJECTS = $(am_test_unit_file_OBJECTS)
am__v_CCLD_1 =
SOURCES = $(_daemon_la_SOURCES) $(_journal_la_SOURCES) \
$(_reader_la_SOURCES) $(id128_la_SOURCES) \
- $(libgudev_1_0_la_SOURCES) $(nodist_libgudev_1_0_la_SOURCES) \
+ $(nodist_id128_la_SOURCES) $(libgudev_1_0_la_SOURCES) \
+ $(nodist_libgudev_1_0_la_SOURCES) \
$(libnss_myhostname_la_SOURCES) $(libsystemd_acl_la_SOURCES) \
$(libsystemd_capability_la_SOURCES) \
$(libsystemd_core_la_SOURCES) \
$(login_la_SOURCES) $(pam_systemd_la_SOURCES) \
$(accelerometer_SOURCES) $(ata_id_SOURCES) $(bootctl_SOURCES) \
$(busctl_SOURCES) $(cdrom_id_SOURCES) $(collect_SOURCES) \
- $(hostnamectl_SOURCES) $(journalctl_SOURCES) \
- $(localectl_SOURCES) $(loginctl_SOURCES) $(machinectl_SOURCES) \
- $(mtd_probe_SOURCES) $(scsi_id_SOURCES) $(systemctl_SOURCES) \
- $(systemd_SOURCES) $(systemd_ac_power_SOURCES) \
- $(systemd_activate_SOURCES) $(systemd_analyze_SOURCES) \
- $(systemd_ask_password_SOURCES) $(systemd_backlight_SOURCES) \
- $(systemd_binfmt_SOURCES) $(systemd_bootchart_SOURCES) \
- $(systemd_bus_proxyd_SOURCES) $(systemd_cat_SOURCES) \
- $(systemd_cgls_SOURCES) $(systemd_cgroups_agent_SOURCES) \
- $(systemd_cgtop_SOURCES) $(systemd_coredump_SOURCES) \
- $(systemd_coredumpctl_SOURCES) $(systemd_cryptsetup_SOURCES) \
+ $(coredumpctl_SOURCES) $(hostnamectl_SOURCES) \
+ $(journalctl_SOURCES) $(localectl_SOURCES) $(loginctl_SOURCES) \
+ $(machinectl_SOURCES) $(mtd_probe_SOURCES) $(scsi_id_SOURCES) \
+ $(systemctl_SOURCES) $(systemd_SOURCES) \
+ $(systemd_ac_power_SOURCES) $(systemd_activate_SOURCES) \
+ $(systemd_analyze_SOURCES) $(systemd_ask_password_SOURCES) \
+ $(systemd_backlight_SOURCES) $(systemd_binfmt_SOURCES) \
+ $(systemd_bootchart_SOURCES) $(systemd_bus_proxyd_SOURCES) \
+ $(systemd_cat_SOURCES) $(systemd_cgls_SOURCES) \
+ $(systemd_cgroups_agent_SOURCES) $(systemd_cgtop_SOURCES) \
+ $(systemd_coredump_SOURCES) $(systemd_cryptsetup_SOURCES) \
$(systemd_cryptsetup_generator_SOURCES) \
- $(systemd_dbus1_generator_SOURCES) $(systemd_delta_SOURCES) \
+ $(systemd_dbus1_generator_SOURCES) \
+ $(systemd_debug_generator_SOURCES) $(systemd_delta_SOURCES) \
$(systemd_detect_virt_SOURCES) \
$(systemd_efi_boot_generator_SOURCES) $(systemd_fsck_SOURCES) \
$(systemd_fstab_generator_SOURCES) \
$(systemd_multi_seat_x_SOURCES) $(systemd_networkd_SOURCES) \
$(systemd_networkd_wait_online_SOURCES) \
$(systemd_notify_SOURCES) $(systemd_nspawn_SOURCES) \
- $(systemd_quotacheck_SOURCES) $(systemd_random_seed_SOURCES) \
+ $(systemd_path_SOURCES) $(systemd_quotacheck_SOURCES) \
+ $(systemd_random_seed_SOURCES) \
$(systemd_rc_local_generator_SOURCES) \
$(systemd_readahead_SOURCES) $(systemd_remount_fs_SOURCES) \
$(systemd_reply_password_SOURCES) $(systemd_resolved_SOURCES) \
$(systemd_shutdownd_SOURCES) $(systemd_sleep_SOURCES) \
$(systemd_socket_proxyd_SOURCES) $(systemd_sysctl_SOURCES) \
$(systemd_system_update_generator_SOURCES) \
- $(systemd_sysv_generator_SOURCES) $(systemd_timedated_SOURCES) \
- $(systemd_timesyncd_SOURCES) \
+ $(systemd_sysusers_SOURCES) $(systemd_sysv_generator_SOURCES) \
+ $(systemd_timedated_SOURCES) $(systemd_timesyncd_SOURCES) \
$(nodist_systemd_timesyncd_SOURCES) \
$(systemd_tmpfiles_SOURCES) \
$(systemd_tty_ask_password_agent_SOURCES) \
- $(systemd_udevd_SOURCES) $(systemd_update_utmp_SOURCES) \
+ $(systemd_udevd_SOURCES) $(systemd_update_done_SOURCES) \
+ $(systemd_update_utmp_SOURCES) \
$(systemd_user_sessions_SOURCES) \
$(systemd_vconsole_setup_SOURCES) $(test_architecture_SOURCES) \
- $(test_boot_timestamp_SOURCES) $(test_bus_chat_SOURCES) \
- $(test_bus_cleanup_SOURCES) $(test_bus_creds_SOURCES) \
- $(test_bus_error_SOURCES) $(test_bus_gvariant_SOURCES) \
- $(test_bus_introspect_SOURCES) $(test_bus_kernel_SOURCES) \
+ $(test_async_SOURCES) $(test_boot_timestamp_SOURCES) \
+ $(test_bus_chat_SOURCES) $(test_bus_cleanup_SOURCES) \
+ $(test_bus_creds_SOURCES) $(test_bus_error_SOURCES) \
+ $(test_bus_gvariant_SOURCES) $(test_bus_introspect_SOURCES) \
+ $(test_bus_kernel_SOURCES) \
$(test_bus_kernel_benchmark_SOURCES) \
$(test_bus_kernel_bloom_SOURCES) $(test_bus_marshal_SOURCES) \
$(test_bus_match_SOURCES) $(test_bus_memfd_SOURCES) \
$(test_bus_objects_SOURCES) $(test_bus_server_SOURCES) \
$(test_bus_signature_SOURCES) $(test_bus_zero_copy_SOURCES) \
- $(test_calendarspec_SOURCES) $(test_catalog_SOURCES) \
- $(test_cgroup_SOURCES) $(test_cgroup_mask_SOURCES) \
- $(test_cgroup_util_SOURCES) $(test_daemon_SOURCES) \
+ $(test_calendarspec_SOURCES) $(test_capability_SOURCES) \
+ $(test_catalog_SOURCES) $(test_cgroup_SOURCES) \
+ $(test_cgroup_mask_SOURCES) $(test_cgroup_util_SOURCES) \
+ $(test_compress_SOURCES) $(test_conf_files_SOURCES) \
+ $(test_coredump_vacuum_SOURCES) $(test_daemon_SOURCES) \
$(test_date_SOURCES) $(test_device_nodes_SOURCES) \
$(test_dhcp_client_SOURCES) $(test_dhcp_option_SOURCES) \
+ $(test_dhcp_server_SOURCES) $(test_dhcp6_client_SOURCES) \
$(test_ellipsize_SOURCES) $(test_engine_SOURCES) \
$(test_env_replace_SOURCES) $(test_event_SOURCES) \
- $(test_fileio_SOURCES) $(test_hashmap_SOURCES) \
- $(test_hostname_SOURCES) $(test_id128_SOURCES) \
+ $(test_fdset_SOURCES) $(test_fileio_SOURCES) \
+ $(test_hashmap_SOURCES) $(test_hostname_SOURCES) \
+ $(test_icmp6_rs_SOURCES) $(test_id128_SOURCES) \
$(test_inhibit_SOURCES) $(test_install_SOURCES) \
$(test_ipcrm_SOURCES) $(test_ipv4ll_SOURCES) \
$(test_job_type_SOURCES) $(test_journal_SOURCES) \
$(test_mmap_cache_SOURCES) $(test_namespace_SOURCES) \
$(test_network_SOURCES) $(test_ns_SOURCES) \
$(test_path_util_SOURCES) $(test_prioq_SOURCES) \
- $(test_replace_var_SOURCES) $(test_resolve_SOURCES) \
- $(test_ring_SOURCES) $(test_rtnl_SOURCES) \
- $(test_rtnl_manual_SOURCES) $(test_sched_prio_SOURCES) \
- $(test_sleep_SOURCES) $(test_ssd_SOURCES) \
+ $(test_ratelimit_SOURCES) $(test_replace_var_SOURCES) \
+ $(test_resolve_SOURCES) $(test_ring_SOURCES) \
+ $(test_rtnl_SOURCES) $(test_rtnl_manual_SOURCES) \
+ $(test_sched_prio_SOURCES) $(test_sleep_SOURCES) \
+ $(test_socket_util_SOURCES) $(test_ssd_SOURCES) \
$(test_strbuf_SOURCES) $(test_strip_tab_ansi_SOURCES) \
$(test_strv_SOURCES) $(test_strxcpyx_SOURCES) \
$(test_tables_SOURCES) $(test_time_SOURCES) \
$(am__pam_systemd_la_SOURCES_DIST) $(accelerometer_SOURCES) \
$(ata_id_SOURCES) $(am__bootctl_SOURCES_DIST) \
$(busctl_SOURCES) $(cdrom_id_SOURCES) $(collect_SOURCES) \
+ $(am__coredumpctl_SOURCES_DIST) \
$(am__hostnamectl_SOURCES_DIST) $(am__journalctl_SOURCES_DIST) \
$(am__localectl_SOURCES_DIST) $(am__loginctl_SOURCES_DIST) \
$(am__machinectl_SOURCES_DIST) $(mtd_probe_SOURCES) \
$(systemd_bus_proxyd_SOURCES) $(systemd_cat_SOURCES) \
$(systemd_cgls_SOURCES) $(systemd_cgroups_agent_SOURCES) \
$(systemd_cgtop_SOURCES) $(am__systemd_coredump_SOURCES_DIST) \
- $(am__systemd_coredumpctl_SOURCES_DIST) \
$(am__systemd_cryptsetup_SOURCES_DIST) \
$(am__systemd_cryptsetup_generator_SOURCES_DIST) \
$(am__systemd_dbus1_generator_SOURCES_DIST) \
- $(systemd_delta_SOURCES) $(systemd_detect_virt_SOURCES) \
+ $(systemd_debug_generator_SOURCES) $(systemd_delta_SOURCES) \
+ $(systemd_detect_virt_SOURCES) \
$(am__systemd_efi_boot_generator_SOURCES_DIST) \
$(systemd_fsck_SOURCES) $(systemd_fstab_generator_SOURCES) \
$(systemd_getty_generator_SOURCES) \
$(am__systemd_networkd_SOURCES_DIST) \
$(am__systemd_networkd_wait_online_SOURCES_DIST) \
$(systemd_notify_SOURCES) $(systemd_nspawn_SOURCES) \
- $(am__systemd_quotacheck_SOURCES_DIST) \
+ $(systemd_path_SOURCES) $(am__systemd_quotacheck_SOURCES_DIST) \
$(am__systemd_random_seed_SOURCES_DIST) \
$(systemd_rc_local_generator_SOURCES) \
$(am__systemd_readahead_SOURCES_DIST) \
$(systemd_sleep_SOURCES) $(systemd_socket_proxyd_SOURCES) \
$(systemd_sysctl_SOURCES) \
$(systemd_system_update_generator_SOURCES) \
+ $(am__systemd_sysusers_SOURCES_DIST) \
$(systemd_sysv_generator_SOURCES) \
$(am__systemd_timedated_SOURCES_DIST) \
$(am__systemd_timesyncd_SOURCES_DIST) \
$(am__systemd_tmpfiles_SOURCES_DIST) \
$(systemd_tty_ask_password_agent_SOURCES) \
- $(systemd_udevd_SOURCES) $(systemd_update_utmp_SOURCES) \
+ $(systemd_udevd_SOURCES) $(systemd_update_done_SOURCES) \
+ $(systemd_update_utmp_SOURCES) \
$(am__systemd_user_sessions_SOURCES_DIST) \
$(am__systemd_vconsole_setup_SOURCES_DIST) \
- $(test_architecture_SOURCES) \
+ $(test_architecture_SOURCES) $(test_async_SOURCES) \
$(am__test_boot_timestamp_SOURCES_DIST) \
$(test_bus_chat_SOURCES) $(test_bus_cleanup_SOURCES) \
$(test_bus_creds_SOURCES) $(test_bus_error_SOURCES) \
$(test_bus_match_SOURCES) $(test_bus_memfd_SOURCES) \
$(test_bus_objects_SOURCES) $(test_bus_server_SOURCES) \
$(test_bus_signature_SOURCES) $(test_bus_zero_copy_SOURCES) \
- $(test_calendarspec_SOURCES) $(test_catalog_SOURCES) \
- $(test_cgroup_SOURCES) $(test_cgroup_mask_SOURCES) \
- $(test_cgroup_util_SOURCES) $(test_daemon_SOURCES) \
- $(test_date_SOURCES) $(test_device_nodes_SOURCES) \
- $(test_dhcp_client_SOURCES) $(test_dhcp_option_SOURCES) \
- $(test_ellipsize_SOURCES) $(test_engine_SOURCES) \
- $(test_env_replace_SOURCES) $(test_event_SOURCES) \
+ $(test_calendarspec_SOURCES) $(test_capability_SOURCES) \
+ $(test_catalog_SOURCES) $(test_cgroup_SOURCES) \
+ $(test_cgroup_mask_SOURCES) $(test_cgroup_util_SOURCES) \
+ $(am__test_compress_SOURCES_DIST) $(test_conf_files_SOURCES) \
+ $(am__test_coredump_vacuum_SOURCES_DIST) \
+ $(test_daemon_SOURCES) $(test_date_SOURCES) \
+ $(test_device_nodes_SOURCES) $(test_dhcp_client_SOURCES) \
+ $(test_dhcp_option_SOURCES) $(test_dhcp_server_SOURCES) \
+ $(test_dhcp6_client_SOURCES) $(test_ellipsize_SOURCES) \
+ $(test_engine_SOURCES) $(test_env_replace_SOURCES) \
+ $(test_event_SOURCES) $(test_fdset_SOURCES) \
$(test_fileio_SOURCES) $(test_hashmap_SOURCES) \
- $(test_hostname_SOURCES) $(test_id128_SOURCES) \
- $(am__test_inhibit_SOURCES_DIST) $(test_install_SOURCES) \
- $(test_ipcrm_SOURCES) $(test_ipv4ll_SOURCES) \
- $(test_job_type_SOURCES) $(test_journal_SOURCES) \
- $(test_journal_enum_SOURCES) $(test_journal_flush_SOURCES) \
- $(test_journal_init_SOURCES) \
+ $(test_hostname_SOURCES) $(test_icmp6_rs_SOURCES) \
+ $(test_id128_SOURCES) $(am__test_inhibit_SOURCES_DIST) \
+ $(test_install_SOURCES) $(test_ipcrm_SOURCES) \
+ $(test_ipv4ll_SOURCES) $(test_job_type_SOURCES) \
+ $(test_journal_SOURCES) $(test_journal_enum_SOURCES) \
+ $(test_journal_flush_SOURCES) $(test_journal_init_SOURCES) \
$(test_journal_interleaving_SOURCES) \
$(test_journal_match_SOURCES) $(test_journal_send_SOURCES) \
$(test_journal_stream_SOURCES) $(test_journal_syslog_SOURCES) \
$(test_mmap_cache_SOURCES) $(test_namespace_SOURCES) \
$(am__test_network_SOURCES_DIST) $(test_ns_SOURCES) \
$(test_path_util_SOURCES) $(test_prioq_SOURCES) \
- $(test_replace_var_SOURCES) $(test_resolve_SOURCES) \
- $(test_ring_SOURCES) $(test_rtnl_SOURCES) \
- $(test_rtnl_manual_SOURCES) $(test_sched_prio_SOURCES) \
- $(test_sleep_SOURCES) $(am__test_ssd_SOURCES_DIST) \
+ $(test_ratelimit_SOURCES) $(test_replace_var_SOURCES) \
+ $(test_resolve_SOURCES) $(test_ring_SOURCES) \
+ $(test_rtnl_SOURCES) $(test_rtnl_manual_SOURCES) \
+ $(test_sched_prio_SOURCES) $(test_sleep_SOURCES) \
+ $(test_socket_util_SOURCES) $(am__test_ssd_SOURCES_DIST) \
$(test_strbuf_SOURCES) $(test_strip_tab_ansi_SOURCES) \
$(test_strv_SOURCES) $(test_strxcpyx_SOURCES) \
$(test_tables_SOURCES) $(test_time_SOURCES) \
shell-completion/bash/udevadm \
shell-completion/bash/kernel-install \
shell-completion/bash/bootctl \
- shell-completion/bash/systemd-coredumpctl \
+ shell-completion/bash/coredumpctl \
shell-completion/bash/hostnamectl \
shell-completion/bash/localectl \
shell-completion/bash/timedatectl \
am__dist_pkgdata_DATA_DIST = src/locale/kbd-model-map
am__dist_pkgsysconf_DATA_DIST = src/core/system.conf \
src/core/user.conf src/journal/journald.conf \
- src/bootchart/bootchart.conf src/login/logind.conf
+ src/journal/coredump.conf src/bootchart/bootchart.conf \
+ src/login/logind.conf
+am__dist_polkitpolicy_DATA_DIST = \
+ src/hostname/org.freedesktop.hostname1.policy \
+ src/locale/org.freedesktop.locale1.policy \
+ src/timedate/org.freedesktop.timedate1.policy \
+ src/login/org.freedesktop.login1.policy \
+ src/core/org.freedesktop.systemd1.policy
am__dist_systemunit_DATA_DIST = units/graphical.target \
units/multi-user.target units/emergency.service \
units/emergency.target units/sysinit.target units/basic.target \
units/systemd-ask-password-console.path \
units/systemd-udevd-control.socket \
units/systemd-udevd-kernel.socket units/system-update.target \
- units/initrd-switch-root.target \
+ units/initrd-switch-root.target units/ldconfig.service \
units/systemd-tmpfiles-clean.timer \
units/systemd-bus-proxyd.socket units/systemd-journald.socket \
units/systemd-journald-dev-log.socket \
units/proc-sys-fs-binfmt_misc.mount \
units/systemd-readahead-drop.service \
units/systemd-readahead-done.timer units/cryptsetup.target \
+ units/cryptsetup-pre.target \
units/org.freedesktop.hostname1.busname \
units/org.freedesktop.systemd1.busname \
units/org.freedesktop.locale1.busname \
units/org.freedesktop.timedate1.busname units/machine.slice \
units/org.freedesktop.machine1.busname units/user.slice \
units/org.freedesktop.login1.busname
+am__dist_sysusers_DATA_DIST = sysusers.d/systemd.conf
am__dist_tmpfiles_DATA_DIST = tmpfiles.d/systemd.conf \
tmpfiles.d/systemd-nologin.conf tmpfiles.d/tmp.conf \
- tmpfiles.d/x11.conf tmpfiles.d/var.conf tmpfiles.d/legacy.conf
+ tmpfiles.d/x11.conf tmpfiles.d/var.conf tmpfiles.d/etc.conf \
+ tmpfiles.d/legacy.conf
am__dist_udevrules_DATA_DIST = rules/42-usb-hid-pm.rules \
rules/50-udev-default.rules rules/60-drm.rules \
rules/60-keyboard.rules rules/60-persistent-storage-tape.rules \
shell-completion/zsh/_systemd \
shell-completion/zsh/_systemd-tmpfiles \
shell-completion/zsh/_bootctl \
- shell-completion/zsh/_systemd-coredumpctl \
+ shell-completion/zsh/_coredumpctl \
shell-completion/zsh/_hostnamectl \
shell-completion/zsh/_localectl \
shell-completion/zsh/_timedatectl \
$(dist_doc_DATA) $(dist_gatewayddocumentroot_DATA) \
$(dist_network_DATA) $(dist_ntpunits_DATA) \
$(dist_pamconf_DATA) $(dist_pkgdata_DATA) \
- $(dist_pkgsysconf_DATA) $(dist_sysctl_DATA) \
- $(dist_systemunit_DATA) $(dist_tmpfiles_DATA) \
- $(dist_udevconf_DATA) $(dist_udevhwdb_DATA) \
- $(dist_udevrules_DATA) $(dist_userunit_DATA) \
- $(dist_zshcompletion_DATA) $(gir_DATA) \
- $(nodist_pkgsysconf_DATA) $(nodist_polkitpolicy_DATA) \
- $(nodist_rpmmacros_DATA) $(nodist_systemunit_DATA) \
+ $(dist_pkgsysconf_DATA) $(dist_polkitpolicy_DATA) \
+ $(dist_sysctl_DATA) $(dist_systempreset_DATA) \
+ $(dist_systemunit_DATA) $(dist_sysusers_DATA) \
+ $(dist_tmpfiles_DATA) $(dist_udevconf_DATA) \
+ $(dist_udevhwdb_DATA) $(dist_udevrules_DATA) \
+ $(dist_userunit_DATA) $(dist_zshcompletion_DATA) $(gir_DATA) \
+ $(nodist_pkgsysconf_DATA) $(nodist_rpmmacros_DATA) \
+ $(nodist_systemunit_DATA) $(nodist_sysusers_DATA) \
$(nodist_udevrules_DATA) $(nodist_userunit_DATA) \
$(noinst_DATA) $(pkgconfigdata_DATA) $(pkgconfiglib_DATA) \
$(sharepkgconfig_DATA) $(sysctl_DATA) $(sysvinit_DATA) \
src/systemd/sd-bus-vtable.h src/systemd/sd-memfd.h \
src/systemd/sd-utf8.h src/systemd/sd-event.h \
src/systemd/sd-rtnl.h src/systemd/sd-resolve.h \
- src/systemd/sd-journal.h src/systemd/sd-messages.h \
- src/systemd/_sd-common.h
+ src/systemd/sd-path.h src/systemd/sd-journal.h \
+ src/systemd/sd-messages.h src/systemd/_sd-common.h
HEADERS = $(include_HEADERS) $(libgudev_include_HEADERS) \
$(pkginclude_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ELFUTILS_LIBS = @ELFUTILS_LIBS@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIRMWARE_PATH = @FIRMWARE_PATH@
SYSTEM_SYSVRCND_PATH = @SYSTEM_SYSVRCND_PATH@
SYSTEM_UID_MAX = @SYSTEM_UID_MAX@
TELINIT = @TELINIT@
+TTY_GID = @TTY_GID@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
install_sh = @install_sh@
intltool__v_merge_options_ = @intltool__v_merge_options_@
intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+intltool_found = @intltool_found@
lcov_found = @lcov_found@
libdir = @libdir@
libexecdir = @libexecdir@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
AM_MAKEFLAGS = --no-print-directory
AUTOMAKE_OPTIONS = color-tests parallel-tests
-SUBDIRS = . po $(am__append_90) $(am__append_100)
-LIBUDEV_CURRENT = 5
-LIBUDEV_REVISION = 1
-LIBUDEV_AGE = 4
+SUBDIRS = . po $(am__append_96) $(am__append_106)
+LIBUDEV_CURRENT = 6
+LIBUDEV_REVISION = 0
+LIBUDEV_AGE = 5
LIBGUDEV_CURRENT = 2
LIBGUDEV_REVISION = 0
LIBGUDEV_AGE = 2
LIBSYSTEMD_CURRENT = 3
-LIBSYSTEMD_REVISION = 0
+LIBSYSTEMD_REVISION = 1
LIBSYSTEMD_AGE = 3
# The following four libraries only exist for compatibility reasons,
userunitdir = $(prefix)/lib/systemd/user
userpresetdir = $(prefix)/lib/systemd/user-preset
tmpfilesdir = $(prefix)/lib/tmpfiles.d
+sysusersdir = $(prefix)/lib/sysusers.d
sysctldir = $(prefix)/lib/sysctl.d
+binfmtdir = $(prefix)/lib/binfmt.d
+modulesloaddir = $(prefix)/lib/modules-load.d
networkdir = $(rootprefix)/lib/systemd/network
systemgeneratordir = $(rootlibexecdir)/system-generators
usergeneratordir = $(prefix)/lib/systemd/user-generators
src/shared/errno-list.txt src/shared/errno-from-name.gperf \
src/shared/af-list.txt src/shared/af-from-name.gperf \
src/core/macros.systemd \
- src/core/org.freedesktop.systemd1.policy.in \
+ src/core/org.freedesktop.systemd1.policy.in $(am__append_81) \
src/libsystemd/libsystemd.sym \
src/libsystemd/sd-bus/bus-error-mapping.c \
src/libudev/libudev.pc docs/html/libudev docs/html/gudev \
rules/99-systemd.rules src/udev/udev.pc \
units/systemd-udevd.service units/systemd-udev-trigger.service \
units/systemd-udev-settle.service \
+ units/systemd-udev-hwdb-update.service \
src/udev/keyboard-keys-from-name.gperf \
src/udev/keyboard-keys.txt src/udev/net/link-config-gperf.c \
- $(am__append_103) $(am__append_105) \
- src/journal/journald-gperf.c $(am__append_129) \
- $(am__append_196) $(am__append_215) $(am__append_226) \
- $(am__append_249) $(nodist_systemunit_DATA) \
+ $(am__append_109) $(am__append_111) \
+ src/journal/journald-gperf.c $(am__append_142) \
+ $(am__append_209) $(am__append_229) $(am__append_240) \
+ $(am__append_263) $(nodist_systemunit_DATA) \
$(nodist_userunit_DATA) $(pkgconfigdata_DATA) \
$(pkgconfiglib_DATA) $(nodist_polkitpolicy_DATA) \
- $(am__append_258) defined undefined
-DISTCLEANFILES = $(am__append_257)
+ $(am__append_272) defined undefined
+DISTCLEANFILES = $(am__append_271)
# Really, do not edit this file.
EXTRA_DIST = units/getty@.service.m4 units/serial-getty@.service.m4 \
units/initrd-cleanup.service.in \
units/initrd-udevadm-cleanup-db.service.in \
units/initrd-switch-root.service.in \
- units/systemd-nspawn@.service.in units/rc-local.service.in \
+ units/systemd-nspawn@.service.in \
+ units/systemd-update-done.service.in units/rc-local.service.in \
units/halt-local.service.in man/binfmt.d.xml \
man/bootchart.conf.xml man/bootctl.xml man/bootup.xml \
- man/busctl.xml man/crypttab.xml man/daemon.xml man/halt.xml \
- man/hostname.xml man/hostnamectl.xml man/journalctl.xml \
- man/journald.conf.xml man/kernel-command-line.xml \
- man/kernel-install.xml man/less-variables.xml \
- man/libsystemd-pkgconfig.xml man/locale.conf.xml \
- man/localectl.xml man/localtime.xml man/loginctl.xml \
- man/logind.conf.xml man/machine-id.xml man/machine-info.xml \
- man/machinectl.xml man/modules-load.d.xml \
+ man/busctl.xml man/coredump.conf.xml man/coredumpctl.xml \
+ man/crypttab.xml man/daemon.xml man/file-hierarchy.xml \
+ man/halt.xml man/hostname.xml man/hostnamectl.xml \
+ man/journalctl.xml man/journald.conf.xml \
+ man/kernel-command-line.xml man/kernel-install.xml \
+ man/less-variables.xml man/libsystemd-pkgconfig.xml \
+ man/locale.conf.xml man/localectl.xml man/localtime.xml \
+ man/loginctl.xml man/logind.conf.xml man/machine-id.xml \
+ man/machine-info.xml man/machinectl.xml man/modules-load.d.xml \
man/nss-myhostname.xml man/os-release.xml man/pam_systemd.xml \
man/resolved.conf.xml man/runlevel.xml man/sd-daemon.xml \
man/sd-id128.xml man/sd-journal.xml man/sd-login.xml \
man/systemd-binfmt.service.xml man/systemd-bootchart.xml \
man/systemd-bus-proxyd.xml man/systemd-bus-proxyd@.service.xml \
man/systemd-cat.xml man/systemd-cgls.xml man/systemd-cgtop.xml \
- man/systemd-coredumpctl.xml \
man/systemd-cryptsetup-generator.xml \
- man/systemd-cryptsetup@.service.xml man/systemd-delta.xml \
+ man/systemd-cryptsetup@.service.xml \
+ man/systemd-debug-generator.xml man/systemd-delta.xml \
man/systemd-detect-virt.xml man/systemd-efi-boot-generator.xml \
man/systemd-fsck@.service.xml man/systemd-fstab-generator.xml \
man/systemd-getty-generator.xml \
man/systemd-modules-load.service.xml \
man/systemd-networkd-wait-online.service.xml \
man/systemd-networkd.service.xml man/systemd-notify.xml \
- man/systemd-nspawn.xml man/systemd-quotacheck.service.xml \
+ man/systemd-nspawn.xml man/systemd-path.xml \
+ man/systemd-quotacheck.service.xml \
man/systemd-random-seed.service.xml \
man/systemd-readahead-replay.service.xml \
man/systemd-remount-fs.service.xml \
man/systemd-socket-proxyd.xml man/systemd-suspend.service.xml \
man/systemd-sysctl.service.xml \
man/systemd-system-update-generator.xml \
- man/systemd-system.conf.xml man/systemd-timedated.service.xml \
+ man/systemd-system.conf.xml man/systemd-sysusers.xml \
+ man/systemd-timedated.service.xml \
man/systemd-timesyncd.service.xml man/systemd-tmpfiles.xml \
man/systemd-tty-ask-password-agent.xml \
man/systemd-udevd.service.xml \
+ man/systemd-update-done.service.xml \
man/systemd-update-utmp.service.xml \
man/systemd-user-sessions.service.xml \
man/systemd-vconsole-setup.service.xml \
man/systemd.socket.xml man/systemd.special.xml \
man/systemd.swap.xml man/systemd.target.xml \
man/systemd.time.xml man/systemd.timer.xml \
- man/systemd.unit.xml man/systemd.xml man/telinit.xml \
- man/timedatectl.xml man/tmpfiles.d.xml man/udev.xml \
- man/udevadm.xml man/user-system-options.xml \
+ man/systemd.unit.xml man/systemd.xml man/sysusers.d.xml \
+ man/telinit.xml man/timedatectl.xml man/tmpfiles.d.xml \
+ man/udev.xml man/udevadm.xml man/user-system-options.xml \
man/vconsole.conf.xml $(am__append_57) $(XML_FILES) \
$(HTML_FILES) $(HTML_ALIAS) $(man_MANS) \
tools/make-man-index.py tools/make-directive-index.py \
units/kmod-static-nodes.service.in \
units/systemd-tmpfiles-setup-dev.service.in \
units/systemd-tmpfiles-setup.service.in \
- units/systemd-tmpfiles-clean.service.in \
+ units/systemd-tmpfiles-clean.service.in $(am__append_80) \
units/systemd-bus-proxyd@.service.in \
src/libsystemd/libsystemd.sym.m4 \
src/libsystemd/libsystemd.pc.in \
src/udev/udev.pc.in units/systemd-udevd.service.in \
units/systemd-udev-trigger.service.in \
units/systemd-udev-settle.service.in \
+ units/systemd-udev-hwdb-update.service.in \
src/udev/net/link-config-gperf.gperf test/sys.tar.xz \
test/udev-test.pl test/rules-test.sh test/rule-syntax-check.py \
src/udev/scsi_id/README src/gudev/gudev-1.0.pc.in \
src/gudev/seed-example-enum.js src/gudev/seed-example.js \
units/systemd-journald.service.in \
units/systemd-journal-flush.service.in \
+ units/systemd-journal-catalog-update.service.in \
src/journal/journald-gperf.gperf \
units/systemd-journal-gatewayd.service.in \
sysctl.d/50-coredump.conf.in units/systemd-binfmt.service.in \
units/systemd-rfkill@.service.in \
units/systemd-hostnamed.service.in \
units/systemd-localed.service.in \
- units/systemd-timedated.service.in $(am__append_195) \
- $(am__append_213) $(am__append_214) $(am__append_225) \
+ units/systemd-timedated.service.in $(am__append_208) \
+ $(am__append_227) $(am__append_228) $(am__append_239) \
src/login/logind-gperf.gperf src/login/71-seat.rules.in \
src/login/73-seat-late.rules.in \
units/systemd-logind.service.in \
- units/systemd-user-sessions.service.in $(am__append_251) \
+ units/systemd-user-sessions.service.in $(am__append_265) \
src/compat-libs/libsystemd-journal.pc.in \
src/compat-libs/libsystemd-login.pc.in \
src/compat-libs/libsystemd-id128.pc.in \
BUILT_SOURCES = src/shared/errno-from-name.h \
src/shared/errno-to-name.h src/shared/af-from-name.h \
src/shared/af-to-name.h src/libsystemd/libsystemd.sym \
- $(nodist_libudev_core_la_SOURCES) $(am__append_104) \
- $(am__append_250) $(am__append_252) \
+ $(nodist_libudev_core_la_SOURCES) $(am__append_110) \
+ $(am__append_264) $(am__append_266) \
$(test_libsystemd_sym_SOURCES) $(test_libudev_sym_SOURCES)
INSTALL_EXEC_HOOKS = install-target-wants-hook \
install-directories-hook install-aliases-hook \
- systemd-detect-virt-install-hook $(am__append_83) \
- bus-proxyd-install-hook libsystemd-install-hook \
- libudev-install-hook $(am__append_106) journal-install-hook \
- $(am__append_255)
-UNINSTALL_EXEC_HOOKS = $(am__append_84) bus-proxyd-uninstall-hook \
+ install-touch-usr-hook systemd-detect-virt-install-hook \
+ $(am__append_89) bus-proxyd-install-hook \
+ libsystemd-install-hook libudev-install-hook $(am__append_112) \
+ journal-install-hook $(am__append_269)
+UNINSTALL_EXEC_HOOKS = $(am__append_90) bus-proxyd-uninstall-hook \
libsystemd-uninstall-hook libudev-uninstall-hook \
- $(am__append_107) journal-uninstall-hook $(am__append_256)
+ $(am__append_113) journal-uninstall-hook $(am__append_270)
INSTALL_DATA_HOOKS = units-install-hook hwdb-update-hook \
catalog-update-hook
UNINSTALL_DATA_HOOKS = units-uninstall-hook catalog-remove-hook
DISTCLEAN_LOCAL_HOOKS = test-sys-distclean
CLEAN_LOCAL_HOOKS = clean-sphinx
pkginclude_HEADERS = src/systemd/sd-login.h src/systemd/sd-id128.h \
- src/systemd/sd-daemon.h $(am__append_89) \
+ src/systemd/sd-daemon.h $(am__append_95) \
src/systemd/sd-journal.h src/systemd/sd-messages.h \
src/systemd/_sd-common.h
libsystemd-internal.la libsystemd-resolve.la \
libsystemd-dump.la libsystemd-network.la libudev-internal.la \
libudev-core.la libsystemd-journal-core.la \
- libsystemd-journal-internal.la $(am__append_202) \
- $(am__append_221) $(am__append_229)
-lib_LTLIBRARIES = libsystemd.la libudev.la $(am__append_101) \
- $(am__append_200) $(am__append_253)
+ libsystemd-journal-internal.la $(am__append_216) \
+ $(am__append_235) $(am__append_243)
+lib_LTLIBRARIES = libsystemd.la libudev.la $(am__append_107) \
+ $(am__append_214) $(am__append_267)
include_HEADERS = src/libudev/libudev.h
-noinst_DATA = $(am__append_53) $(am__append_55) $(am__append_91)
+noinst_DATA = $(am__append_53) $(am__append_55) $(am__append_97)
pkgconfiglib_DATA = src/libsystemd/libsystemd.pc \
- src/libudev/libudev.pc $(am__append_102) $(am__append_254)
+ src/libudev/libudev.pc $(am__append_108) $(am__append_268)
polkitpolicy_in_in_files = \
src/core/org.freedesktop.systemd1.policy.in.in
polkitpolicy_in_files = \
src/locale/org.freedesktop.locale1.policy.in \
src/timedate/org.freedesktop.timedate1.policy.in \
src/login/org.freedesktop.login1.policy.in
-polkitpolicy_files = $(am__append_163) $(am__append_176) \
- $(am__append_188) $(am__append_241)
+polkitpolicy_files = $(am__append_176) $(am__append_189) \
+ $(am__append_201) $(am__append_255)
dist_udevrules_DATA = rules/42-usb-hid-pm.rules \
rules/50-udev-default.rules rules/60-drm.rules \
rules/60-keyboard.rules rules/60-persistent-storage-tape.rules \
rules/60-persistent-storage.rules rules/64-btrfs.rules \
rules/75-net-description.rules rules/75-tty-description.rules \
rules/78-sound-card.rules rules/80-net-setup-link.rules \
- rules/95-udev-late.rules $(am__append_93) $(am__append_95) \
+ rules/95-udev-late.rules $(am__append_99) $(am__append_101) \
rules/60-cdrom_id.rules rules/60-persistent-v4l.rules \
rules/61-accelerometer.rules rules/75-probe_mtd.rules \
- $(am__append_247)
-nodist_udevrules_DATA = rules/99-systemd.rules $(am__append_248)
-nodist_pkgsysconf_DATA = $(am__append_199) $(am__append_219)
+ $(am__append_261)
+nodist_udevrules_DATA = rules/99-systemd.rules $(am__append_262)
+nodist_pkgsysconf_DATA = $(am__append_213) $(am__append_233)
dist_pkgsysconf_DATA = src/core/system.conf src/core/user.conf \
- src/journal/journald.conf $(am__append_144) $(am__append_240)
-dist_pkgdata_DATA = $(am__append_179)
+ src/journal/journald.conf $(am__append_135) $(am__append_157) \
+ $(am__append_254)
+dist_pkgdata_DATA = $(am__append_192)
dist_dbuspolicy_DATA = src/core/org.freedesktop.systemd1.conf \
- $(am__append_161) $(am__append_174) $(am__append_185) \
- $(am__append_209) $(am__append_239)
+ $(am__append_174) $(am__append_187) $(am__append_198) \
+ $(am__append_223) $(am__append_253)
dist_dbussystemservice_DATA = \
- src/core/org.freedesktop.systemd1.service $(am__append_162) \
- $(am__append_175) $(am__append_184) $(am__append_208) \
- $(am__append_238)
+ src/core/org.freedesktop.systemd1.service $(am__append_175) \
+ $(am__append_188) $(am__append_197) $(am__append_222) \
+ $(am__append_252)
check_DATA = test/sys
tests = test-job-type test-env-replace test-strbuf test-strv \
test-path-util test-strxcpyx test-unit-name test-unit-file \
test-sched-prio test-calendarspec test-strip-tab-ansi \
test-cgroup-util test-prioq test-fileio test-time test-hashmap \
test-list test-tables test-device-nodes test-xml \
- test-architecture test-bus-marshal test-bus-signature \
- test-bus-chat test-bus-cleanup test-bus-server test-bus-match \
- test-bus-kernel test-bus-kernel-bloom \
- test-bus-kernel-benchmark test-bus-memfd test-bus-zero-copy \
- test-bus-introspect test-bus-objects test-bus-error \
- test-bus-creds test-bus-gvariant test-event test-rtnl \
- test-resolve test-dhcp-option test-dhcp-client test-ipv4ll \
+ test-architecture test-socket-util test-fdset test-conf-files \
+ test-capability test-async test-ratelimit test-bus-marshal \
+ test-bus-signature test-bus-chat test-bus-cleanup \
+ test-bus-server test-bus-match test-bus-kernel \
+ test-bus-kernel-bloom test-bus-kernel-benchmark test-bus-memfd \
+ test-bus-zero-copy test-bus-introspect test-bus-objects \
+ test-bus-error test-bus-creds test-bus-gvariant test-event \
+ test-rtnl test-resolve test-dhcp-option test-dhcp-client \
+ test-dhcp-server test-ipv4ll test-icmp6-rs test-dhcp6-client \
test-id128 test-journal test-journal-send test-journal-syslog \
test-journal-match test-journal-stream test-journal-init \
test-journal-verify test-journal-interleaving \
test-journal-flush test-mmap-cache test-catalog \
- $(am__append_205) $(am__append_222) $(am__append_235) \
- test-libsystemd-sym test-libudev-sym
+ $(am__append_121) $(am__append_219) $(am__append_236) \
+ $(am__append_249) test-libsystemd-sym test-libudev-sym
# ------------------------------------------------------------------------------
manual_tests = test-engine test-ns test-loopback test-hostname \
test-daemon test-cgroup test-cgroup-mask test-install \
test-watchdog test-log test-ipcrm $(am__append_62) \
$(am__append_63) test-libudev test-udev test-journal-enum \
- $(am__append_142) $(am__append_234)
+ $(am__append_138) $(am__append_155) $(am__append_248)
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" \
-DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \
-DQUOTACHECK=\"$(QUOTACHECK)\" \
-DKEXEC=\"$(KEXEC)\" \
+ -DLIBDIR=\"$(libdir)\" \
+ -DROOTLIBDIR=\"$(rootlibdir)\" \
-I $(top_srcdir)/src \
-I $(top_builddir)/src/shared \
-I $(top_srcdir)/src/shared \
AM_LDFLAGS = $(OUR_LDFLAGS)
# ------------------------------------------------------------------------------
-INSTALL_DIRS = $(am__append_76) $(sysconfdir)/udev/rules.d \
- $(sysconfdir)/udev/hwdb.d $(am__append_133) $(am__append_189) \
- $(am__append_242) $(am__append_265) \
- $(prefix)/lib/modules-load.d $(sysconfdir)/modules-load.d \
- $(prefix)/lib/systemd/network $(sysconfdir)/systemd/network \
- $(prefix)/lib/sysctl.d $(sysconfdir)/sysctl.d \
- $(prefix)/lib/kernel/install.d $(sysconfdir)/kernel/install.d \
- $(systemshutdowndir) $(systemsleepdir) $(systemgeneratordir) \
- $(usergeneratordir) $(userunitdir) $(pkgsysconfdir)/system \
+INSTALL_DIRS = $(am__append_76) $(am__append_82) \
+ $(sysconfdir)/udev/rules.d $(sysconfdir)/udev/hwdb.d \
+ $(am__append_146) $(am__append_202) $(am__append_256) \
+ $(am__append_279) $(prefix)/lib/modules-load.d \
+ $(sysconfdir)/modules-load.d $(prefix)/lib/systemd/network \
+ $(sysconfdir)/systemd/network $(prefix)/lib/sysctl.d \
+ $(sysconfdir)/sysctl.d $(prefix)/lib/kernel/install.d \
+ $(sysconfdir)/kernel/install.d $(systemshutdowndir) \
+ $(systemsleepdir) $(systemgeneratordir) $(usergeneratordir) \
+ $(userunitdir) $(pkgsysconfdir)/system \
$(pkgsysconfdir)/system/multi-user.target.wants \
$(pkgsysconfdir)/system/getty.target.wants \
$(pkgsysconfdir)/user $(dbussessionservicedir) \
$(sysconfdir)/xdg/systemd
-RUNLEVEL1_TARGET_WANTS = $(am__append_259)
-RUNLEVEL2_TARGET_WANTS = $(am__append_260)
-RUNLEVEL3_TARGET_WANTS = $(am__append_261)
-RUNLEVEL4_TARGET_WANTS = $(am__append_262)
-RUNLEVEL5_TARGET_WANTS = $(am__append_263)
+RUNLEVEL1_TARGET_WANTS = $(am__append_273)
+RUNLEVEL2_TARGET_WANTS = $(am__append_274)
+RUNLEVEL3_TARGET_WANTS = $(am__append_275)
+RUNLEVEL4_TARGET_WANTS = $(am__append_276)
+RUNLEVEL5_TARGET_WANTS = $(am__append_277)
SHUTDOWN_TARGET_WANTS =
LOCAL_FS_TARGET_WANTS = systemd-remount-fs.service tmp.mount
-MULTI_USER_TARGET_WANTS = $(am__append_243) getty.target \
+MULTI_USER_TARGET_WANTS = $(am__append_257) getty.target \
systemd-ask-password-wall.path
SYSINIT_TARGET_WANTS = $(am__append_66) $(am__append_68) \
- $(am__append_73) systemd-udevd.service \
- systemd-udev-trigger.service systemd-journald.service \
- systemd-journal-flush.service $(am__append_134) \
- $(am__append_137) $(am__append_149) $(am__append_157) \
- systemd-update-utmp.service dev-hugepages.mount \
- dev-mqueue.mount sys-kernel-config.mount \
- sys-kernel-debug.mount sys-fs-fuse-connections.mount \
- systemd-sysctl.service systemd-ask-password-console.path
+ $(am__append_73) $(am__append_79) systemd-udevd.service \
+ systemd-udev-trigger.service systemd-udev-hwdb-update.service \
+ systemd-journald.service systemd-journal-flush.service \
+ systemd-journal-catalog-update.service $(am__append_147) \
+ $(am__append_150) $(am__append_162) $(am__append_170) \
+ systemd-update-utmp.service systemd-update-done.service \
+ ldconfig.service dev-hugepages.mount dev-mqueue.mount \
+ sys-kernel-config.mount sys-kernel-debug.mount \
+ sys-fs-fuse-connections.mount systemd-sysctl.service \
+ systemd-ask-password-console.path
SOCKETS_TARGET_WANTS = systemd-udevd-control.socket \
systemd-udevd-kernel.socket systemd-journald.socket \
systemd-journald-dev-log.socket systemd-initctl.socket \
systemd-shutdownd.socket
-BUSNAMES_TARGET_WANTS = $(am__append_165) $(am__append_170) \
- $(am__append_178) $(am__append_191) $(am__append_212) \
- $(am__append_245)
+BUSNAMES_TARGET_WANTS = $(am__append_178) $(am__append_183) \
+ $(am__append_191) $(am__append_204) $(am__append_226) \
+ $(am__append_259)
TIMERS_TARGET_WANTS = $(am__append_75)
USER_SOCKETS_TARGET_WANTS =
USER_BUSNAMES_TARGET_WANTS =
-SYSTEM_UNIT_ALIASES = $(am__append_164) $(am__append_177) \
- $(am__append_190) $(am__append_211) $(am__append_244) \
- $(am__append_264) graphical.target default.target \
+SYSTEM_UNIT_ALIASES = $(am__append_177) $(am__append_190) \
+ $(am__append_203) $(am__append_225) $(am__append_258) \
+ $(am__append_278) graphical.target default.target \
reboot.target ctrl-alt-del.target getty@.service \
autovt@.service
USER_UNIT_ALIASES = $(systemunitdir)/shutdown.target shutdown.target \
$(systemunitdir)/printer.target printer.target \
$(systemunitdir)/sound.target sound.target \
$(systemunitdir)/smartcard.target smartcard.target
-GENERAL_ALIASES = $(am__append_218) $(am__append_224) \
+GENERAL_ALIASES = $(am__append_141) $(am__append_212) \
+ $(am__append_232) $(am__append_238) \
$(systemunitdir)/remote-fs.target \
$(pkgsysconfdir)/system/multi-user.target.wants/remote-fs.target \
$(systemunitdir)/getty@.service \
shell-completion/bash/systemd-nspawn \
shell-completion/bash/systemd-run \
shell-completion/bash/udevadm \
- shell-completion/bash/kernel-install $(am__append_79) \
- $(am__append_127) $(am__append_167) $(am__append_181) \
- $(am__append_193) $(am__append_204) $(am__append_232)
+ shell-completion/bash/kernel-install $(am__append_85) \
+ $(am__append_139) $(am__append_180) $(am__append_194) \
+ $(am__append_206) $(am__append_218) $(am__append_246)
dist_zshcompletion_DATA = shell-completion/zsh/_systemctl \
shell-completion/zsh/_journalctl shell-completion/zsh/_udevadm \
shell-completion/zsh/_kernel-install \
shell-completion/zsh/_sd_hosts_or_user_at_host \
shell-completion/zsh/_systemd-delta \
shell-completion/zsh/_systemd $(am__append_74) \
- $(am__append_80) $(am__append_128) $(am__append_168) \
- $(am__append_182) $(am__append_194) $(am__append_210) \
- $(am__append_233)
+ $(am__append_86) $(am__append_140) $(am__append_181) \
+ $(am__append_195) $(am__append_207) $(am__append_224) \
+ $(am__append_247)
dist_sysctl_DATA = \
sysctl.d/50-default.conf
units/systemd-ask-password-console.path \
units/systemd-udevd-control.socket \
units/systemd-udevd-kernel.socket units/system-update.target \
- units/initrd-switch-root.target $(am__append_70) \
- $(am__append_87) units/systemd-journald.socket \
- units/systemd-journald-dev-log.socket $(am__append_123) \
- $(am__append_131) $(am__append_140) $(am__append_156) \
- $(am__append_160) $(am__append_169) $(am__append_172) \
- $(am__append_187) $(am__append_207) $(am__append_237)
+ units/initrd-switch-root.target units/ldconfig.service \
+ $(am__append_70) $(am__append_93) \
+ units/systemd-journald.socket \
+ units/systemd-journald-dev-log.socket $(am__append_130) \
+ $(am__append_144) $(am__append_153) $(am__append_169) \
+ $(am__append_173) $(am__append_182) $(am__append_185) \
+ $(am__append_200) $(am__append_221) $(am__append_251)
nodist_systemunit_DATA = units/getty@.service \
units/serial-getty@.service units/console-shell.service \
units/console-getty.service units/container-getty@.service \
units/systemd-kexec.service units/systemd-fsck@.service \
units/systemd-fsck-root.service units/systemd-udevd.service \
units/systemd-udev-trigger.service \
- units/systemd-udev-settle.service units/debug-shell.service \
- units/initrd-parse-etc.service units/initrd-cleanup.service \
+ units/systemd-udev-settle.service \
+ units/systemd-udev-hwdb-update.service \
+ units/debug-shell.service units/initrd-parse-etc.service \
+ units/initrd-cleanup.service \
units/initrd-udevadm-cleanup-db.service \
units/initrd-switch-root.service units/systemd-nspawn@.service \
- $(am__append_1) $(am__append_65) $(am__append_67) \
- $(am__append_71) $(am__append_86) \
+ units/systemd-update-done.service $(am__append_1) \
+ $(am__append_65) $(am__append_67) $(am__append_71) \
+ $(am__append_78) $(am__append_92) \
units/systemd-journald.service \
- units/systemd-journal-flush.service $(am__append_124) \
- $(am__append_132) $(am__append_136) $(am__append_141) \
- $(am__append_146) units/quotaon.service $(am__append_148) \
- $(am__append_151) $(am__append_153) $(am__append_159) \
- $(am__append_171) $(am__append_186) $(am__append_198) \
- $(am__append_206) $(am__append_217) $(am__append_223) \
- $(am__append_236)
+ units/systemd-journal-flush.service \
+ units/systemd-journal-catalog-update.service $(am__append_131) \
+ $(am__append_145) $(am__append_149) $(am__append_154) \
+ $(am__append_159) units/quotaon.service $(am__append_161) \
+ $(am__append_164) $(am__append_166) $(am__append_172) \
+ $(am__append_184) $(am__append_199) $(am__append_211) \
+ $(am__append_220) $(am__append_231) $(am__append_237) \
+ $(am__append_250)
dist_userunit_DATA = units/user/basic.target units/user/default.target \
- units/user/exit.target $(am__append_88)
+ units/user/exit.target $(am__append_94)
nodist_userunit_DATA = \
units/user/systemd-exit.service
+dist_systempreset_DATA = \
+ system-preset/90-systemd.preset
+
dist_doc_DATA = README NEWS LICENSE.LGPL2.1 LICENSE.GPL2 LICENSE.MIT \
DISTRO_PORTING src/libsystemd/sd-bus/PORTING-DBUS1 \
src/libsystemd/sd-bus/DIFFERENCES \
src/libsystemd/sd-bus/GVARIANT-SERIALIZATION \
- src/systemd/sd-shutdown.h $(am__append_138)
+ src/systemd/sd-shutdown.h $(am__append_151)
# ------------------------------------------------------------------------------
# To make a man page conditional on a configure switch add
# attribute conditional="ENABLE_WHAT" or conditional="WITH_WHAT"
# to <refentry> element.
-MANPAGES = man/bootup.7 man/busctl.1 man/daemon.7 man/halt.8 \
- man/hostname.5 man/journalctl.1 man/journald.conf.5 \
+MANPAGES = man/bootup.7 man/busctl.1 man/daemon.7 man/file-hierarchy.7 \
+ man/halt.8 man/hostname.5 man/journalctl.1 man/journald.conf.5 \
man/kernel-command-line.7 man/kernel-install.8 \
man/locale.conf.5 man/localtime.5 man/machine-id.5 \
man/machine-info.5 man/os-release.5 man/runlevel.8 \
man/systemd-activate.8 man/systemd-analyze.1 \
man/systemd-ask-password-console.service.8 \
man/systemd-ask-password.1 man/systemd-cat.1 \
- man/systemd-cgls.1 man/systemd-cgtop.1 man/systemd-delta.1 \
+ man/systemd-cgls.1 man/systemd-cgtop.1 \
+ man/systemd-debug-generator.8 man/systemd-delta.1 \
man/systemd-detect-virt.1 man/systemd-efi-boot-generator.8 \
man/systemd-fsck@.service.8 man/systemd-fstab-generator.8 \
man/systemd-getty-generator.8 man/systemd-gpt-auto-generator.8 \
man/systemd-halt.service.8 man/systemd-inhibit.1 \
man/systemd-initctl.service.8 man/systemd-journald.service.8 \
man/systemd-machine-id-setup.1 man/systemd-notify.1 \
- man/systemd-nspawn.1 man/systemd-remount-fs.service.8 \
- man/systemd-run.1 man/systemd-shutdownd.service.8 \
- man/systemd-sleep.conf.5 man/systemd-socket-proxyd.8 \
- man/systemd-suspend.service.8 man/systemd-sysctl.service.8 \
+ man/systemd-nspawn.1 man/systemd-path.1 \
+ man/systemd-remount-fs.service.8 man/systemd-run.1 \
+ man/systemd-shutdownd.service.8 man/systemd-sleep.conf.5 \
+ man/systemd-socket-proxyd.8 man/systemd-suspend.service.8 \
+ man/systemd-sysctl.service.8 \
man/systemd-system-update-generator.8 \
- man/systemd-system.conf.5 man/systemd-tmpfiles.8 \
- man/systemd-tty-ask-password-agent.1 \
- man/systemd-udevd.service.8 man/systemd-update-utmp.service.8 \
- man/systemd.1 man/systemd.automount.5 man/systemd.device.5 \
+ man/systemd-system.conf.5 man/systemd-sysusers.8 \
+ man/systemd-tmpfiles.8 man/systemd-tty-ask-password-agent.1 \
+ man/systemd-udevd.service.8 man/systemd-update-done.service.8 \
+ man/systemd-update-utmp.service.8 man/systemd.1 \
+ man/systemd.automount.5 man/systemd.device.5 \
man/systemd.exec.5 man/systemd.journal-fields.7 \
man/systemd.kill.5 man/systemd.link.5 man/systemd.mount.5 \
man/systemd.path.5 man/systemd.preset.5 \
man/systemd.snapshot.5 man/systemd.socket.5 \
man/systemd.special.7 man/systemd.swap.5 man/systemd.target.5 \
man/systemd.time.7 man/systemd.timer.5 man/systemd.unit.5 \
- man/telinit.8 man/tmpfiles.d.5 man/udev.7 man/udevadm.8 \
- $(am__append_3) $(am__append_5) $(am__append_7) \
+ man/sysusers.d.5 man/telinit.8 man/tmpfiles.d.5 man/udev.7 \
+ man/udevadm.8 $(am__append_3) $(am__append_5) $(am__append_7) \
$(am__append_9) $(am__append_11) $(am__append_13) \
$(am__append_15) $(am__append_17) $(am__append_19) \
$(am__append_21) $(am__append_23) $(am__append_25) \
man/systemd-fsck-root.service.8 man/systemd-fsck.8 \
man/systemd-hibernate.service.8 \
man/systemd-hybrid-sleep.service.8 man/systemd-initctl.8 \
- man/systemd-initctl.socket.8 man/systemd-journald.8 \
+ man/systemd-initctl.socket.8 \
+ man/systemd-journald-dev-log.socket.8 man/systemd-journald.8 \
man/systemd-journald.socket.8 man/systemd-kexec.service.8 \
man/systemd-poweroff.service.8 man/systemd-reboot.service.8 \
man/systemd-remount-fs.8 man/systemd-shutdown.8 \
man/systemd-shutdownd.8 man/systemd-shutdownd.socket.8 \
man/systemd-sleep.8 man/systemd-sysctl.8 \
+ man/systemd-sysusers.service.8 \
man/systemd-tmpfiles-clean.service.8 \
man/systemd-tmpfiles-clean.timer.8 \
man/systemd-tmpfiles-setup-dev.service.8 \
man/systemd-tmpfiles-setup.service.8 \
man/systemd-udevd-control.socket.8 \
man/systemd-udevd-kernel.socket.8 man/systemd-udevd.8 \
+ man/systemd-update-done.8 \
man/systemd-update-utmp-runlevel.service.8 \
man/systemd-update-utmp.8 man/systemd-user.conf.5 \
$(am__append_4) $(am__append_6) $(am__append_8) \
src/shared/bus-label.c \
src/shared/bus-label.h \
src/shared/gpt.h \
- src/shared/generator.h \
- src/shared/generator.c \
src/shared/clean-ipc.h \
src/shared/clean-ipc.c \
src/shared/login-shared.c \
src/shared/eventfd-util.c \
src/shared/eventfd-util.h \
src/shared/copy.c \
- src/shared/copy.h
+ src/shared/copy.h \
+ src/shared/base-filesystem.c \
+ src/shared/base-filesystem.h
nodist_libsystemd_shared_la_SOURCES = \
src/shared/errno-from-name.h \
libsystemd_shared_la_CFLAGS = \
$(AM_CFLAGS) \
- $(SECCOMP_CFLAGS)
+ $(SECCOMP_CFLAGS) \
+ -pthread
libsystemd_units_la_SOURCES = \
src/shared/install.c \
src/shared/fileio-label.c \
src/shared/fileio-label.h \
src/shared/dev-setup.c \
- src/shared/dev-setup.h
+ src/shared/dev-setup.h \
+ src/shared/dropin.c \
+ src/shared/dropin.h \
+ src/shared/generator.h \
+ src/shared/generator.c
libsystemd_label_la_CFLAGS = \
$(AM_CFLAGS) \
test_utf8_LDADD = \
libsystemd-shared.la
+test_capability_SOURCES = \
+ src/test/test-capability.c
+
+test_capability_LDADD = \
+ libsystemd-shared.la \
+ libsystemd-capability.la
+
+test_async_SOURCES = \
+ src/test/test-async.c
+
+test_async_LDADD = \
+ libsystemd-shared.la
+
+test_fdset_SOURCES = \
+ src/test/test-fdset.c
+
+test_fdset_LDADD = \
+ libsystemd-core.la
+
+test_ratelimit_SOURCES = \
+ src/test/test-ratelimit.c
+
+test_ratelimit_LDADD = \
+ libsystemd-shared.la
+
test_util_SOURCES = \
src/test/test-util.c
test_util_LDADD = \
libsystemd-core.la
+test_socket_util_SOURCES = \
+ src/test/test-socket-util.c
+
+test_socket_util_LDADD = \
+ libsystemd-core.la
+
test_ring_SOURCES = \
src/test/test-ring.c
libsystemd-core.la \
$(RT_LIBS)
+test_conf_files_SOURCES = \
+ src/test/test-conf-files.c
+
+test_conf_files_LDADD = \
+ libsystemd-shared.la
+
coverage_dir = coverage
coverage_opts = --base-directory $(srcdir) --directory $(builddir) --rc 'geninfo_adjust_src_path=$(abspath $(srcdir))=>$(abspath $(builddir))'
$(AUDIT_LIBS)
+# ------------------------------------------------------------------------------
+systemd_update_done_SOURCES = \
+ src/update-done/update-done.c
+
+systemd_update_done_LDADD = \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
+
# ------------------------------------------------------------------------------
systemd_shutdownd_SOURCES = \
src/shutdownd/shutdownd.c
@ENABLE_TMPFILES_TRUE@dist_tmpfiles_DATA = tmpfiles.d/systemd.conf \
@ENABLE_TMPFILES_TRUE@ tmpfiles.d/systemd-nologin.conf \
@ENABLE_TMPFILES_TRUE@ tmpfiles.d/tmp.conf tmpfiles.d/x11.conf \
-@ENABLE_TMPFILES_TRUE@ tmpfiles.d/var.conf $(am__append_72)
+@ENABLE_TMPFILES_TRUE@ tmpfiles.d/var.conf tmpfiles.d/etc.conf \
+@ENABLE_TMPFILES_TRUE@ $(am__append_72)
+
+# ------------------------------------------------------------------------------
+@ENABLE_SYSUSERS_TRUE@systemd_sysusers_SOURCES = \
+@ENABLE_SYSUSERS_TRUE@ src/sysusers/sysusers.c
+
+@ENABLE_SYSUSERS_TRUE@systemd_sysusers_LDADD = \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-units.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-label.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-capability.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-internal.la \
+@ENABLE_SYSUSERS_TRUE@ libsystemd-shared.la
+
+@ENABLE_SYSUSERS_TRUE@dist_sysusers_DATA = \
+@ENABLE_SYSUSERS_TRUE@ sysusers.d/systemd.conf
+
+@ENABLE_SYSUSERS_TRUE@nodist_sysusers_DATA = \
+@ENABLE_SYSUSERS_TRUE@ sysusers.d/basic.conf
+
# ------------------------------------------------------------------------------
systemd_machine_id_setup_SOURCES = \
libsystemd-shared.la
+# ------------------------------------------------------------------------------
+systemd_debug_generator_SOURCES = \
+ src/debug-generator/debug-generator.c
+
+systemd_debug_generator_LDADD = \
+ libsystemd-label.la \
+ libsystemd-shared.la
+
+
# ------------------------------------------------------------------------------
systemd_fstab_generator_SOURCES = \
src/fstab-generator/fstab-generator.c \
libsystemd-shared.la
+# ------------------------------------------------------------------------------
+systemd_path_SOURCES = \
+ src/path/path.c
+
+systemd_path_LDADD = \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
+
# ------------------------------------------------------------------------------
systemd_ask_password_SOURCES = \
src/ask-password/ask-password.c
systemd_nspawn_LDADD = libsystemd-label.la libsystemd-capability.la \
libsystemd-internal.la libudev-internal.la \
- libsystemd-shared.la $(BLKID_LIBS) $(am__append_85)
+ libsystemd-shared.la $(BLKID_LIBS) $(am__append_91)
# ------------------------------------------------------------------------------
systemd_run_SOURCES = \
src/systemd/sd-login.h \
src/systemd/sd-id128.h \
src/systemd/sd-daemon.h \
+ src/systemd/sd-path.h \
src/libsystemd/sd-bus/sd-bus.c \
src/libsystemd/sd-bus/bus-control.c \
src/libsystemd/sd-bus/bus-control.h \
src/libsystemd/sd-rtnl/rtnl-util.c \
src/libsystemd/sd-id128/sd-id128.c \
src/libsystemd/sd-daemon/sd-daemon.c \
- src/libsystemd/sd-login/sd-login.c
+ src/libsystemd/sd-login/sd-login.c \
+ src/libsystemd/sd-path/sd-path.c
nodist_libsystemd_internal_la_SOURCES = \
src/libsystemd/libsystemd.sym \
libsystemd_network_la_SOURCES = \
src/systemd/sd-network.h \
src/systemd/sd-dhcp-client.h \
+ src/systemd/sd-dhcp-server.h \
src/systemd/sd-dhcp-lease.h \
src/systemd/sd-ipv4ll.h \
src/network/sd-network.c \
src/network/network-util.h \
src/libsystemd-network/sd-dhcp-client.c \
+ src/libsystemd-network/sd-dhcp-server.c \
src/libsystemd-network/dhcp-network.c \
src/libsystemd-network/dhcp-option.c \
src/libsystemd-network/dhcp-packet.c \
src/libsystemd-network/dhcp-internal.h \
+ src/libsystemd-network/dhcp-server-internal.h \
src/libsystemd-network/dhcp-protocol.h \
src/libsystemd-network/dhcp-lease-internal.h \
src/libsystemd-network/sd-dhcp-lease.c \
src/libsystemd-network/ipv4ll-packet.c \
src/libsystemd-network/ipv4ll-internal.h \
src/libsystemd-network/network-internal.c \
- src/libsystemd-network/network-internal.h
+ src/libsystemd-network/network-internal.h \
+ src/systemd/sd-icmp6-nd.h \
+ src/systemd/sd-dhcp6-client.h \
+ src/systemd/sd-dhcp6-lease.h \
+ src/libsystemd-network/sd-icmp6-nd.c \
+ src/libsystemd-network/sd-dhcp6-client.c \
+ src/libsystemd-network/dhcp6-internal.h \
+ src/libsystemd-network/dhcp6-protocol.h \
+ src/libsystemd-network/dhcp6-network.c \
+ src/libsystemd-network/dhcp6-option.c \
+ src/libsystemd-network/dhcp6-lease-internal.h \
+ src/libsystemd-network/sd-dhcp6-lease.c
libsystemd_network_la_LIBADD = \
libudev-internal.la \
libsystemd-internal.la \
libsystemd-shared.la
+test_dhcp_server_SOURCES = \
+ src/libsystemd-network/test-dhcp-server.c
+
+test_dhcp_server_LDADD = \
+ libsystemd-network.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
test_ipv4ll_SOURCES = \
src/systemd/sd-ipv4ll.h \
src/libsystemd-network/ipv4ll-internal.h \
libsystemd-internal.la \
libsystemd-shared.la
+test_icmp6_rs_SOURCES = \
+ src/systemd/sd-dhcp6-client.h \
+ src/systemd/sd-icmp6-nd.h \
+ src/libsystemd-network/dhcp6-internal.h \
+ src/libsystemd-network/test-icmp6-rs.c
+
+test_icmp6_rs_LDADD = \
+ libsystemd-network.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
+test_dhcp6_client_SOURCES = \
+ src/systemd/sd-dhcp6-client.h \
+ src/libsystemd-network/dhcp6-internal.h \
+ src/libsystemd-network/test-dhcp6-client.c
+
+test_dhcp6_client_LDADD = \
+ libsystemd-network.la \
+ libsystemd-internal.la \
+ libsystemd-shared.la
+
libudev_la_SOURCES = \
src/libudev/libudev.sym \
src/libudev/libudev-private.h \
src/udev/udev-builtin-path_id.c src/udev/udev-builtin-usb_id.c \
src/udev/net/link-config.h src/udev/net/link-config.c \
src/udev/net/ethtool-util.h src/udev/net/ethtool-util.c \
- $(am__append_92) $(am__append_94) $(am__append_96) \
- $(am__append_97)
+ $(am__append_98) $(am__append_100) $(am__append_102) \
+ $(am__append_103)
nodist_libudev_core_la_SOURCES = \
src/udev/keyboard-keys-from-name.h \
src/udev/keyboard-keys-to-name.h \
libudev_core_la_LIBADD = libudev-internal.la libsystemd-label.la \
libsystemd-internal.la libsystemd-network.la \
libsystemd-shared.la $(BLKID_LIBS) $(KMOD_LIBS) \
- $(am__append_98)
+ $(am__append_104)
libudev_core_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-DFIRMWARE_PATH="$(FIRMWARE_PATH)"
src/test/test-udev.c
test_udev_LDADD = libudev-core.la $(BLKID_LIBS) $(KMOD_LIBS) \
- $(SELINUX_LIBS) $(am__append_99)
+ $(SELINUX_LIBS) $(am__append_105)
# ------------------------------------------------------------------------------
ata_id_SOURCES = \
@ENABLE_GUDEV_TRUE@ src/gudev/gudevenumerator.h
@ENABLE_GUDEV_TRUE@libgudev_1_0_la_SOURCES = \
+@ENABLE_GUDEV_TRUE@ src/gudev/libgudev-1.0.sym \
@ENABLE_GUDEV_TRUE@ src/gudev/gudevenums.h \
@ENABLE_GUDEV_TRUE@ src/gudev/gudevenumtypes.h \
@ENABLE_GUDEV_TRUE@ src/gudev/gudevenumtypes.h\
@ENABLE_GUDEV_TRUE@libgudev_1_0_la_LDFLAGS = \
@ENABLE_GUDEV_TRUE@ $(AM_LDFLAGS) \
@ENABLE_GUDEV_TRUE@ -version-info $(LIBGUDEV_CURRENT):$(LIBGUDEV_REVISION):$(LIBGUDEV_AGE) \
-@ENABLE_GUDEV_TRUE@ -export-dynamic -no-undefined \
-@ENABLE_GUDEV_TRUE@ -export-symbols-regex '^g_udev_.*'
+@ENABLE_GUDEV_TRUE@ -export-dynamic \
+@ENABLE_GUDEV_TRUE@ -no-undefined \
+@ENABLE_GUDEV_TRUE@ -Wl,--version-script=$(top_srcdir)/src/gudev/libgudev-1.0.sym
@ENABLE_GUDEV_TRUE@@HAVE_INTROSPECTION_TRUE@src_gudev_GUdev_1_0_gir_INCLUDES = GObject-2.0
@ENABLE_GUDEV_TRUE@@HAVE_INTROSPECTION_TRUE@src_gudev_GUdev_1_0_gir_CFLAGS = \
@HAVE_MICROHTTPD_TRUE@systemd_journal_remote_LDADD = \
@HAVE_MICROHTTPD_TRUE@ libsystemd-internal.la \
@HAVE_MICROHTTPD_TRUE@ libsystemd-journal-core.la \
-@HAVE_MICROHTTPD_TRUE@ $(MICROHTTPD_LIBS) $(am__append_109)
+@HAVE_MICROHTTPD_TRUE@ $(MICROHTTPD_LIBS) $(am__append_115)
@HAVE_MICROHTTPD_TRUE@systemd_journal_remote_CFLAGS = \
@HAVE_MICROHTTPD_TRUE@ $(AM_CFLAGS) \
@HAVE_MICROHTTPD_TRUE@ $(MICROHTTPD_CFLAGS)
# using _CFLAGS = in the conditional below would suppress AM_CFLAGS
-journalctl_CFLAGS = $(AM_CFLAGS) $(am__append_112)
-journalctl_SOURCES = src/journal/journalctl.c $(am__append_111)
+journalctl_CFLAGS = $(AM_CFLAGS) $(am__append_118)
+journalctl_SOURCES = src/journal/journalctl.c $(am__append_117)
journalctl_LDADD = libsystemd-journal-internal.la \
libsystemd-internal.la libsystemd-logs.la libsystemd-shared.la \
- $(am__append_110) $(am__append_113)
+ $(am__append_116) $(am__append_119)
test_journal_SOURCES = \
src/journal/test-journal.c
test_catalog_LDADD = \
libsystemd-journal-core.la
+@HAVE_XZ_TRUE@test_compress_SOURCES = \
+@HAVE_XZ_TRUE@ src/journal/test-compress.c
+
+@HAVE_XZ_TRUE@test_compress_LDADD = \
+@HAVE_XZ_TRUE@ libsystemd-journal-internal.la \
+@HAVE_XZ_TRUE@ libsystemd-shared.la
+
libsystemd_journal_core_la_SOURCES = \
src/journal/journald-kmsg.c \
src/journal/journald-kmsg.h \
libsystemd_journal_core_la_LIBADD = libsystemd-journal-internal.la \
libudev-internal.la libsystemd-capability.la \
libsystemd-label.la libsystemd-internal.la \
- libsystemd-shared.la $(am__append_114)
+ libsystemd-shared.la $(am__append_120)
libsystemd_journal_internal_la_SOURCES = src/journal/sd-journal.c \
src/systemd/sd-journal.h src/systemd/_sd-common.h \
src/journal/journal-file.c src/journal/journal-file.h \
src/journal/journal-send.c src/journal/journal-def.h \
src/journal/compress.h src/journal/catalog.c \
src/journal/catalog.h src/journal/mmap-cache.c \
- src/journal/mmap-cache.h $(am__append_115) $(am__append_118)
+ src/journal/mmap-cache.h $(am__append_122) $(am__append_125)
# using _CFLAGS = in the conditional below would suppress AM_CFLAGS
-libsystemd_journal_internal_la_CFLAGS = $(am__append_116) \
- $(am__append_120)
-libsystemd_journal_internal_la_LIBADD = $(am__append_117) \
- $(am__append_119)
+libsystemd_journal_internal_la_CFLAGS = $(AM_CFLAGS) $(am__append_123) \
+ $(am__append_127)
+libsystemd_journal_internal_la_LIBADD = $(am__append_124) \
+ $(am__append_126)
dist_catalog_DATA = \
catalog/systemd.fr.catalog \
catalog/systemd.ru.catalog \
@HAVE_MICROHTTPD_TRUE@ libsystemd-journal-internal.la \
@HAVE_MICROHTTPD_TRUE@ libsystemd-internal.la \
@HAVE_MICROHTTPD_TRUE@ libsystemd-shared.la $(MICROHTTPD_LIBS) \
-@HAVE_MICROHTTPD_TRUE@ $(am__append_122)
+@HAVE_MICROHTTPD_TRUE@ $(am__append_129)
@HAVE_MICROHTTPD_TRUE@systemd_journal_gatewayd_CFLAGS = \
@HAVE_MICROHTTPD_TRUE@ $(AM_CFLAGS) \
@HAVE_MICROHTTPD_TRUE@ $(MICROHTTPD_CFLAGS)
# ------------------------------------------------------------------------------
-@ENABLE_COREDUMP_TRUE@systemd_coredump_SOURCES = \
-@ENABLE_COREDUMP_TRUE@ src/journal/coredump.c
-
-@ENABLE_COREDUMP_TRUE@systemd_coredump_LDADD = \
+@ENABLE_COREDUMP_TRUE@systemd_coredump_SOURCES = \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump.c \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump-vacuum.c \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump-vacuum.h \
+@ENABLE_COREDUMP_TRUE@ $(am__append_132)
+@ENABLE_COREDUMP_TRUE@systemd_coredump_LDADD = \
@ENABLE_COREDUMP_TRUE@ libsystemd-journal-internal.la \
@ENABLE_COREDUMP_TRUE@ libsystemd-label.la \
@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
-@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
-
-@ENABLE_COREDUMP_TRUE@systemd_coredumpctl_SOURCES = \
+@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la $(am__append_133) \
+@ENABLE_COREDUMP_TRUE@ $(am__append_136)
+@ENABLE_COREDUMP_TRUE@coredumpctl_SOURCES = \
@ENABLE_COREDUMP_TRUE@ src/journal/coredumpctl.c
-@ENABLE_COREDUMP_TRUE@systemd_coredumpctl_LDADD = \
+@ENABLE_COREDUMP_TRUE@coredumpctl_LDADD = \
@ENABLE_COREDUMP_TRUE@ libsystemd-journal-internal.la \
@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
+@ENABLE_COREDUMP_TRUE@test_coredump_vacuum_SOURCES = \
+@ENABLE_COREDUMP_TRUE@ src/journal/test-coredump-vacuum.c \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump-vacuum.c \
+@ENABLE_COREDUMP_TRUE@ src/journal/coredump-vacuum.h
+
+@ENABLE_COREDUMP_TRUE@test_coredump_vacuum_LDADD = \
+@ENABLE_COREDUMP_TRUE@ libsystemd-internal.la \
+@ENABLE_COREDUMP_TRUE@ libsystemd-shared.la
+
@ENABLE_COREDUMP_TRUE@sysctl_DATA = \
@ENABLE_COREDUMP_TRUE@ sysctl.d/50-coredump.conf
@ENABLE_NETWORKD_TRUE@ src/network/networkd-netdev.c \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-tunnel.c \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-veth.c \
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-vxlan.c \
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-vlan.c \
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-macvlan.c \
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-dummy.c \
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-tuntap.c \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-network.c \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-address.c \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-route.c \
-@ENABLE_NETWORKD_TRUE@ src/network/networkd-manager.c
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-manager.c \
+@ENABLE_NETWORKD_TRUE@ src/network/networkd-address-pool.c
@ENABLE_NETWORKD_TRUE@nodist_libsystemd_networkd_core_la_SOURCES = \
@ENABLE_NETWORKD_TRUE@ src/network/networkd-network-gperf.c \
@ENABLE_LOGIND_TRUE@ src/login/logind-session-dbus.c \
@ENABLE_LOGIND_TRUE@ src/login/logind-seat-dbus.c \
@ENABLE_LOGIND_TRUE@ src/login/logind-user-dbus.c \
-@ENABLE_LOGIND_TRUE@ src/login/logind-acl.h $(am__append_227)
+@ENABLE_LOGIND_TRUE@ src/login/logind-acl.h $(am__append_241)
@ENABLE_LOGIND_TRUE@libsystemd_logind_core_la_LIBADD = \
@ENABLE_LOGIND_TRUE@ libsystemd-label.la \
@ENABLE_LOGIND_TRUE@ libsystemd-capability.la \
@ENABLE_LOGIND_TRUE@ libsystemd-internal.la libudev-internal.la \
-@ENABLE_LOGIND_TRUE@ libsystemd-shared.la $(am__append_228)
+@ENABLE_LOGIND_TRUE@ libsystemd-shared.la $(am__append_242)
@ENABLE_LOGIND_TRUE@systemd_user_sessions_SOURCES = \
@ENABLE_LOGIND_TRUE@ src/login/user-sessions.c
@ENABLE_LOGIND_TRUE@ libsystemd-logind-core.la
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@pam_systemd_la_SOURCES = \
-@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ src/login/pam-module.c
+@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ src/login/pam_systemd.sym \
+@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ src/login/pam_systemd.c
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@pam_systemd_la_CFLAGS = \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ $(AM_CFLAGS) \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ -export-dynamic \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ -avoid-version \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ -shared \
-@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ -export-symbols-regex '^pam_sm_.*'
+@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ -Wl,--version-script=$(top_srcdir)/src/login/pam_systemd.sym
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@pam_systemd_la_LIBADD = \
@ENABLE_LOGIND_TRUE@@HAVE_PAM_TRUE@ libsystemd-capability.la \
@HAVE_PYTHON_DEVEL_TRUE@id128_la_SOURCES = \
@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/id128.c \
-@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/id128-constants.h \
@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/pyutil.c \
@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/pyutil.h
+@HAVE_PYTHON_DEVEL_TRUE@nodist_id128_la_SOURCES = \
+@HAVE_PYTHON_DEVEL_TRUE@ src/python-systemd/id128-constants.h
+
@HAVE_PYTHON_DEVEL_TRUE@id128_la_CFLAGS = \
@HAVE_PYTHON_DEVEL_TRUE@ $(AM_CFLAGS) \
@HAVE_PYTHON_DEVEL_TRUE@ -fvisibility=default \
'|udevrulesdir=$(udevrulesdir)|' \
'|catalogdir=$(catalogdir)|' \
'|tmpfilesdir=$(tmpfilesdir)|' \
+ '|sysusersdir=$(sysusersdir)|' \
'|sysctldir=$(sysctldir)|' \
'|systemgeneratordir=$(systemgeneratordir)|' \
'|usergeneratordir=$(usergeneratordir)|' \
'|NTP_SERVERS=$(NTP_SERVERS)|' \
'|DNS_SERVERS=$(DNS_SERVERS)|' \
'|systemuidmax=$(SYSTEM_UID_MAX)|' \
- '|systemgidmax=$(SYSTEM_GID_MAX)|'
+ '|systemgidmax=$(SYSTEM_GID_MAX)|' \
+ '|TTY_GID=$(TTY_GID)|' \
+ '|systemsleepdir=$(systemsleepdir)|' \
+ '|systemshutdowndir=$(systemshutdowndir)|' \
+ '|binfmtdir=$(binfmtdir)|' \
+ '|modulesloaddir=$(modulesloaddir)|'
SED_PROCESS = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) \
< $< > $@
-@ENABLE_POLKIT_TRUE@nodist_polkitpolicy_DATA = \
+@ENABLE_POLKIT_TRUE@dist_polkitpolicy_DATA = \
@ENABLE_POLKIT_TRUE@ $(polkitpolicy_files) \
@ENABLE_POLKIT_TRUE@ $(polkitpolicy_in_in_files:.policy.in.in=.policy)
--with-pamlibdir=$$dc_install_base/$(pamlibdir) \
--with-pamconfdir=$$dc_install_base/$(pamconfdir) \
--with-rootprefix=$$dc_install_base --disable-split-usr \
- --enable-kdbus --enable-compat-libs $(am__append_266) \
- $(am__append_267) $(am__append_268)
+ --enable-kdbus --enable-compat-libs $(am__append_280) \
+ $(am__append_281) $(am__append_282) $(am__append_283)
www_target = www.freedesktop.org:/srv/www.freedesktop.org/www/software/systemd
OBJECT_VARIABLES := $(filter %_OBJECTS,$(.VARIABLES))
ALL_OBJECTS := $(foreach v,$(OBJECT_VARIABLES),$($(v)))
src/libsystemd/sd-login/libsystemd_internal_la-sd-login.lo: \
src/libsystemd/sd-login/$(am__dirstamp) \
src/libsystemd/sd-login/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd/sd-path/$(am__dirstamp):
+ @$(MKDIR_P) src/libsystemd/sd-path
+ @: > src/libsystemd/sd-path/$(am__dirstamp)
+src/libsystemd/sd-path/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/libsystemd/sd-path/$(DEPDIR)
+ @: > src/libsystemd/sd-path/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo: \
+ src/libsystemd/sd-path/$(am__dirstamp) \
+ src/libsystemd/sd-path/$(DEPDIR)/$(am__dirstamp)
src/libsystemd/sd-bus/libsystemd_internal_la-bus-error-mapping.lo: \
src/libsystemd/sd-bus/$(am__dirstamp) \
src/libsystemd/sd-bus/$(DEPDIR)/$(am__dirstamp)
src/shared/libsystemd_label_la-dev-setup.lo: \
src/shared/$(am__dirstamp) \
src/shared/$(DEPDIR)/$(am__dirstamp)
+src/shared/libsystemd_label_la-dropin.lo: src/shared/$(am__dirstamp) \
+ src/shared/$(DEPDIR)/$(am__dirstamp)
+src/shared/libsystemd_label_la-generator.lo: \
+ src/shared/$(am__dirstamp) \
+ src/shared/$(DEPDIR)/$(am__dirstamp)
libsystemd-label.la: $(libsystemd_label_la_OBJECTS) $(libsystemd_label_la_DEPENDENCIES) $(EXTRA_libsystemd_label_la_DEPENDENCIES)
$(AM_V_CCLD)$(libsystemd_label_la_LINK) $(libsystemd_label_la_OBJECTS) $(libsystemd_label_la_LIBADD) $(LIBS)
src/libsystemd-network/libsystemd_network_la-sd-dhcp-client.lo: \
src/libsystemd-network/$(am__dirstamp) \
src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo: \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
src/libsystemd-network/libsystemd_network_la-dhcp-network.lo: \
src/libsystemd-network/$(am__dirstamp) \
src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
src/libsystemd-network/libsystemd_network_la-network-internal.lo: \
src/libsystemd-network/$(am__dirstamp) \
src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo: \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo: \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo: \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo: \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo: \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
libsystemd-network.la: $(libsystemd_network_la_OBJECTS) $(libsystemd_network_la_DEPENDENCIES) $(EXTRA_libsystemd_network_la_DEPENDENCIES)
$(AM_V_CCLD)$(libsystemd_network_la_LINK) $(libsystemd_network_la_OBJECTS) $(libsystemd_network_la_LIBADD) $(LIBS)
src/network/libsystemd_networkd_core_la-networkd-veth.lo: \
src/network/$(am__dirstamp) \
src/network/$(DEPDIR)/$(am__dirstamp)
+src/network/libsystemd_networkd_core_la-networkd-vxlan.lo: \
+ src/network/$(am__dirstamp) \
+ src/network/$(DEPDIR)/$(am__dirstamp)
+src/network/libsystemd_networkd_core_la-networkd-vlan.lo: \
+ src/network/$(am__dirstamp) \
+ src/network/$(DEPDIR)/$(am__dirstamp)
+src/network/libsystemd_networkd_core_la-networkd-macvlan.lo: \
+ src/network/$(am__dirstamp) \
+ src/network/$(DEPDIR)/$(am__dirstamp)
+src/network/libsystemd_networkd_core_la-networkd-dummy.lo: \
+ src/network/$(am__dirstamp) \
+ src/network/$(DEPDIR)/$(am__dirstamp)
+src/network/libsystemd_networkd_core_la-networkd-tuntap.lo: \
+ src/network/$(am__dirstamp) \
+ src/network/$(DEPDIR)/$(am__dirstamp)
src/network/libsystemd_networkd_core_la-networkd-network.lo: \
src/network/$(am__dirstamp) \
src/network/$(DEPDIR)/$(am__dirstamp)
src/network/libsystemd_networkd_core_la-networkd-manager.lo: \
src/network/$(am__dirstamp) \
src/network/$(DEPDIR)/$(am__dirstamp)
+src/network/libsystemd_networkd_core_la-networkd-address-pool.lo: \
+ src/network/$(am__dirstamp) \
+ src/network/$(DEPDIR)/$(am__dirstamp)
src/network/libsystemd_networkd_core_la-networkd-network-gperf.lo: \
src/network/$(am__dirstamp) \
src/network/$(DEPDIR)/$(am__dirstamp)
src/shared/libsystemd_shared_la-bus-label.lo: \
src/shared/$(am__dirstamp) \
src/shared/$(DEPDIR)/$(am__dirstamp)
-src/shared/libsystemd_shared_la-generator.lo: \
- src/shared/$(am__dirstamp) \
- src/shared/$(DEPDIR)/$(am__dirstamp)
src/shared/libsystemd_shared_la-clean-ipc.lo: \
src/shared/$(am__dirstamp) \
src/shared/$(DEPDIR)/$(am__dirstamp)
src/shared/$(DEPDIR)/$(am__dirstamp)
src/shared/libsystemd_shared_la-copy.lo: src/shared/$(am__dirstamp) \
src/shared/$(DEPDIR)/$(am__dirstamp)
+src/shared/libsystemd_shared_la-base-filesystem.lo: \
+ src/shared/$(am__dirstamp) \
+ src/shared/$(DEPDIR)/$(am__dirstamp)
libsystemd-shared.la: $(libsystemd_shared_la_OBJECTS) $(libsystemd_shared_la_DEPENDENCIES) $(EXTRA_libsystemd_shared_la_DEPENDENCIES)
$(AM_V_CCLD)$(libsystemd_shared_la_LINK) $(libsystemd_shared_la_OBJECTS) $(libsystemd_shared_la_LIBADD) $(LIBS)
src/libsystemd/sd-login/libsystemd_la-sd-login.lo: \
src/libsystemd/sd-login/$(am__dirstamp) \
src/libsystemd/sd-login/$(DEPDIR)/$(am__dirstamp)
+src/libsystemd/sd-path/libsystemd_la-sd-path.lo: \
+ src/libsystemd/sd-path/$(am__dirstamp) \
+ src/libsystemd/sd-path/$(DEPDIR)/$(am__dirstamp)
src/libsystemd/sd-resolve/libsystemd_la-sd-resolve.lo: \
src/libsystemd/sd-resolve/$(am__dirstamp) \
src/libsystemd/sd-resolve/$(DEPDIR)/$(am__dirstamp)
login.la: $(login_la_OBJECTS) $(login_la_DEPENDENCIES) $(EXTRA_login_la_DEPENDENCIES)
$(AM_V_CCLD)$(login_la_LINK) $(am_login_la_rpath) $(login_la_OBJECTS) $(login_la_LIBADD) $(LIBS)
-src/login/pam_systemd_la-pam-module.lo: src/login/$(am__dirstamp) \
+src/login/pam_systemd_la-pam_systemd.lo: src/login/$(am__dirstamp) \
src/login/$(DEPDIR)/$(am__dirstamp)
pam_systemd.la: $(pam_systemd_la_OBJECTS) $(pam_systemd_la_DEPENDENCIES) $(EXTRA_pam_systemd_la_DEPENDENCIES)
collect$(EXEEXT): $(collect_OBJECTS) $(collect_DEPENDENCIES) $(EXTRA_collect_DEPENDENCIES)
@rm -f collect$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(collect_OBJECTS) $(collect_LDADD) $(LIBS)
+src/journal/coredumpctl.$(OBJEXT): src/journal/$(am__dirstamp) \
+ src/journal/$(DEPDIR)/$(am__dirstamp)
+
+coredumpctl$(EXEEXT): $(coredumpctl_OBJECTS) $(coredumpctl_DEPENDENCIES) $(EXTRA_coredumpctl_DEPENDENCIES)
+ @rm -f coredumpctl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(coredumpctl_OBJECTS) $(coredumpctl_LDADD) $(LIBS)
src/hostname/$(am__dirstamp):
@$(MKDIR_P) src/hostname
@: > src/hostname/$(am__dirstamp)
$(AM_V_CCLD)$(LINK) $(systemd_cgtop_OBJECTS) $(systemd_cgtop_LDADD) $(LIBS)
src/journal/coredump.$(OBJEXT): src/journal/$(am__dirstamp) \
src/journal/$(DEPDIR)/$(am__dirstamp)
+src/journal/coredump-vacuum.$(OBJEXT): src/journal/$(am__dirstamp) \
+ src/journal/$(DEPDIR)/$(am__dirstamp)
+src/journal/stacktrace.$(OBJEXT): src/journal/$(am__dirstamp) \
+ src/journal/$(DEPDIR)/$(am__dirstamp)
systemd-coredump$(EXEEXT): $(systemd_coredump_OBJECTS) $(systemd_coredump_DEPENDENCIES) $(EXTRA_systemd_coredump_DEPENDENCIES)
@rm -f systemd-coredump$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(systemd_coredump_OBJECTS) $(systemd_coredump_LDADD) $(LIBS)
-src/journal/coredumpctl.$(OBJEXT): src/journal/$(am__dirstamp) \
- src/journal/$(DEPDIR)/$(am__dirstamp)
-
-systemd-coredumpctl$(EXEEXT): $(systemd_coredumpctl_OBJECTS) $(systemd_coredumpctl_DEPENDENCIES) $(EXTRA_systemd_coredumpctl_DEPENDENCIES)
- @rm -f systemd-coredumpctl$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(systemd_coredumpctl_OBJECTS) $(systemd_coredumpctl_LDADD) $(LIBS)
src/cryptsetup/$(am__dirstamp):
@$(MKDIR_P) src/cryptsetup
@: > src/cryptsetup/$(am__dirstamp)
systemd-dbus1-generator$(EXEEXT): $(systemd_dbus1_generator_OBJECTS) $(systemd_dbus1_generator_DEPENDENCIES) $(EXTRA_systemd_dbus1_generator_DEPENDENCIES)
@rm -f systemd-dbus1-generator$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(systemd_dbus1_generator_OBJECTS) $(systemd_dbus1_generator_LDADD) $(LIBS)
+src/debug-generator/$(am__dirstamp):
+ @$(MKDIR_P) src/debug-generator
+ @: > src/debug-generator/$(am__dirstamp)
+src/debug-generator/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/debug-generator/$(DEPDIR)
+ @: > src/debug-generator/$(DEPDIR)/$(am__dirstamp)
+src/debug-generator/debug-generator.$(OBJEXT): \
+ src/debug-generator/$(am__dirstamp) \
+ src/debug-generator/$(DEPDIR)/$(am__dirstamp)
+
+systemd-debug-generator$(EXEEXT): $(systemd_debug_generator_OBJECTS) $(systemd_debug_generator_DEPENDENCIES) $(EXTRA_systemd_debug_generator_DEPENDENCIES)
+ @rm -f systemd-debug-generator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(systemd_debug_generator_OBJECTS) $(systemd_debug_generator_LDADD) $(LIBS)
src/delta/$(am__dirstamp):
@$(MKDIR_P) src/delta
@: > src/delta/$(am__dirstamp)
systemd-nspawn$(EXEEXT): $(systemd_nspawn_OBJECTS) $(systemd_nspawn_DEPENDENCIES) $(EXTRA_systemd_nspawn_DEPENDENCIES)
@rm -f systemd-nspawn$(EXEEXT)
$(AM_V_CCLD)$(systemd_nspawn_LINK) $(systemd_nspawn_OBJECTS) $(systemd_nspawn_LDADD) $(LIBS)
+src/path/$(am__dirstamp):
+ @$(MKDIR_P) src/path
+ @: > src/path/$(am__dirstamp)
+src/path/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/path/$(DEPDIR)
+ @: > src/path/$(DEPDIR)/$(am__dirstamp)
+src/path/path.$(OBJEXT): src/path/$(am__dirstamp) \
+ src/path/$(DEPDIR)/$(am__dirstamp)
+
+systemd-path$(EXEEXT): $(systemd_path_OBJECTS) $(systemd_path_DEPENDENCIES) $(EXTRA_systemd_path_DEPENDENCIES)
+ @rm -f systemd-path$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(systemd_path_OBJECTS) $(systemd_path_LDADD) $(LIBS)
src/quotacheck/$(am__dirstamp):
@$(MKDIR_P) src/quotacheck
@: > src/quotacheck/$(am__dirstamp)
systemd-system-update-generator$(EXEEXT): $(systemd_system_update_generator_OBJECTS) $(systemd_system_update_generator_DEPENDENCIES) $(EXTRA_systemd_system_update_generator_DEPENDENCIES)
@rm -f systemd-system-update-generator$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(systemd_system_update_generator_OBJECTS) $(systemd_system_update_generator_LDADD) $(LIBS)
+src/sysusers/$(am__dirstamp):
+ @$(MKDIR_P) src/sysusers
+ @: > src/sysusers/$(am__dirstamp)
+src/sysusers/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/sysusers/$(DEPDIR)
+ @: > src/sysusers/$(DEPDIR)/$(am__dirstamp)
+src/sysusers/sysusers.$(OBJEXT): src/sysusers/$(am__dirstamp) \
+ src/sysusers/$(DEPDIR)/$(am__dirstamp)
+
+systemd-sysusers$(EXEEXT): $(systemd_sysusers_OBJECTS) $(systemd_sysusers_DEPENDENCIES) $(EXTRA_systemd_sysusers_DEPENDENCIES)
+ @rm -f systemd-sysusers$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(systemd_sysusers_OBJECTS) $(systemd_sysusers_LDADD) $(LIBS)
src/sysv-generator/$(am__dirstamp):
@$(MKDIR_P) src/sysv-generator
@: > src/sysv-generator/$(am__dirstamp)
systemd-udevd$(EXEEXT): $(systemd_udevd_OBJECTS) $(systemd_udevd_DEPENDENCIES) $(EXTRA_systemd_udevd_DEPENDENCIES)
@rm -f systemd-udevd$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(systemd_udevd_OBJECTS) $(systemd_udevd_LDADD) $(LIBS)
+src/update-done/$(am__dirstamp):
+ @$(MKDIR_P) src/update-done
+ @: > src/update-done/$(am__dirstamp)
+src/update-done/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/update-done/$(DEPDIR)
+ @: > src/update-done/$(DEPDIR)/$(am__dirstamp)
+src/update-done/update-done.$(OBJEXT): \
+ src/update-done/$(am__dirstamp) \
+ src/update-done/$(DEPDIR)/$(am__dirstamp)
+
+systemd-update-done$(EXEEXT): $(systemd_update_done_OBJECTS) $(systemd_update_done_DEPENDENCIES) $(EXTRA_systemd_update_done_DEPENDENCIES)
+ @rm -f systemd-update-done$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(systemd_update_done_OBJECTS) $(systemd_update_done_LDADD) $(LIBS)
src/update-utmp/$(am__dirstamp):
@$(MKDIR_P) src/update-utmp
@: > src/update-utmp/$(am__dirstamp)
test-architecture$(EXEEXT): $(test_architecture_OBJECTS) $(test_architecture_DEPENDENCIES) $(EXTRA_test_architecture_DEPENDENCIES)
@rm -f test-architecture$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_architecture_OBJECTS) $(test_architecture_LDADD) $(LIBS)
+src/test/test-async.$(OBJEXT): src/test/$(am__dirstamp) \
+ src/test/$(DEPDIR)/$(am__dirstamp)
+
+test-async$(EXEEXT): $(test_async_OBJECTS) $(test_async_DEPENDENCIES) $(EXTRA_test_async_DEPENDENCIES)
+ @rm -f test-async$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_async_OBJECTS) $(test_async_LDADD) $(LIBS)
src/test/test-boot-timestamps.$(OBJEXT): src/test/$(am__dirstamp) \
src/test/$(DEPDIR)/$(am__dirstamp)
test-calendarspec$(EXEEXT): $(test_calendarspec_OBJECTS) $(test_calendarspec_DEPENDENCIES) $(EXTRA_test_calendarspec_DEPENDENCIES)
@rm -f test-calendarspec$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_calendarspec_OBJECTS) $(test_calendarspec_LDADD) $(LIBS)
+src/test/test-capability.$(OBJEXT): src/test/$(am__dirstamp) \
+ src/test/$(DEPDIR)/$(am__dirstamp)
+
+test-capability$(EXEEXT): $(test_capability_OBJECTS) $(test_capability_DEPENDENCIES) $(EXTRA_test_capability_DEPENDENCIES)
+ @rm -f test-capability$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_capability_OBJECTS) $(test_capability_LDADD) $(LIBS)
src/journal/test_catalog-test-catalog.$(OBJEXT): \
src/journal/$(am__dirstamp) \
src/journal/$(DEPDIR)/$(am__dirstamp)
test-cgroup-util$(EXEEXT): $(test_cgroup_util_OBJECTS) $(test_cgroup_util_DEPENDENCIES) $(EXTRA_test_cgroup_util_DEPENDENCIES)
@rm -f test-cgroup-util$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_cgroup_util_OBJECTS) $(test_cgroup_util_LDADD) $(LIBS)
+src/journal/test-compress.$(OBJEXT): src/journal/$(am__dirstamp) \
+ src/journal/$(DEPDIR)/$(am__dirstamp)
+
+test-compress$(EXEEXT): $(test_compress_OBJECTS) $(test_compress_DEPENDENCIES) $(EXTRA_test_compress_DEPENDENCIES)
+ @rm -f test-compress$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_compress_OBJECTS) $(test_compress_LDADD) $(LIBS)
+src/test/test-conf-files.$(OBJEXT): src/test/$(am__dirstamp) \
+ src/test/$(DEPDIR)/$(am__dirstamp)
+
+test-conf-files$(EXEEXT): $(test_conf_files_OBJECTS) $(test_conf_files_DEPENDENCIES) $(EXTRA_test_conf_files_DEPENDENCIES)
+ @rm -f test-conf-files$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_conf_files_OBJECTS) $(test_conf_files_LDADD) $(LIBS)
+src/journal/test-coredump-vacuum.$(OBJEXT): \
+ src/journal/$(am__dirstamp) \
+ src/journal/$(DEPDIR)/$(am__dirstamp)
+
+test-coredump-vacuum$(EXEEXT): $(test_coredump_vacuum_OBJECTS) $(test_coredump_vacuum_DEPENDENCIES) $(EXTRA_test_coredump_vacuum_DEPENDENCIES)
+ @rm -f test-coredump-vacuum$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_coredump_vacuum_OBJECTS) $(test_coredump_vacuum_LDADD) $(LIBS)
src/test/test-daemon.$(OBJEXT): src/test/$(am__dirstamp) \
src/test/$(DEPDIR)/$(am__dirstamp)
test-dhcp-option$(EXEEXT): $(test_dhcp_option_OBJECTS) $(test_dhcp_option_DEPENDENCIES) $(EXTRA_test_dhcp_option_DEPENDENCIES)
@rm -f test-dhcp-option$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_dhcp_option_OBJECTS) $(test_dhcp_option_LDADD) $(LIBS)
+src/libsystemd-network/test-dhcp-server.$(OBJEXT): \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+
+test-dhcp-server$(EXEEXT): $(test_dhcp_server_OBJECTS) $(test_dhcp_server_DEPENDENCIES) $(EXTRA_test_dhcp_server_DEPENDENCIES)
+ @rm -f test-dhcp-server$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_dhcp_server_OBJECTS) $(test_dhcp_server_LDADD) $(LIBS)
+src/libsystemd-network/test-dhcp6-client.$(OBJEXT): \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+
+test-dhcp6-client$(EXEEXT): $(test_dhcp6_client_OBJECTS) $(test_dhcp6_client_DEPENDENCIES) $(EXTRA_test_dhcp6_client_DEPENDENCIES)
+ @rm -f test-dhcp6-client$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_dhcp6_client_OBJECTS) $(test_dhcp6_client_LDADD) $(LIBS)
src/test/test-ellipsize.$(OBJEXT): src/test/$(am__dirstamp) \
src/test/$(DEPDIR)/$(am__dirstamp)
test-event$(EXEEXT): $(test_event_OBJECTS) $(test_event_DEPENDENCIES) $(EXTRA_test_event_DEPENDENCIES)
@rm -f test-event$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_event_OBJECTS) $(test_event_LDADD) $(LIBS)
+src/test/test-fdset.$(OBJEXT): src/test/$(am__dirstamp) \
+ src/test/$(DEPDIR)/$(am__dirstamp)
+
+test-fdset$(EXEEXT): $(test_fdset_OBJECTS) $(test_fdset_DEPENDENCIES) $(EXTRA_test_fdset_DEPENDENCIES)
+ @rm -f test-fdset$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_fdset_OBJECTS) $(test_fdset_LDADD) $(LIBS)
src/test/test-fileio.$(OBJEXT): src/test/$(am__dirstamp) \
src/test/$(DEPDIR)/$(am__dirstamp)
test-hostname$(EXEEXT): $(test_hostname_OBJECTS) $(test_hostname_DEPENDENCIES) $(EXTRA_test_hostname_DEPENDENCIES)
@rm -f test-hostname$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_hostname_OBJECTS) $(test_hostname_LDADD) $(LIBS)
+src/libsystemd-network/test-icmp6-rs.$(OBJEXT): \
+ src/libsystemd-network/$(am__dirstamp) \
+ src/libsystemd-network/$(DEPDIR)/$(am__dirstamp)
+
+test-icmp6-rs$(EXEEXT): $(test_icmp6_rs_OBJECTS) $(test_icmp6_rs_DEPENDENCIES) $(EXTRA_test_icmp6_rs_DEPENDENCIES)
+ @rm -f test-icmp6-rs$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_icmp6_rs_OBJECTS) $(test_icmp6_rs_LDADD) $(LIBS)
src/test/test-id128.$(OBJEXT): src/test/$(am__dirstamp) \
src/test/$(DEPDIR)/$(am__dirstamp)
test-prioq$(EXEEXT): $(test_prioq_OBJECTS) $(test_prioq_DEPENDENCIES) $(EXTRA_test_prioq_DEPENDENCIES)
@rm -f test-prioq$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_prioq_OBJECTS) $(test_prioq_LDADD) $(LIBS)
+src/test/test-ratelimit.$(OBJEXT): src/test/$(am__dirstamp) \
+ src/test/$(DEPDIR)/$(am__dirstamp)
+
+test-ratelimit$(EXEEXT): $(test_ratelimit_OBJECTS) $(test_ratelimit_DEPENDENCIES) $(EXTRA_test_ratelimit_DEPENDENCIES)
+ @rm -f test-ratelimit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ratelimit_OBJECTS) $(test_ratelimit_LDADD) $(LIBS)
src/test/test-replace-var.$(OBJEXT): src/test/$(am__dirstamp) \
src/test/$(DEPDIR)/$(am__dirstamp)
test-sleep$(EXEEXT): $(test_sleep_OBJECTS) $(test_sleep_DEPENDENCIES) $(EXTRA_test_sleep_DEPENDENCIES)
@rm -f test-sleep$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_sleep_OBJECTS) $(test_sleep_LDADD) $(LIBS)
+src/test/test-socket-util.$(OBJEXT): src/test/$(am__dirstamp) \
+ src/test/$(DEPDIR)/$(am__dirstamp)
+
+test-socket-util$(EXEEXT): $(test_socket_util_OBJECTS) $(test_socket_util_DEPENDENCIES) $(EXTRA_test_socket_util_DEPENDENCIES)
+ @rm -f test-socket-util$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_socket_util_OBJECTS) $(test_socket_util_LDADD) $(LIBS)
src/readahead/test-ssd.$(OBJEXT): src/readahead/$(am__dirstamp) \
src/readahead/$(DEPDIR)/$(am__dirstamp)
-rm -f src/core/*.lo
-rm -f src/cryptsetup/*.$(OBJEXT)
-rm -f src/dbus1-generator/*.$(OBJEXT)
+ -rm -f src/debug-generator/*.$(OBJEXT)
-rm -f src/delta/*.$(OBJEXT)
-rm -f src/detect-virt/*.$(OBJEXT)
-rm -f src/efi-boot-generator/*.$(OBJEXT)
-rm -f src/libsystemd/sd-id128/*.lo
-rm -f src/libsystemd/sd-login/*.$(OBJEXT)
-rm -f src/libsystemd/sd-login/*.lo
+ -rm -f src/libsystemd/sd-path/*.$(OBJEXT)
+ -rm -f src/libsystemd/sd-path/*.lo
-rm -f src/libsystemd/sd-resolve/*.$(OBJEXT)
-rm -f src/libsystemd/sd-resolve/*.lo
-rm -f src/libsystemd/sd-rtnl/*.$(OBJEXT)
-rm -f src/nspawn/*.$(OBJEXT)
-rm -f src/nss-myhostname/*.$(OBJEXT)
-rm -f src/nss-myhostname/*.lo
+ -rm -f src/path/*.$(OBJEXT)
-rm -f src/python-systemd/*.$(OBJEXT)
-rm -f src/python-systemd/*.lo
-rm -f src/quotacheck/*.$(OBJEXT)
-rm -f src/sysctl/*.$(OBJEXT)
-rm -f src/system-update-generator/*.$(OBJEXT)
-rm -f src/systemctl/*.$(OBJEXT)
+ -rm -f src/sysusers/*.$(OBJEXT)
-rm -f src/sysv-generator/*.$(OBJEXT)
-rm -f src/test/*.$(OBJEXT)
-rm -f src/timedate/*.$(OBJEXT)
-rm -f src/udev/net/*.lo
-rm -f src/udev/scsi_id/*.$(OBJEXT)
-rm -f src/udev/v4l_id/*.$(OBJEXT)
+ -rm -f src/update-done/*.$(OBJEXT)
-rm -f src/update-utmp/*.$(OBJEXT)
-rm -f src/vconsole/*.$(OBJEXT)
@AMDEP_TRUE@@am__include@ @am__quote@src/cryptsetup/$(DEPDIR)/cryptsetup-generator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/cryptsetup/$(DEPDIR)/systemd_cryptsetup-cryptsetup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/dbus1-generator/$(DEPDIR)/dbus1-generator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/debug-generator/$(DEPDIR)/debug-generator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/delta/$(DEPDIR)/delta.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/detect-virt/$(DEPDIR)/detect-virt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/efi-boot-generator/$(DEPDIR)/efi-boot-generator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/hostname/$(DEPDIR)/hostnamed.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/initctl/$(DEPDIR)/initctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/cat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/coredump-vacuum.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/coredump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/coredumpctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/journalctl-journal-qrcode.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/libsystemd_la-lookup3.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/libsystemd_la-mmap-cache.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/libsystemd_la-sd-journal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/stacktrace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/systemd_journal_gatewayd-journal-gatewayd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/systemd_journal_gatewayd-microhttpd-util.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/systemd_journal_remote-journal-remote-parse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/systemd_journal_remote-journal-remote-write.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/systemd_journal_remote-journal-remote.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/systemd_journal_remote-microhttpd-util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/test-compress.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/test-coredump-vacuum.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/test-journal-enum.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/test-journal-flush.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/journal/$(DEPDIR)/test-journal-init.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp-network.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp-option.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp-packet.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-network.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-option.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-ipv4ll-network.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-ipv4ll-packet.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-network-internal.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp-client.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp-lease.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp-server.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-client.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-lease.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-icmp6-nd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-ipv4ll.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/test-dhcp-client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/test-dhcp-option.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/test-dhcp-server.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/test-dhcp6-client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/test-icmp6-rs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd-network/$(DEPDIR)/test-ipv4ll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-bus/$(DEPDIR)/busctl-busctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_dump_la-bus-dump.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-login/$(DEPDIR)/libsystemd_la-sd-login.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-login/$(DEPDIR)/libudev_core_la-sd-login.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-login/$(DEPDIR)/test-login.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-path/$(DEPDIR)/libsystemd_internal_la-sd-path.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-path/$(DEPDIR)/libsystemd_la-sd-path.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-resolve/$(DEPDIR)/libsystemd_la-sd-resolve.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-resolve/$(DEPDIR)/libsystemd_resolve_la-sd-resolve.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/libsystemd/sd-resolve/$(DEPDIR)/test_resolve-test-resolve.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/logind-user.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/logind.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/multi-seat-x.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/pam_systemd_la-pam-module.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/pam_systemd_la-pam_systemd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/sysfs-show.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/test-inhibit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/login/$(DEPDIR)/test-login-shared.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/machine/$(DEPDIR)/test-machine-tables.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/modules-load/$(DEPDIR)/systemd_modules_load-modules-load.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_network_la-sd-network.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-address-pool.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-address.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-dummy.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-link.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-macvlan.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-netdev-gperf.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-netdev.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-route.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-tunnel.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-tuntap.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-veth.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vlan.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vxlan.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/networkd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/systemd_networkd_wait_online-networkd-wait-online.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/network/$(DEPDIR)/test_network-test-network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/nspawn/$(DEPDIR)/systemd_nspawn-nspawn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/nss-myhostname/$(DEPDIR)/netlink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/nss-myhostname/$(DEPDIR)/nss-myhostname.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/path/$(DEPDIR)/path.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/python-systemd/$(DEPDIR)/_daemon_la-_daemon.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/python-systemd/$(DEPDIR)/_daemon_la-pyutil.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/python-systemd/$(DEPDIR)/_journal_la-_journal.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_capability_la-capability.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-ask-password-api.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-dev-setup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-dropin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-fileio-label.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-generator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-label.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-mkdir-label.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_label_la-selinux-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-architecture.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-async.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-audit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-base-filesystem.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-boot-timestamps.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-bus-label.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-calendarspec.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-exit-status.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-fdset.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-fileio.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-generator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-gunicode.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-hashmap.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/shared/$(DEPDIR)/libsystemd_shared_la-ima-util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/sysctl/$(DEPDIR)/sysctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/system-update-generator/$(DEPDIR)/system-update-generator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/systemctl/$(DEPDIR)/systemctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/sysusers/$(DEPDIR)/sysusers.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/sysv-generator/$(DEPDIR)/sysv-generator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-architecture.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-async.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-boot-timestamps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-calendarspec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-capability.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-cgroup-util.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-cgroup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-conf-files.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-daemon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-date.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-device-nodes.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-ellipsize.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-env-replace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-fdset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-fileio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-hashmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-hostname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-namespace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-path-util.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-prioq.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-ratelimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-replace-var.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-ring.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-sleep.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-socket-util.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-strbuf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-strip-tab-ansi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/test/$(DEPDIR)/test-strv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/udev/scsi_id/$(DEPDIR)/scsi_id.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/udev/scsi_id/$(DEPDIR)/scsi_serial.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/udev/v4l_id/$(DEPDIR)/v4l_id.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/update-done/$(DEPDIR)/update-done.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/update-utmp/$(DEPDIR)/systemd_update_utmp-update-utmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/vconsole/$(DEPDIR)/vconsole-setup.Po@am__quote@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_internal_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd/sd-login/libsystemd_internal_la-sd-login.lo `test -f 'src/libsystemd/sd-login/sd-login.c' || echo '$(srcdir)/'`src/libsystemd/sd-login/sd-login.c
+src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo: src/libsystemd/sd-path/sd-path.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_internal_la_CFLAGS) $(CFLAGS) -MT src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo -MD -MP -MF src/libsystemd/sd-path/$(DEPDIR)/libsystemd_internal_la-sd-path.Tpo -c -o src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo `test -f 'src/libsystemd/sd-path/sd-path.c' || echo '$(srcdir)/'`src/libsystemd/sd-path/sd-path.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd/sd-path/$(DEPDIR)/libsystemd_internal_la-sd-path.Tpo src/libsystemd/sd-path/$(DEPDIR)/libsystemd_internal_la-sd-path.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd/sd-path/sd-path.c' object='src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_internal_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd/sd-path/libsystemd_internal_la-sd-path.lo `test -f 'src/libsystemd/sd-path/sd-path.c' || echo '$(srcdir)/'`src/libsystemd/sd-path/sd-path.c
+
src/libsystemd/sd-bus/libsystemd_internal_la-bus-error-mapping.lo: src/libsystemd/sd-bus/bus-error-mapping.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_internal_la_CFLAGS) $(CFLAGS) -MT src/libsystemd/sd-bus/libsystemd_internal_la-bus-error-mapping.lo -MD -MP -MF src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_internal_la-bus-error-mapping.Tpo -c -o src/libsystemd/sd-bus/libsystemd_internal_la-bus-error-mapping.lo `test -f 'src/libsystemd/sd-bus/bus-error-mapping.c' || echo '$(srcdir)/'`src/libsystemd/sd-bus/bus-error-mapping.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_internal_la-bus-error-mapping.Tpo src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_internal_la-bus-error-mapping.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_label_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_label_la-dev-setup.lo `test -f 'src/shared/dev-setup.c' || echo '$(srcdir)/'`src/shared/dev-setup.c
+src/shared/libsystemd_label_la-dropin.lo: src/shared/dropin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_label_la_CFLAGS) $(CFLAGS) -MT src/shared/libsystemd_label_la-dropin.lo -MD -MP -MF src/shared/$(DEPDIR)/libsystemd_label_la-dropin.Tpo -c -o src/shared/libsystemd_label_la-dropin.lo `test -f 'src/shared/dropin.c' || echo '$(srcdir)/'`src/shared/dropin.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/libsystemd_label_la-dropin.Tpo src/shared/$(DEPDIR)/libsystemd_label_la-dropin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/dropin.c' object='src/shared/libsystemd_label_la-dropin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_label_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_label_la-dropin.lo `test -f 'src/shared/dropin.c' || echo '$(srcdir)/'`src/shared/dropin.c
+
+src/shared/libsystemd_label_la-generator.lo: src/shared/generator.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_label_la_CFLAGS) $(CFLAGS) -MT src/shared/libsystemd_label_la-generator.lo -MD -MP -MF src/shared/$(DEPDIR)/libsystemd_label_la-generator.Tpo -c -o src/shared/libsystemd_label_la-generator.lo `test -f 'src/shared/generator.c' || echo '$(srcdir)/'`src/shared/generator.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/libsystemd_label_la-generator.Tpo src/shared/$(DEPDIR)/libsystemd_label_la-generator.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/generator.c' object='src/shared/libsystemd_label_la-generator.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_label_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_label_la-generator.lo `test -f 'src/shared/generator.c' || echo '$(srcdir)/'`src/shared/generator.c
+
libsystemd_login_la-libsystemd-login.lo: libsystemd-login.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsystemd_login_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsystemd_login_la-libsystemd-login.lo -MD -MP -MF $(DEPDIR)/libsystemd_login_la-libsystemd-login.Tpo -c -o libsystemd_login_la-libsystemd-login.lo `test -f 'libsystemd-login.c' || echo '$(srcdir)/'`libsystemd-login.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsystemd_login_la-libsystemd-login.Tpo $(DEPDIR)/libsystemd_login_la-libsystemd-login.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp-client.lo `test -f 'src/libsystemd-network/sd-dhcp-client.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp-client.c
+src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo: src/libsystemd-network/sd-dhcp-server.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp-server.Tpo -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo `test -f 'src/libsystemd-network/sd-dhcp-server.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp-server.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp-server.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp-server.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd-network/sd-dhcp-server.c' object='src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp-server.lo `test -f 'src/libsystemd-network/sd-dhcp-server.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp-server.c
+
src/libsystemd-network/libsystemd_network_la-dhcp-network.lo: src/libsystemd-network/dhcp-network.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-dhcp-network.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp-network.Tpo -c -o src/libsystemd-network/libsystemd_network_la-dhcp-network.lo `test -f 'src/libsystemd-network/dhcp-network.c' || echo '$(srcdir)/'`src/libsystemd-network/dhcp-network.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp-network.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp-network.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-network-internal.lo `test -f 'src/libsystemd-network/network-internal.c' || echo '$(srcdir)/'`src/libsystemd-network/network-internal.c
+src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo: src/libsystemd-network/sd-icmp6-nd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-icmp6-nd.Tpo -c -o src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo `test -f 'src/libsystemd-network/sd-icmp6-nd.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-icmp6-nd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-icmp6-nd.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-icmp6-nd.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd-network/sd-icmp6-nd.c' object='src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-sd-icmp6-nd.lo `test -f 'src/libsystemd-network/sd-icmp6-nd.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-icmp6-nd.c
+
+src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo: src/libsystemd-network/sd-dhcp6-client.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-client.Tpo -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo `test -f 'src/libsystemd-network/sd-dhcp6-client.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp6-client.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-client.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-client.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd-network/sd-dhcp6-client.c' object='src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp6-client.lo `test -f 'src/libsystemd-network/sd-dhcp6-client.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp6-client.c
+
+src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo: src/libsystemd-network/dhcp6-network.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-network.Tpo -c -o src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo `test -f 'src/libsystemd-network/dhcp6-network.c' || echo '$(srcdir)/'`src/libsystemd-network/dhcp6-network.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-network.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-network.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd-network/dhcp6-network.c' object='src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-dhcp6-network.lo `test -f 'src/libsystemd-network/dhcp6-network.c' || echo '$(srcdir)/'`src/libsystemd-network/dhcp6-network.c
+
+src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo: src/libsystemd-network/dhcp6-option.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-option.Tpo -c -o src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo `test -f 'src/libsystemd-network/dhcp6-option.c' || echo '$(srcdir)/'`src/libsystemd-network/dhcp6-option.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-option.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-dhcp6-option.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd-network/dhcp6-option.c' object='src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-dhcp6-option.lo `test -f 'src/libsystemd-network/dhcp6-option.c' || echo '$(srcdir)/'`src/libsystemd-network/dhcp6-option.c
+
+src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo: src/libsystemd-network/sd-dhcp6-lease.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -MT src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo -MD -MP -MF src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-lease.Tpo -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo `test -f 'src/libsystemd-network/sd-dhcp6-lease.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp6-lease.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-lease.Tpo src/libsystemd-network/$(DEPDIR)/libsystemd_network_la-sd-dhcp6-lease.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd-network/sd-dhcp6-lease.c' object='src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_network_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd-network/libsystemd_network_la-sd-dhcp6-lease.lo `test -f 'src/libsystemd-network/sd-dhcp6-lease.c' || echo '$(srcdir)/'`src/libsystemd-network/sd-dhcp6-lease.c
+
src/network/libsystemd_networkd_core_la-networkd-link.lo: src/network/networkd-link.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-link.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-link.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-link.lo `test -f 'src/network/networkd-link.c' || echo '$(srcdir)/'`src/network/networkd-link.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-link.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-link.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-veth.lo `test -f 'src/network/networkd-veth.c' || echo '$(srcdir)/'`src/network/networkd-veth.c
+src/network/libsystemd_networkd_core_la-networkd-vxlan.lo: src/network/networkd-vxlan.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-vxlan.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vxlan.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-vxlan.lo `test -f 'src/network/networkd-vxlan.c' || echo '$(srcdir)/'`src/network/networkd-vxlan.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vxlan.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vxlan.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network/networkd-vxlan.c' object='src/network/libsystemd_networkd_core_la-networkd-vxlan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-vxlan.lo `test -f 'src/network/networkd-vxlan.c' || echo '$(srcdir)/'`src/network/networkd-vxlan.c
+
+src/network/libsystemd_networkd_core_la-networkd-vlan.lo: src/network/networkd-vlan.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-vlan.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vlan.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-vlan.lo `test -f 'src/network/networkd-vlan.c' || echo '$(srcdir)/'`src/network/networkd-vlan.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vlan.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-vlan.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network/networkd-vlan.c' object='src/network/libsystemd_networkd_core_la-networkd-vlan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-vlan.lo `test -f 'src/network/networkd-vlan.c' || echo '$(srcdir)/'`src/network/networkd-vlan.c
+
+src/network/libsystemd_networkd_core_la-networkd-macvlan.lo: src/network/networkd-macvlan.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-macvlan.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-macvlan.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-macvlan.lo `test -f 'src/network/networkd-macvlan.c' || echo '$(srcdir)/'`src/network/networkd-macvlan.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-macvlan.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-macvlan.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network/networkd-macvlan.c' object='src/network/libsystemd_networkd_core_la-networkd-macvlan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-macvlan.lo `test -f 'src/network/networkd-macvlan.c' || echo '$(srcdir)/'`src/network/networkd-macvlan.c
+
+src/network/libsystemd_networkd_core_la-networkd-dummy.lo: src/network/networkd-dummy.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-dummy.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-dummy.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-dummy.lo `test -f 'src/network/networkd-dummy.c' || echo '$(srcdir)/'`src/network/networkd-dummy.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-dummy.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-dummy.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network/networkd-dummy.c' object='src/network/libsystemd_networkd_core_la-networkd-dummy.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-dummy.lo `test -f 'src/network/networkd-dummy.c' || echo '$(srcdir)/'`src/network/networkd-dummy.c
+
+src/network/libsystemd_networkd_core_la-networkd-tuntap.lo: src/network/networkd-tuntap.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-tuntap.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-tuntap.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-tuntap.lo `test -f 'src/network/networkd-tuntap.c' || echo '$(srcdir)/'`src/network/networkd-tuntap.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-tuntap.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-tuntap.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network/networkd-tuntap.c' object='src/network/libsystemd_networkd_core_la-networkd-tuntap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-tuntap.lo `test -f 'src/network/networkd-tuntap.c' || echo '$(srcdir)/'`src/network/networkd-tuntap.c
+
src/network/libsystemd_networkd_core_la-networkd-network.lo: src/network/networkd-network.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-network.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-network.lo `test -f 'src/network/networkd-network.c' || echo '$(srcdir)/'`src/network/networkd-network.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-manager.lo `test -f 'src/network/networkd-manager.c' || echo '$(srcdir)/'`src/network/networkd-manager.c
+src/network/libsystemd_networkd_core_la-networkd-address-pool.lo: src/network/networkd-address-pool.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-address-pool.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-address-pool.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-address-pool.lo `test -f 'src/network/networkd-address-pool.c' || echo '$(srcdir)/'`src/network/networkd-address-pool.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-address-pool.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-address-pool.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/network/networkd-address-pool.c' object='src/network/libsystemd_networkd_core_la-networkd-address-pool.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -c -o src/network/libsystemd_networkd_core_la-networkd-address-pool.lo `test -f 'src/network/networkd-address-pool.c' || echo '$(srcdir)/'`src/network/networkd-address-pool.c
+
src/network/libsystemd_networkd_core_la-networkd-network-gperf.lo: src/network/networkd-network-gperf.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_networkd_core_la_CFLAGS) $(CFLAGS) -MT src/network/libsystemd_networkd_core_la-networkd-network-gperf.lo -MD -MP -MF src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network-gperf.Tpo -c -o src/network/libsystemd_networkd_core_la-networkd-network-gperf.lo `test -f 'src/network/networkd-network-gperf.c' || echo '$(srcdir)/'`src/network/networkd-network-gperf.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network-gperf.Tpo src/network/$(DEPDIR)/libsystemd_networkd_core_la-networkd-network-gperf.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_shared_la-bus-label.lo `test -f 'src/shared/bus-label.c' || echo '$(srcdir)/'`src/shared/bus-label.c
-src/shared/libsystemd_shared_la-generator.lo: src/shared/generator.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -MT src/shared/libsystemd_shared_la-generator.lo -MD -MP -MF src/shared/$(DEPDIR)/libsystemd_shared_la-generator.Tpo -c -o src/shared/libsystemd_shared_la-generator.lo `test -f 'src/shared/generator.c' || echo '$(srcdir)/'`src/shared/generator.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/libsystemd_shared_la-generator.Tpo src/shared/$(DEPDIR)/libsystemd_shared_la-generator.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/generator.c' object='src/shared/libsystemd_shared_la-generator.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_shared_la-generator.lo `test -f 'src/shared/generator.c' || echo '$(srcdir)/'`src/shared/generator.c
-
src/shared/libsystemd_shared_la-clean-ipc.lo: src/shared/clean-ipc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -MT src/shared/libsystemd_shared_la-clean-ipc.lo -MD -MP -MF src/shared/$(DEPDIR)/libsystemd_shared_la-clean-ipc.Tpo -c -o src/shared/libsystemd_shared_la-clean-ipc.lo `test -f 'src/shared/clean-ipc.c' || echo '$(srcdir)/'`src/shared/clean-ipc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/libsystemd_shared_la-clean-ipc.Tpo src/shared/$(DEPDIR)/libsystemd_shared_la-clean-ipc.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_shared_la-copy.lo `test -f 'src/shared/copy.c' || echo '$(srcdir)/'`src/shared/copy.c
+src/shared/libsystemd_shared_la-base-filesystem.lo: src/shared/base-filesystem.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -MT src/shared/libsystemd_shared_la-base-filesystem.lo -MD -MP -MF src/shared/$(DEPDIR)/libsystemd_shared_la-base-filesystem.Tpo -c -o src/shared/libsystemd_shared_la-base-filesystem.lo `test -f 'src/shared/base-filesystem.c' || echo '$(srcdir)/'`src/shared/base-filesystem.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/shared/$(DEPDIR)/libsystemd_shared_la-base-filesystem.Tpo src/shared/$(DEPDIR)/libsystemd_shared_la-base-filesystem.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/shared/base-filesystem.c' object='src/shared/libsystemd_shared_la-base-filesystem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_shared_la_CFLAGS) $(CFLAGS) -c -o src/shared/libsystemd_shared_la-base-filesystem.lo `test -f 'src/shared/base-filesystem.c' || echo '$(srcdir)/'`src/shared/base-filesystem.c
+
src/libsystemd/sd-bus/libsystemd_la-sd-bus.lo: src/libsystemd/sd-bus/sd-bus.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_la_CFLAGS) $(CFLAGS) -MT src/libsystemd/sd-bus/libsystemd_la-sd-bus.lo -MD -MP -MF src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_la-sd-bus.Tpo -c -o src/libsystemd/sd-bus/libsystemd_la-sd-bus.lo `test -f 'src/libsystemd/sd-bus/sd-bus.c' || echo '$(srcdir)/'`src/libsystemd/sd-bus/sd-bus.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_la-sd-bus.Tpo src/libsystemd/sd-bus/$(DEPDIR)/libsystemd_la-sd-bus.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd/sd-login/libsystemd_la-sd-login.lo `test -f 'src/libsystemd/sd-login/sd-login.c' || echo '$(srcdir)/'`src/libsystemd/sd-login/sd-login.c
+src/libsystemd/sd-path/libsystemd_la-sd-path.lo: src/libsystemd/sd-path/sd-path.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_la_CFLAGS) $(CFLAGS) -MT src/libsystemd/sd-path/libsystemd_la-sd-path.lo -MD -MP -MF src/libsystemd/sd-path/$(DEPDIR)/libsystemd_la-sd-path.Tpo -c -o src/libsystemd/sd-path/libsystemd_la-sd-path.lo `test -f 'src/libsystemd/sd-path/sd-path.c' || echo '$(srcdir)/'`src/libsystemd/sd-path/sd-path.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd/sd-path/$(DEPDIR)/libsystemd_la-sd-path.Tpo src/libsystemd/sd-path/$(DEPDIR)/libsystemd_la-sd-path.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libsystemd/sd-path/sd-path.c' object='src/libsystemd/sd-path/libsystemd_la-sd-path.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_la_CFLAGS) $(CFLAGS) -c -o src/libsystemd/sd-path/libsystemd_la-sd-path.lo `test -f 'src/libsystemd/sd-path/sd-path.c' || echo '$(srcdir)/'`src/libsystemd/sd-path/sd-path.c
+
src/libsystemd/sd-resolve/libsystemd_la-sd-resolve.lo: src/libsystemd/sd-resolve/sd-resolve.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsystemd_la_CFLAGS) $(CFLAGS) -MT src/libsystemd/sd-resolve/libsystemd_la-sd-resolve.lo -MD -MP -MF src/libsystemd/sd-resolve/$(DEPDIR)/libsystemd_la-sd-resolve.Tpo -c -o src/libsystemd/sd-resolve/libsystemd_la-sd-resolve.lo `test -f 'src/libsystemd/sd-resolve/sd-resolve.c' || echo '$(srcdir)/'`src/libsystemd/sd-resolve/sd-resolve.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libsystemd/sd-resolve/$(DEPDIR)/libsystemd_la-sd-resolve.Tpo src/libsystemd/sd-resolve/$(DEPDIR)/libsystemd_la-sd-resolve.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(login_la_CFLAGS) $(CFLAGS) -c -o src/python-systemd/login_la-pyutil.lo `test -f 'src/python-systemd/pyutil.c' || echo '$(srcdir)/'`src/python-systemd/pyutil.c
-src/login/pam_systemd_la-pam-module.lo: src/login/pam-module.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_systemd_la_CFLAGS) $(CFLAGS) -MT src/login/pam_systemd_la-pam-module.lo -MD -MP -MF src/login/$(DEPDIR)/pam_systemd_la-pam-module.Tpo -c -o src/login/pam_systemd_la-pam-module.lo `test -f 'src/login/pam-module.c' || echo '$(srcdir)/'`src/login/pam-module.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/login/$(DEPDIR)/pam_systemd_la-pam-module.Tpo src/login/$(DEPDIR)/pam_systemd_la-pam-module.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/login/pam-module.c' object='src/login/pam_systemd_la-pam-module.lo' libtool=yes @AMDEPBACKSLASH@
+src/login/pam_systemd_la-pam_systemd.lo: src/login/pam_systemd.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_systemd_la_CFLAGS) $(CFLAGS) -MT src/login/pam_systemd_la-pam_systemd.lo -MD -MP -MF src/login/$(DEPDIR)/pam_systemd_la-pam_systemd.Tpo -c -o src/login/pam_systemd_la-pam_systemd.lo `test -f 'src/login/pam_systemd.c' || echo '$(srcdir)/'`src/login/pam_systemd.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/login/$(DEPDIR)/pam_systemd_la-pam_systemd.Tpo src/login/$(DEPDIR)/pam_systemd_la-pam_systemd.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/login/pam_systemd.c' object='src/login/pam_systemd_la-pam_systemd.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_systemd_la_CFLAGS) $(CFLAGS) -c -o src/login/pam_systemd_la-pam-module.lo `test -f 'src/login/pam-module.c' || echo '$(srcdir)/'`src/login/pam-module.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_systemd_la_CFLAGS) $(CFLAGS) -c -o src/login/pam_systemd_la-pam_systemd.lo `test -f 'src/login/pam_systemd.c' || echo '$(srcdir)/'`src/login/pam_systemd.c
src/libsystemd/sd-bus/busctl-busctl.o: src/libsystemd/sd-bus/busctl.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(busctl_CFLAGS) $(CFLAGS) -MT src/libsystemd/sd-bus/busctl-busctl.o -MD -MP -MF src/libsystemd/sd-bus/$(DEPDIR)/busctl-busctl.Tpo -c -o src/libsystemd/sd-bus/busctl-busctl.o `test -f 'src/libsystemd/sd-bus/busctl.c' || echo '$(srcdir)/'`src/libsystemd/sd-bus/busctl.c
-rm -rf src/libsystemd/sd-event/.libs src/libsystemd/sd-event/_libs
-rm -rf src/libsystemd/sd-id128/.libs src/libsystemd/sd-id128/_libs
-rm -rf src/libsystemd/sd-login/.libs src/libsystemd/sd-login/_libs
+ -rm -rf src/libsystemd/sd-path/.libs src/libsystemd/sd-path/_libs
-rm -rf src/libsystemd/sd-resolve/.libs src/libsystemd/sd-resolve/_libs
-rm -rf src/libsystemd/sd-rtnl/.libs src/libsystemd/sd-rtnl/_libs
-rm -rf src/libsystemd/sd-utf8/.libs src/libsystemd/sd-utf8/_libs
@list='$(dist_pkgsysconf_DATA)'; test -n "$(pkgsysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(pkgsysconfdir)'; $(am__uninstall_files_from_dir)
+install-dist_polkitpolicyDATA: $(dist_polkitpolicy_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_polkitpolicy_DATA)'; test -n "$(polkitpolicydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(polkitpolicydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(polkitpolicydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(polkitpolicydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(polkitpolicydir)" || exit $$?; \
+ done
+
+uninstall-dist_polkitpolicyDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_polkitpolicy_DATA)'; test -n "$(polkitpolicydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(polkitpolicydir)'; $(am__uninstall_files_from_dir)
install-dist_sysctlDATA: $(dist_sysctl_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_sysctl_DATA)'; test -n "$(sysctldir)" || list=; \
@list='$(dist_sysctl_DATA)'; test -n "$(sysctldir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(sysctldir)'; $(am__uninstall_files_from_dir)
+install-dist_systempresetDATA: $(dist_systempreset_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_systempreset_DATA)'; test -n "$(systempresetdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(systempresetdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(systempresetdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systempresetdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(systempresetdir)" || exit $$?; \
+ done
+
+uninstall-dist_systempresetDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_systempreset_DATA)'; test -n "$(systempresetdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(systempresetdir)'; $(am__uninstall_files_from_dir)
install-dist_systemunitDATA: $(dist_systemunit_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_systemunit_DATA)'; test -n "$(systemunitdir)" || list=; \
@list='$(dist_systemunit_DATA)'; test -n "$(systemunitdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(systemunitdir)'; $(am__uninstall_files_from_dir)
+install-dist_sysusersDATA: $(dist_sysusers_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_sysusers_DATA)'; test -n "$(sysusersdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sysusersdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sysusersdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysusersdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(sysusersdir)" || exit $$?; \
+ done
+
+uninstall-dist_sysusersDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_sysusers_DATA)'; test -n "$(sysusersdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(sysusersdir)'; $(am__uninstall_files_from_dir)
install-dist_tmpfilesDATA: $(dist_tmpfiles_DATA)
@$(NORMAL_INSTALL)
@list='$(dist_tmpfiles_DATA)'; test -n "$(tmpfilesdir)" || list=; \
@list='$(nodist_pkgsysconf_DATA)'; test -n "$(pkgsysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(pkgsysconfdir)'; $(am__uninstall_files_from_dir)
-install-nodist_polkitpolicyDATA: $(nodist_polkitpolicy_DATA)
- @$(NORMAL_INSTALL)
- @list='$(nodist_polkitpolicy_DATA)'; test -n "$(polkitpolicydir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(polkitpolicydir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(polkitpolicydir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(polkitpolicydir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(polkitpolicydir)" || exit $$?; \
- done
-
-uninstall-nodist_polkitpolicyDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(nodist_polkitpolicy_DATA)'; test -n "$(polkitpolicydir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(polkitpolicydir)'; $(am__uninstall_files_from_dir)
install-nodist_rpmmacrosDATA: $(nodist_rpmmacros_DATA)
@$(NORMAL_INSTALL)
@list='$(nodist_rpmmacros_DATA)'; test -n "$(rpmmacrosdir)" || list=; \
@list='$(nodist_systemunit_DATA)'; test -n "$(systemunitdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(systemunitdir)'; $(am__uninstall_files_from_dir)
+install-nodist_sysusersDATA: $(nodist_sysusers_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(nodist_sysusers_DATA)'; test -n "$(sysusersdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sysusersdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sysusersdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysusersdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(sysusersdir)" || exit $$?; \
+ done
+
+uninstall-nodist_sysusersDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_sysusers_DATA)'; test -n "$(sysusersdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(sysusersdir)'; $(am__uninstall_files_from_dir)
install-nodist_udevrulesDATA: $(nodist_udevrules_DATA)
@$(NORMAL_INSTALL)
@list='$(nodist_udevrules_DATA)'; test -n "$(udevrulesdir)" || list=; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-socket-util.log: test-socket-util$(EXEEXT)
+ @p='test-socket-util$(EXEEXT)'; \
+ b='test-socket-util'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fdset.log: test-fdset$(EXEEXT)
+ @p='test-fdset$(EXEEXT)'; \
+ b='test-fdset'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-conf-files.log: test-conf-files$(EXEEXT)
+ @p='test-conf-files$(EXEEXT)'; \
+ b='test-conf-files'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-capability.log: test-capability$(EXEEXT)
+ @p='test-capability$(EXEEXT)'; \
+ b='test-capability'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-async.log: test-async$(EXEEXT)
+ @p='test-async$(EXEEXT)'; \
+ b='test-async'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ratelimit.log: test-ratelimit$(EXEEXT)
+ @p='test-ratelimit$(EXEEXT)'; \
+ b='test-ratelimit'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-bus-marshal.log: test-bus-marshal$(EXEEXT)
@p='test-bus-marshal$(EXEEXT)'; \
b='test-bus-marshal'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-dhcp-server.log: test-dhcp-server$(EXEEXT)
+ @p='test-dhcp-server$(EXEEXT)'; \
+ b='test-dhcp-server'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-ipv4ll.log: test-ipv4ll$(EXEEXT)
@p='test-ipv4ll$(EXEEXT)'; \
b='test-ipv4ll'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-icmp6-rs.log: test-icmp6-rs$(EXEEXT)
+ @p='test-icmp6-rs$(EXEEXT)'; \
+ b='test-icmp6-rs'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-dhcp6-client.log: test-dhcp6-client$(EXEEXT)
+ @p='test-dhcp6-client$(EXEEXT)'; \
+ b='test-dhcp6-client'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-id128.log: test-id128$(EXEEXT)
@p='test-id128$(EXEEXT)'; \
b='test-id128'; \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-compress.log: test-compress$(EXEEXT)
+ @p='test-compress$(EXEEXT)'; \
+ b='test-compress'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-machine-tables.log: test-machine-tables$(EXEEXT)
@p='test-machine-tables$(EXEEXT)'; \
b='test-machine-tables'; \
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pamlibdir)" "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(rootbindir)" "$(DESTDIR)$(rootlibexecdir)" "$(DESTDIR)$(systemgeneratordir)" "$(DESTDIR)$(udevlibexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(kernelinstalldir)" "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(bashcompletiondir)" "$(DESTDIR)$(catalogdir)" "$(DESTDIR)$(dbuspolicydir)" "$(DESTDIR)$(dbussystemservicedir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(gatewayddocumentrootdir)" "$(DESTDIR)$(networkdir)" "$(DESTDIR)$(ntpunitsdir)" "$(DESTDIR)$(pamconfdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgsysconfdir)" "$(DESTDIR)$(sysctldir)" "$(DESTDIR)$(systemunitdir)" "$(DESTDIR)$(tmpfilesdir)" "$(DESTDIR)$(udevconfdir)" "$(DESTDIR)$(udevhwdbdir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(userunitdir)" "$(DESTDIR)$(zshcompletiondir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgsysconfdir)" "$(DESTDIR)$(polkitpolicydir)" "$(DESTDIR)$(rpmmacrosdir)" "$(DESTDIR)$(systemunitdir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(userunitdir)" "$(DESTDIR)$(pkgconfigdatadir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(sharepkgconfigdir)" "$(DESTDIR)$(sysctldir)" "$(DESTDIR)$(sysvinitdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(varlogdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(libgudev_includedir)" "$(DESTDIR)$(pkgincludedir)"; do \
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pamlibdir)" "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(rootbindir)" "$(DESTDIR)$(rootlibexecdir)" "$(DESTDIR)$(systemgeneratordir)" "$(DESTDIR)$(udevlibexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(kernelinstalldir)" "$(DESTDIR)$(pkgpyexecdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(bashcompletiondir)" "$(DESTDIR)$(catalogdir)" "$(DESTDIR)$(dbuspolicydir)" "$(DESTDIR)$(dbussystemservicedir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(gatewayddocumentrootdir)" "$(DESTDIR)$(networkdir)" "$(DESTDIR)$(ntpunitsdir)" "$(DESTDIR)$(pamconfdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgsysconfdir)" "$(DESTDIR)$(polkitpolicydir)" "$(DESTDIR)$(sysctldir)" "$(DESTDIR)$(systempresetdir)" "$(DESTDIR)$(systemunitdir)" "$(DESTDIR)$(sysusersdir)" "$(DESTDIR)$(tmpfilesdir)" "$(DESTDIR)$(udevconfdir)" "$(DESTDIR)$(udevhwdbdir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(userunitdir)" "$(DESTDIR)$(zshcompletiondir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgsysconfdir)" "$(DESTDIR)$(rpmmacrosdir)" "$(DESTDIR)$(systemunitdir)" "$(DESTDIR)$(sysusersdir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(userunitdir)" "$(DESTDIR)$(pkgconfigdatadir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(sharepkgconfigdir)" "$(DESTDIR)$(sysctldir)" "$(DESTDIR)$(sysvinitdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(varlogdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(libgudev_includedir)" "$(DESTDIR)$(pkgincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
-rm -f src/cryptsetup/$(am__dirstamp)
-rm -f src/dbus1-generator/$(DEPDIR)/$(am__dirstamp)
-rm -f src/dbus1-generator/$(am__dirstamp)
+ -rm -f src/debug-generator/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/debug-generator/$(am__dirstamp)
-rm -f src/delta/$(DEPDIR)/$(am__dirstamp)
-rm -f src/delta/$(am__dirstamp)
-rm -f src/detect-virt/$(DEPDIR)/$(am__dirstamp)
-rm -f src/libsystemd/sd-id128/$(am__dirstamp)
-rm -f src/libsystemd/sd-login/$(DEPDIR)/$(am__dirstamp)
-rm -f src/libsystemd/sd-login/$(am__dirstamp)
+ -rm -f src/libsystemd/sd-path/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/libsystemd/sd-path/$(am__dirstamp)
-rm -f src/libsystemd/sd-resolve/$(DEPDIR)/$(am__dirstamp)
-rm -f src/libsystemd/sd-resolve/$(am__dirstamp)
-rm -f src/libsystemd/sd-rtnl/$(DEPDIR)/$(am__dirstamp)
-rm -f src/nspawn/$(am__dirstamp)
-rm -f src/nss-myhostname/$(DEPDIR)/$(am__dirstamp)
-rm -f src/nss-myhostname/$(am__dirstamp)
+ -rm -f src/path/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/path/$(am__dirstamp)
-rm -f src/python-systemd/$(DEPDIR)/$(am__dirstamp)
-rm -f src/python-systemd/$(am__dirstamp)
-rm -f src/quotacheck/$(DEPDIR)/$(am__dirstamp)
-rm -f src/system-update-generator/$(am__dirstamp)
-rm -f src/systemctl/$(DEPDIR)/$(am__dirstamp)
-rm -f src/systemctl/$(am__dirstamp)
+ -rm -f src/sysusers/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/sysusers/$(am__dirstamp)
-rm -f src/sysv-generator/$(DEPDIR)/$(am__dirstamp)
-rm -f src/sysv-generator/$(am__dirstamp)
-rm -f src/test/$(DEPDIR)/$(am__dirstamp)
-rm -f src/udev/scsi_id/$(am__dirstamp)
-rm -f src/udev/v4l_id/$(DEPDIR)/$(am__dirstamp)
-rm -f src/udev/v4l_id/$(am__dirstamp)
+ -rm -f src/update-done/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/update-done/$(am__dirstamp)
-rm -f src/update-utmp/$(DEPDIR)/$(am__dirstamp)
-rm -f src/update-utmp/$(am__dirstamp)
-rm -f src/vconsole/$(DEPDIR)/$(am__dirstamp)
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf ./$(DEPDIR) src/ac-power/$(DEPDIR) src/activate/$(DEPDIR) src/analyze/$(DEPDIR) src/ask-password/$(DEPDIR) src/backlight/$(DEPDIR) src/binfmt/$(DEPDIR) src/boot/$(DEPDIR) src/bootchart/$(DEPDIR) src/bus-proxyd/$(DEPDIR) src/cgls/$(DEPDIR) src/cgroups-agent/$(DEPDIR) src/cgtop/$(DEPDIR) src/core/$(DEPDIR) src/cryptsetup/$(DEPDIR) src/dbus1-generator/$(DEPDIR) src/delta/$(DEPDIR) src/detect-virt/$(DEPDIR) src/efi-boot-generator/$(DEPDIR) src/fsck/$(DEPDIR) src/fstab-generator/$(DEPDIR) src/getty-generator/$(DEPDIR) src/gpt-auto-generator/$(DEPDIR) src/gudev/$(DEPDIR) src/hostname/$(DEPDIR) src/initctl/$(DEPDIR) src/journal/$(DEPDIR) src/libsystemd-network/$(DEPDIR) src/libsystemd/sd-bus/$(DEPDIR) src/libsystemd/sd-daemon/$(DEPDIR) src/libsystemd/sd-event/$(DEPDIR) src/libsystemd/sd-id128/$(DEPDIR) src/libsystemd/sd-login/$(DEPDIR) src/libsystemd/sd-resolve/$(DEPDIR) src/libsystemd/sd-rtnl/$(DEPDIR) src/libsystemd/sd-utf8/$(DEPDIR) src/libudev/$(DEPDIR) src/locale/$(DEPDIR) src/login/$(DEPDIR) src/machine-id-setup/$(DEPDIR) src/machine/$(DEPDIR) src/modules-load/$(DEPDIR) src/network/$(DEPDIR) src/notify/$(DEPDIR) src/nspawn/$(DEPDIR) src/nss-myhostname/$(DEPDIR) src/python-systemd/$(DEPDIR) src/quotacheck/$(DEPDIR) src/random-seed/$(DEPDIR) src/rc-local-generator/$(DEPDIR) src/readahead/$(DEPDIR) src/remount-fs/$(DEPDIR) src/reply-password/$(DEPDIR) src/resolve/$(DEPDIR) src/rfkill/$(DEPDIR) src/run/$(DEPDIR) src/shared/$(DEPDIR) src/shutdownd/$(DEPDIR) src/sleep/$(DEPDIR) src/socket-proxy/$(DEPDIR) src/sysctl/$(DEPDIR) src/system-update-generator/$(DEPDIR) src/systemctl/$(DEPDIR) src/sysv-generator/$(DEPDIR) src/test/$(DEPDIR) src/timedate/$(DEPDIR) src/timesync/$(DEPDIR) src/tmpfiles/$(DEPDIR) src/tty-ask-password-agent/$(DEPDIR) src/udev/$(DEPDIR) src/udev/accelerometer/$(DEPDIR) src/udev/ata_id/$(DEPDIR) src/udev/cdrom_id/$(DEPDIR) src/udev/collect/$(DEPDIR) src/udev/mtd_probe/$(DEPDIR) src/udev/net/$(DEPDIR) src/udev/scsi_id/$(DEPDIR) src/udev/v4l_id/$(DEPDIR) src/update-utmp/$(DEPDIR) src/vconsole/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) src/ac-power/$(DEPDIR) src/activate/$(DEPDIR) src/analyze/$(DEPDIR) src/ask-password/$(DEPDIR) src/backlight/$(DEPDIR) src/binfmt/$(DEPDIR) src/boot/$(DEPDIR) src/bootchart/$(DEPDIR) src/bus-proxyd/$(DEPDIR) src/cgls/$(DEPDIR) src/cgroups-agent/$(DEPDIR) src/cgtop/$(DEPDIR) src/core/$(DEPDIR) src/cryptsetup/$(DEPDIR) src/dbus1-generator/$(DEPDIR) src/debug-generator/$(DEPDIR) src/delta/$(DEPDIR) src/detect-virt/$(DEPDIR) src/efi-boot-generator/$(DEPDIR) src/fsck/$(DEPDIR) src/fstab-generator/$(DEPDIR) src/getty-generator/$(DEPDIR) src/gpt-auto-generator/$(DEPDIR) src/gudev/$(DEPDIR) src/hostname/$(DEPDIR) src/initctl/$(DEPDIR) src/journal/$(DEPDIR) src/libsystemd-network/$(DEPDIR) src/libsystemd/sd-bus/$(DEPDIR) src/libsystemd/sd-daemon/$(DEPDIR) src/libsystemd/sd-event/$(DEPDIR) src/libsystemd/sd-id128/$(DEPDIR) src/libsystemd/sd-login/$(DEPDIR) src/libsystemd/sd-path/$(DEPDIR) src/libsystemd/sd-resolve/$(DEPDIR) src/libsystemd/sd-rtnl/$(DEPDIR) src/libsystemd/sd-utf8/$(DEPDIR) src/libudev/$(DEPDIR) src/locale/$(DEPDIR) src/login/$(DEPDIR) src/machine-id-setup/$(DEPDIR) src/machine/$(DEPDIR) src/modules-load/$(DEPDIR) src/network/$(DEPDIR) src/notify/$(DEPDIR) src/nspawn/$(DEPDIR) src/nss-myhostname/$(DEPDIR) src/path/$(DEPDIR) src/python-systemd/$(DEPDIR) src/quotacheck/$(DEPDIR) src/random-seed/$(DEPDIR) src/rc-local-generator/$(DEPDIR) src/readahead/$(DEPDIR) src/remount-fs/$(DEPDIR) src/reply-password/$(DEPDIR) src/resolve/$(DEPDIR) src/rfkill/$(DEPDIR) src/run/$(DEPDIR) src/shared/$(DEPDIR) src/shutdownd/$(DEPDIR) src/sleep/$(DEPDIR) src/socket-proxy/$(DEPDIR) src/sysctl/$(DEPDIR) src/system-update-generator/$(DEPDIR) src/systemctl/$(DEPDIR) src/sysusers/$(DEPDIR) src/sysv-generator/$(DEPDIR) src/test/$(DEPDIR) src/timedate/$(DEPDIR) src/timesync/$(DEPDIR) src/tmpfiles/$(DEPDIR) src/tty-ask-password-agent/$(DEPDIR) src/udev/$(DEPDIR) src/udev/accelerometer/$(DEPDIR) src/udev/ata_id/$(DEPDIR) src/udev/cdrom_id/$(DEPDIR) src/udev/collect/$(DEPDIR) src/udev/mtd_probe/$(DEPDIR) src/udev/net/$(DEPDIR) src/udev/scsi_id/$(DEPDIR) src/udev/v4l_id/$(DEPDIR) src/update-done/$(DEPDIR) src/update-utmp/$(DEPDIR) src/vconsole/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-local distclean-tags
install-dist_kernelinstallSCRIPTS install-dist_networkDATA \
install-dist_ntpunitsDATA install-dist_pamconfDATA \
install-dist_pkgdataDATA install-dist_pkgsysconfDATA \
- install-dist_sysctlDATA install-dist_systemunitDATA \
- install-dist_tmpfilesDATA install-dist_udevconfDATA \
- install-dist_udevhwdbDATA install-dist_udevrulesDATA \
- install-dist_userunitDATA install-dist_zshcompletionDATA \
- install-girDATA install-includeHEADERS \
- install-libgudev_includeHEADERS install-man \
- install-nodist_pkgsysconfDATA install-nodist_polkitpolicyDATA \
+ install-dist_polkitpolicyDATA install-dist_sysctlDATA \
+ install-dist_systempresetDATA install-dist_systemunitDATA \
+ install-dist_sysusersDATA install-dist_tmpfilesDATA \
+ install-dist_udevconfDATA install-dist_udevhwdbDATA \
+ install-dist_udevrulesDATA install-dist_userunitDATA \
+ install-dist_zshcompletionDATA install-girDATA \
+ install-includeHEADERS install-libgudev_includeHEADERS \
+ install-man install-nodist_pkgsysconfDATA \
install-nodist_rpmmacrosDATA install-nodist_systemunitDATA \
- install-nodist_udevrulesDATA install-nodist_userunitDATA \
- install-pamlibLTLIBRARIES install-pkgconfigdataDATA \
- install-pkgconfiglibDATA install-pkgincludeHEADERS \
- install-rootbinPROGRAMS install-sharepkgconfigDATA \
- install-sysctlDATA install-systemgeneratorPROGRAMS \
- install-sysvinitDATA install-typelibsDATA install-varlogDATA
+ install-nodist_sysusersDATA install-nodist_udevrulesDATA \
+ install-nodist_userunitDATA install-pamlibLTLIBRARIES \
+ install-pkgconfigdataDATA install-pkgconfiglibDATA \
+ install-pkgincludeHEADERS install-rootbinPROGRAMS \
+ install-sharepkgconfigDATA install-sysctlDATA \
+ install-systemgeneratorPROGRAMS install-sysvinitDATA \
+ install-typelibsDATA install-varlogDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-recursive
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf ./$(DEPDIR) src/ac-power/$(DEPDIR) src/activate/$(DEPDIR) src/analyze/$(DEPDIR) src/ask-password/$(DEPDIR) src/backlight/$(DEPDIR) src/binfmt/$(DEPDIR) src/boot/$(DEPDIR) src/bootchart/$(DEPDIR) src/bus-proxyd/$(DEPDIR) src/cgls/$(DEPDIR) src/cgroups-agent/$(DEPDIR) src/cgtop/$(DEPDIR) src/core/$(DEPDIR) src/cryptsetup/$(DEPDIR) src/dbus1-generator/$(DEPDIR) src/delta/$(DEPDIR) src/detect-virt/$(DEPDIR) src/efi-boot-generator/$(DEPDIR) src/fsck/$(DEPDIR) src/fstab-generator/$(DEPDIR) src/getty-generator/$(DEPDIR) src/gpt-auto-generator/$(DEPDIR) src/gudev/$(DEPDIR) src/hostname/$(DEPDIR) src/initctl/$(DEPDIR) src/journal/$(DEPDIR) src/libsystemd-network/$(DEPDIR) src/libsystemd/sd-bus/$(DEPDIR) src/libsystemd/sd-daemon/$(DEPDIR) src/libsystemd/sd-event/$(DEPDIR) src/libsystemd/sd-id128/$(DEPDIR) src/libsystemd/sd-login/$(DEPDIR) src/libsystemd/sd-resolve/$(DEPDIR) src/libsystemd/sd-rtnl/$(DEPDIR) src/libsystemd/sd-utf8/$(DEPDIR) src/libudev/$(DEPDIR) src/locale/$(DEPDIR) src/login/$(DEPDIR) src/machine-id-setup/$(DEPDIR) src/machine/$(DEPDIR) src/modules-load/$(DEPDIR) src/network/$(DEPDIR) src/notify/$(DEPDIR) src/nspawn/$(DEPDIR) src/nss-myhostname/$(DEPDIR) src/python-systemd/$(DEPDIR) src/quotacheck/$(DEPDIR) src/random-seed/$(DEPDIR) src/rc-local-generator/$(DEPDIR) src/readahead/$(DEPDIR) src/remount-fs/$(DEPDIR) src/reply-password/$(DEPDIR) src/resolve/$(DEPDIR) src/rfkill/$(DEPDIR) src/run/$(DEPDIR) src/shared/$(DEPDIR) src/shutdownd/$(DEPDIR) src/sleep/$(DEPDIR) src/socket-proxy/$(DEPDIR) src/sysctl/$(DEPDIR) src/system-update-generator/$(DEPDIR) src/systemctl/$(DEPDIR) src/sysv-generator/$(DEPDIR) src/test/$(DEPDIR) src/timedate/$(DEPDIR) src/timesync/$(DEPDIR) src/tmpfiles/$(DEPDIR) src/tty-ask-password-agent/$(DEPDIR) src/udev/$(DEPDIR) src/udev/accelerometer/$(DEPDIR) src/udev/ata_id/$(DEPDIR) src/udev/cdrom_id/$(DEPDIR) src/udev/collect/$(DEPDIR) src/udev/mtd_probe/$(DEPDIR) src/udev/net/$(DEPDIR) src/udev/scsi_id/$(DEPDIR) src/udev/v4l_id/$(DEPDIR) src/update-utmp/$(DEPDIR) src/vconsole/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) src/ac-power/$(DEPDIR) src/activate/$(DEPDIR) src/analyze/$(DEPDIR) src/ask-password/$(DEPDIR) src/backlight/$(DEPDIR) src/binfmt/$(DEPDIR) src/boot/$(DEPDIR) src/bootchart/$(DEPDIR) src/bus-proxyd/$(DEPDIR) src/cgls/$(DEPDIR) src/cgroups-agent/$(DEPDIR) src/cgtop/$(DEPDIR) src/core/$(DEPDIR) src/cryptsetup/$(DEPDIR) src/dbus1-generator/$(DEPDIR) src/debug-generator/$(DEPDIR) src/delta/$(DEPDIR) src/detect-virt/$(DEPDIR) src/efi-boot-generator/$(DEPDIR) src/fsck/$(DEPDIR) src/fstab-generator/$(DEPDIR) src/getty-generator/$(DEPDIR) src/gpt-auto-generator/$(DEPDIR) src/gudev/$(DEPDIR) src/hostname/$(DEPDIR) src/initctl/$(DEPDIR) src/journal/$(DEPDIR) src/libsystemd-network/$(DEPDIR) src/libsystemd/sd-bus/$(DEPDIR) src/libsystemd/sd-daemon/$(DEPDIR) src/libsystemd/sd-event/$(DEPDIR) src/libsystemd/sd-id128/$(DEPDIR) src/libsystemd/sd-login/$(DEPDIR) src/libsystemd/sd-path/$(DEPDIR) src/libsystemd/sd-resolve/$(DEPDIR) src/libsystemd/sd-rtnl/$(DEPDIR) src/libsystemd/sd-utf8/$(DEPDIR) src/libudev/$(DEPDIR) src/locale/$(DEPDIR) src/login/$(DEPDIR) src/machine-id-setup/$(DEPDIR) src/machine/$(DEPDIR) src/modules-load/$(DEPDIR) src/network/$(DEPDIR) src/notify/$(DEPDIR) src/nspawn/$(DEPDIR) src/nss-myhostname/$(DEPDIR) src/path/$(DEPDIR) src/python-systemd/$(DEPDIR) src/quotacheck/$(DEPDIR) src/random-seed/$(DEPDIR) src/rc-local-generator/$(DEPDIR) src/readahead/$(DEPDIR) src/remount-fs/$(DEPDIR) src/reply-password/$(DEPDIR) src/resolve/$(DEPDIR) src/rfkill/$(DEPDIR) src/run/$(DEPDIR) src/shared/$(DEPDIR) src/shutdownd/$(DEPDIR) src/sleep/$(DEPDIR) src/socket-proxy/$(DEPDIR) src/sysctl/$(DEPDIR) src/system-update-generator/$(DEPDIR) src/systemctl/$(DEPDIR) src/sysusers/$(DEPDIR) src/sysv-generator/$(DEPDIR) src/test/$(DEPDIR) src/timedate/$(DEPDIR) src/timesync/$(DEPDIR) src/tmpfiles/$(DEPDIR) src/tty-ask-password-agent/$(DEPDIR) src/udev/$(DEPDIR) src/udev/accelerometer/$(DEPDIR) src/udev/ata_id/$(DEPDIR) src/udev/cdrom_id/$(DEPDIR) src/udev/collect/$(DEPDIR) src/udev/mtd_probe/$(DEPDIR) src/udev/net/$(DEPDIR) src/udev/scsi_id/$(DEPDIR) src/udev/v4l_id/$(DEPDIR) src/update-done/$(DEPDIR) src/update-utmp/$(DEPDIR) src/vconsole/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
uninstall-dist_kernelinstallSCRIPTS uninstall-dist_networkDATA \
uninstall-dist_ntpunitsDATA uninstall-dist_pamconfDATA \
uninstall-dist_pkgdataDATA uninstall-dist_pkgpyexecPYTHON \
- uninstall-dist_pkgsysconfDATA uninstall-dist_sysctlDATA \
- uninstall-dist_systemunitDATA uninstall-dist_tmpfilesDATA \
- uninstall-dist_udevconfDATA uninstall-dist_udevhwdbDATA \
- uninstall-dist_udevrulesDATA uninstall-dist_userunitDATA \
- uninstall-dist_zshcompletionDATA uninstall-girDATA \
- uninstall-includeHEADERS uninstall-libLTLIBRARIES \
- uninstall-libgudev_includeHEADERS uninstall-man \
- uninstall-nodist_pkgsysconfDATA \
- uninstall-nodist_polkitpolicyDATA \
+ uninstall-dist_pkgsysconfDATA uninstall-dist_polkitpolicyDATA \
+ uninstall-dist_sysctlDATA uninstall-dist_systempresetDATA \
+ uninstall-dist_systemunitDATA uninstall-dist_sysusersDATA \
+ uninstall-dist_tmpfilesDATA uninstall-dist_udevconfDATA \
+ uninstall-dist_udevhwdbDATA uninstall-dist_udevrulesDATA \
+ uninstall-dist_userunitDATA uninstall-dist_zshcompletionDATA \
+ uninstall-girDATA uninstall-includeHEADERS \
+ uninstall-libLTLIBRARIES uninstall-libgudev_includeHEADERS \
+ uninstall-man uninstall-nodist_pkgsysconfDATA \
uninstall-nodist_rpmmacrosDATA uninstall-nodist_systemunitDATA \
- uninstall-nodist_udevrulesDATA uninstall-nodist_userunitDATA \
- uninstall-pamlibLTLIBRARIES uninstall-pkgconfigdataDATA \
- uninstall-pkgconfiglibDATA uninstall-pkgincludeHEADERS \
- uninstall-pkgpyexecLTLIBRARIES uninstall-rootbinPROGRAMS \
- uninstall-rootlibexecPROGRAMS uninstall-sharepkgconfigDATA \
- uninstall-sysctlDATA uninstall-systemgeneratorPROGRAMS \
- uninstall-sysvinitDATA uninstall-typelibsDATA \
- uninstall-udevlibexecPROGRAMS uninstall-varlogDATA
+ uninstall-nodist_sysusersDATA uninstall-nodist_udevrulesDATA \
+ uninstall-nodist_userunitDATA uninstall-pamlibLTLIBRARIES \
+ uninstall-pkgconfigdataDATA uninstall-pkgconfiglibDATA \
+ uninstall-pkgincludeHEADERS uninstall-pkgpyexecLTLIBRARIES \
+ uninstall-rootbinPROGRAMS uninstall-rootlibexecPROGRAMS \
+ uninstall-sharepkgconfigDATA uninstall-sysctlDATA \
+ uninstall-systemgeneratorPROGRAMS uninstall-sysvinitDATA \
+ uninstall-typelibsDATA uninstall-udevlibexecPROGRAMS \
+ uninstall-varlogDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 \
install-dist_kernelinstallSCRIPTS install-dist_networkDATA \
install-dist_ntpunitsDATA install-dist_pamconfDATA \
install-dist_pkgdataDATA install-dist_pkgpyexecPYTHON \
- install-dist_pkgsysconfDATA install-dist_sysctlDATA \
- install-dist_systemunitDATA install-dist_tmpfilesDATA \
- install-dist_udevconfDATA install-dist_udevhwdbDATA \
- install-dist_udevrulesDATA install-dist_userunitDATA \
- install-dist_zshcompletionDATA install-dvi install-dvi-am \
- install-exec install-exec-am install-exec-hook install-girDATA \
- install-html install-html-am install-includeHEADERS \
- install-info install-info-am install-libLTLIBRARIES \
- install-libgudev_includeHEADERS install-man install-man1 \
- install-man3 install-man5 install-man7 install-man8 \
- install-nodist_pkgsysconfDATA install-nodist_polkitpolicyDATA \
+ install-dist_pkgsysconfDATA install-dist_polkitpolicyDATA \
+ install-dist_sysctlDATA install-dist_systempresetDATA \
+ install-dist_systemunitDATA install-dist_sysusersDATA \
+ install-dist_tmpfilesDATA install-dist_udevconfDATA \
+ install-dist_udevhwdbDATA install-dist_udevrulesDATA \
+ install-dist_userunitDATA install-dist_zshcompletionDATA \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-exec-hook install-girDATA install-html install-html-am \
+ install-includeHEADERS install-info install-info-am \
+ install-libLTLIBRARIES install-libgudev_includeHEADERS \
+ install-man install-man1 install-man3 install-man5 \
+ install-man7 install-man8 install-nodist_pkgsysconfDATA \
install-nodist_rpmmacrosDATA install-nodist_systemunitDATA \
- install-nodist_udevrulesDATA install-nodist_userunitDATA \
- install-pamlibLTLIBRARIES install-pdf install-pdf-am \
- install-pkgconfigdataDATA install-pkgconfiglibDATA \
- install-pkgincludeHEADERS install-pkgpyexecLTLIBRARIES \
- install-ps install-ps-am install-rootbinPROGRAMS \
- install-rootlibexecPROGRAMS install-sharepkgconfigDATA \
- install-strip install-sysctlDATA \
+ install-nodist_sysusersDATA install-nodist_udevrulesDATA \
+ install-nodist_userunitDATA install-pamlibLTLIBRARIES \
+ install-pdf install-pdf-am install-pkgconfigdataDATA \
+ install-pkgconfiglibDATA install-pkgincludeHEADERS \
+ install-pkgpyexecLTLIBRARIES install-ps install-ps-am \
+ install-rootbinPROGRAMS install-rootlibexecPROGRAMS \
+ install-sharepkgconfigDATA install-strip install-sysctlDATA \
install-systemgeneratorPROGRAMS install-sysvinitDATA \
install-typelibsDATA install-udevlibexecPROGRAMS \
install-varlogDATA installcheck installcheck-am installdirs \
uninstall-dist_kernelinstallSCRIPTS uninstall-dist_networkDATA \
uninstall-dist_ntpunitsDATA uninstall-dist_pamconfDATA \
uninstall-dist_pkgdataDATA uninstall-dist_pkgpyexecPYTHON \
- uninstall-dist_pkgsysconfDATA uninstall-dist_sysctlDATA \
- uninstall-dist_systemunitDATA uninstall-dist_tmpfilesDATA \
- uninstall-dist_udevconfDATA uninstall-dist_udevhwdbDATA \
- uninstall-dist_udevrulesDATA uninstall-dist_userunitDATA \
- uninstall-dist_zshcompletionDATA uninstall-girDATA \
- uninstall-hook uninstall-includeHEADERS \
+ uninstall-dist_pkgsysconfDATA uninstall-dist_polkitpolicyDATA \
+ uninstall-dist_sysctlDATA uninstall-dist_systempresetDATA \
+ uninstall-dist_systemunitDATA uninstall-dist_sysusersDATA \
+ uninstall-dist_tmpfilesDATA uninstall-dist_udevconfDATA \
+ uninstall-dist_udevhwdbDATA uninstall-dist_udevrulesDATA \
+ uninstall-dist_userunitDATA uninstall-dist_zshcompletionDATA \
+ uninstall-girDATA uninstall-hook uninstall-includeHEADERS \
uninstall-libLTLIBRARIES uninstall-libgudev_includeHEADERS \
uninstall-man uninstall-man1 uninstall-man3 uninstall-man5 \
uninstall-man7 uninstall-man8 uninstall-nodist_pkgsysconfDATA \
- uninstall-nodist_polkitpolicyDATA \
uninstall-nodist_rpmmacrosDATA uninstall-nodist_systemunitDATA \
- uninstall-nodist_udevrulesDATA uninstall-nodist_userunitDATA \
- uninstall-pamlibLTLIBRARIES uninstall-pkgconfigdataDATA \
- uninstall-pkgconfiglibDATA uninstall-pkgincludeHEADERS \
- uninstall-pkgpyexecLTLIBRARIES uninstall-rootbinPROGRAMS \
- uninstall-rootlibexecPROGRAMS uninstall-sharepkgconfigDATA \
- uninstall-sysctlDATA uninstall-systemgeneratorPROGRAMS \
- uninstall-sysvinitDATA uninstall-typelibsDATA \
- uninstall-udevlibexecPROGRAMS uninstall-varlogDATA
+ uninstall-nodist_sysusersDATA uninstall-nodist_udevrulesDATA \
+ uninstall-nodist_userunitDATA uninstall-pamlibLTLIBRARIES \
+ uninstall-pkgconfigdataDATA uninstall-pkgconfiglibDATA \
+ uninstall-pkgincludeHEADERS uninstall-pkgpyexecLTLIBRARIES \
+ uninstall-rootbinPROGRAMS uninstall-rootlibexecPROGRAMS \
+ uninstall-sharepkgconfigDATA uninstall-sysctlDATA \
+ uninstall-systemgeneratorPROGRAMS uninstall-sysvinitDATA \
+ uninstall-typelibsDATA uninstall-udevlibexecPROGRAMS \
+ uninstall-varlogDATA
# remove targets if the command fails
done
endef
+install-touch-usr-hook:
+ touch -c $(DESTDIR)/$(prefix)
+
# automake is broken and can't handle files with a dash in front
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14728#8
units-install-hook:
man/systemd-hybrid-sleep.service.8: man/systemd-suspend.service.8
man/systemd-initctl.8: man/systemd-initctl.service.8
man/systemd-initctl.socket.8: man/systemd-initctl.service.8
+man/systemd-journald-dev-log.socket.8: man/systemd-journald.service.8
man/systemd-journald.8: man/systemd-journald.service.8
man/systemd-journald.socket.8: man/systemd-journald.service.8
man/systemd-kexec.service.8: man/systemd-halt.service.8
man/systemd-shutdownd.socket.8: man/systemd-shutdownd.service.8
man/systemd-sleep.8: man/systemd-suspend.service.8
man/systemd-sysctl.8: man/systemd-sysctl.service.8
+man/systemd-sysusers.service.8: man/systemd-sysusers.8
man/systemd-tmpfiles-clean.service.8: man/systemd-tmpfiles.8
man/systemd-tmpfiles-clean.timer.8: man/systemd-tmpfiles.8
man/systemd-tmpfiles-setup-dev.service.8: man/systemd-tmpfiles.8
man/systemd-udevd-control.socket.8: man/systemd-udevd.service.8
man/systemd-udevd-kernel.socket.8: man/systemd-udevd.service.8
man/systemd-udevd.8: man/systemd-udevd.service.8
+man/systemd-update-done.8: man/systemd-update-done.service.8
man/systemd-update-utmp-runlevel.service.8: man/systemd-update-utmp.service.8
man/systemd-update-utmp.8: man/systemd-update-utmp.service.8
man/systemd-user.conf.5: man/systemd-system.conf.5
man/systemd-initctl.socket.html: man/systemd-initctl.service.html
$(html-alias)
+man/systemd-journald-dev-log.socket.html: man/systemd-journald.service.html
+ $(html-alias)
+
man/systemd-journald.html: man/systemd-journald.service.html
$(html-alias)
man/systemd-sysctl.html: man/systemd-sysctl.service.html
$(html-alias)
+man/systemd-sysusers.service.html: man/systemd-sysusers.html
+ $(html-alias)
+
man/systemd-tmpfiles-clean.service.html: man/systemd-tmpfiles.html
$(html-alias)
man/systemd-udevd.html: man/systemd-udevd.service.html
$(html-alias)
+man/systemd-update-done.html: man/systemd-update-done.service.html
+ $(html-alias)
+
man/systemd-update-utmp-runlevel.service.html: man/systemd-update-utmp.service.html
$(html-alias)
.PHONY: coverage lcov-run lcov-report coverage-sync
# run lcov from scratch, always
-coverage:
+coverage: all
$(MAKE) lcov-run
$(MAKE) lcov-report
catalog-remove-hook:
-test -n "$(DESTDIR)" || rm -f $(catalogstatedir)/database
- $(AM_CFLAGS)
@ENABLE_LOCALED_TRUE@update-kbd-model-map: src/locale/generate-kbd-model-map
@ENABLE_LOCALED_TRUE@ $PYTHON $< >src/locale/kbd-model-map
rm -f $(abs_srcdir)/hwdb/usb.ids $(abs_srcdir)/hwdb/pci.ids $(abs_srcdir)/hwdb/oui.txt \
$(abs_srcdir)/hwdb/iab.txt
+#
+# Require python when making dist
+#
+.PHONY: dist-check-python
+dist-check-python:
+@HAVE_PYTHON_FALSE@ @echo "*** python and python-lxml module must be installed and enabled in order to make dist"
+@HAVE_PYTHON_FALSE@ @false
+
+dist-check-compat-libs:
+@ENABLE_COMPAT_LIBS_FALSE@ @echo "*** compat-libs must be enabled in order to make dist"
+@ENABLE_COMPAT_LIBS_FALSE@ @false
+
+dist: dist-check-python dist-check-compat-libs
+
# check "broken" platforms limited toolchains for link breakage before we release
.PHONY: linkcheck
linkcheck:
done
exported-%: %
- $(AM_V_GEN)nm -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@
+ $(AM_V_GEN)$(NM) -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@
exported: $(addprefix exported-, $(lib_LTLIBRARIES))
$(AM_V_GEN)cat $^ > $@
undefined defined: $(ALL_OBJECTS)
$(AM_V_GEN)for f in $(ALL_OBJECTS) ; do \
- nm -g --$@-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
+ $(NM) -g --$@-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
done | cut -c 20- | cut -d @ -f 1 | sort -u > $@
.PHONY: check-api-unused
systemd System and Service Manager
+CHANGES WITH 215:
+
+ * A new tool systemd-sysusers has been added. This tool
+ creates system users and groups in /etc/passwd and
+ /etc/group, based on static declarative system user/group
+ definitions in /usr/lib/sysusers.d/. This is useful to
+ enable factory resets and volatile systems that boot up with
+ an empty /etc directory, and thus need system users and
+ groups created during early boot. systemd now also ships
+ with two default sysusers.d/ files for the most basic
+ users and groups systemd and the core operating system
+ require.
+
+ * A new tmpfiles snippet has been added that rebuilds the
+ essential files in /etc on boot, should they be missing.
+
+ * A directive for ensuring automatic clean-up of
+ /var/cache/man/ has been removed from the default
+ configuration. This line should now be shipped by the man
+ implementation. The necessary change has been made to the
+ man-db implementation. Note that you need to update your man
+ implementation to one that ships this line, otherwise no
+ automatic clean-up of /var/cache/man will take place.
+
+ * A new condition ConditionNeedsUpdate= has been added that
+ may conditionalize services to only run when /etc or /var
+ are "older" than the vendor operating system resources in
+ /usr. This is useful for reconstructing or updating /etc
+ after an offline update of /usr or a factory reset, on the
+ next reboot. Services that want to run once after such an
+ update or reset should use this condition and order
+ themselves before the new systemd-update-done.service, which
+ will mark the two directories as fully updated. A number of
+ service files have been added making use of this, to rebuild
+ the udev hardware database, the journald message catalog and
+ dynamic loader cache (ldconfig). The systemd-sysusers tool
+ described above also makes use of this now. With this in
+ place it is now possible to start up a minimal operating
+ system with /etc empty cleanly. For more information on the
+ concepts involved see this recent blog story:
+
+ http://0pointer.de/blog/projects/stateless.html
+
+ * A new system group "input" has been introduced, and all
+ input device nodes get this group assigned. This is useful
+ for system-level software to get access to input devices. It
+ complements what is already done for "audio" and "video".
+
+ * systemd-networkd learnt minimal DHCPv4 server support in
+ addition to the existing DHCPv4 client support. It also
+ learnt DHCPv6 client and IPv6 Router Solicitation client
+ support. The DHCPv4 client gained support for static routes
+ passed in from the server. Note that the [DHCPv4] section
+ known in older systemd-networkd versions has been renamed to
+ [DHCP] and is now also used by the DHCPv6 client. Existing
+ .network files using settings of this section should be
+ updated, though compatibility is maintained. Optionally, the
+ client hostname may now be sent to the DHCP server.
+
+ * networkd gained support for vxlan virtual networks as well
+ as tun/tap and dummy devices.
+
+ * networkd gained support for automatic allocation of address
+ ranges for interfaces from a system-wide pool of
+ addresses. This is useful for dynamically managing a large
+ number of interfaces with a single network configuration
+ file. In particular this is useful to easily assign
+ appropriate IP addresses to the veth links of a large number
+ of nspawn instances.
+
+ * RPM macros for processing sysusers, sysctl and binfmt
+ drop-in snippets at package installation time have been
+ added.
+
+ * The /etc/os-release file should now be placed in
+ /usr/lib/os-release. The old location is automatically
+ created as symlink. /usr/lib is the more appropriate
+ location of this file, since it shall actually describe the
+ vendor operating system shipped in /usr, and not the
+ configuration stored in /etc.
+
+ * .mount units gained a new boolean SloppyOptions= setting
+ that maps to mount(8)'s -s option which enables permissive
+ parsing of unknown mount options.
+
+ * tmpfiles learnt a new "L+" directive which creates a symlink
+ but (unlike "L") deletes a pre-existing file first, should
+ it already exist and not already be the correct
+ symlink. Similar, "b+", "c+" and "p+" directives have been
+ added as well, which create block and character devices, as
+ well as fifos in the filesystem, possibly removing any
+ pre-existing files of different types.
+
+ * For tmpfiles' "L", "L+", "C" and "C+" directives the final
+ 'argument' field (which so far specified the source to
+ symlink/copy the files from) is now optional. If omitted the
+ same file os copied from /usr/share/factory/ suffixed by the
+ full destination path. This is useful for populating /etc
+ with essential files, by copying them from vendor defaults
+ shipped in /usr/share/factory/etc.
+
+ * A new command "systemctl preset-all" has been added that
+ applies the service preset settings to all installed unit
+ files. A new switch --preset-mode= has been added that
+ controls whether only enable or only disable operations
+ shall be executed.
+
+ * A new command "systemctl is-system-running" has been added
+ that allows checking the overall state of the system, for
+ example whether it is fully up and running.
+
+ * When the system boots up with an empty /etc, the equivalent
+ to "systemctl preset-all" is executed during early boot, to
+ make sure all default services are enabled after a factory
+ reset.
+
+ * systemd now contains a minimal preset file that enables the
+ most basic services systemd ships by default.
+
+ * Unit files' [Install] section gained a new DefaultInstance=
+ field for defining the default instance to create if a
+ template unit is enabled with no instance specified.
+
+ * A new passive target cryptsetup-pre.target has been added
+ that may be used by services that need to make they run and
+ finish before the first LUKS cryptographic device is set up.
+
+ * The /dev/loop-control and /dev/btrfs-control device nodes
+ are now owned by the "disk" group by default, opening up
+ access to this group.
+
+ * systemd-coredump will now automatically generate a
+ stack trace of all core dumps taking place on the system,
+ based on elfutils' libdw library. This stack trace is logged
+ to the journal.
+
+ * systemd-coredump may now optionally store coredumps directly
+ on disk (in /var/lib/systemd/coredump, possibly compressed),
+ instead of storing them unconditionally in the journal. This
+ mode is the new default. A new configuration file
+ /etc/systemd/coredump.conf has been added to configure this
+ and other parameters of systemd-coredump.
+
+ * coredumpctl gained a new "info" verb to show details about a
+ specific coredump. A new switch "-1" has also been added
+ that makes sure to only show information about the most
+ recent entry instead of all entries. Also, as the tool is
+ generally useful now the "systemd-" prefix of the binary
+ name has been removed. Distributions that want to maintain
+ compatibility with the old name should add a symlink from
+ the old name to the new name.
+
+ * journald's SplitMode= now defaults to "uid". This makes sure
+ that unprivileged users can access their own coredumps with
+ coredumpctl without restrictions.
+
+ * New kernel command line options "systemd.wants=" (for
+ pulling an additional unit during boot), "systemd.mask="
+ (for masking a specific unit for the boot), and
+ "systemd.debug-shell" (for enabling the debug shell on tty9)
+ have been added. This is implemented in the new generator
+ "systemd-debug-generator".
+
+ * systemd-nspawn will now by default filter a couple of
+ syscalls for containers, among them those required for
+ kernel module loading, direct x86 IO port access, swap
+ management, and kexec. Most importantly though
+ open_by_handle_at() is now prohibited for containers,
+ closing a hole similar to a recently discussed vulnerability
+ in docker regarding access to files on file hierarchies the
+ container should normally not have access to. Note that for
+ nspawn we generally make no security claims anyway (and
+ this is explicitly documented in the man page), so this is
+ just a fix for one of the most obvious problems.
+
+ * A new man page file-hierarchy(7) has been added that
+ contains a minimized, modernized version of the file system
+ layout systemd expects, similar in style to the FHS
+ specification or hier(5). A new tool systemd-path(1) has
+ been added to query many of these paths for the local
+ machine and user.
+
+ * Automatic time-based clean-up of $XDG_RUNTIME_DIR is no
+ longer done. Since the directory now has a per-user size
+ limit, and is cleaned on logout this appears unnecessary,
+ in particular since this now brings the lifecycle of this
+ directory closer in line with how IPC objects are handled.
+
+ * systemd.pc now exports a number of additional directories,
+ including $libdir (which is useful to identify the library
+ path for the primary architecture of the system), and a
+ couple of drop-in directories.
+
+ * udev's predictable network interface names now use the dev_port
+ sysfs attribute, introduced in linux 3.15 instead of dev_id to
+ distinguish between ports of the same PCI function. dev_id should
+ only be used for ports using the same HW address, hence the need
+ for dev_port.
+
+ * machined has been updated to export the OS version of a
+ container (read from /etc/os-release and
+ /usr/lib/os-release) on the bus. This is now shown in
+ "machinectl status" for a machine.
+
+ * A new service setting RestartForceExitStatus= has been
+ added. If configured to a set of exit signals or process
+ return values, the service will be restarted when the main
+ daemon process exits with any of them, regardless of the
+ Restart= setting.
+
+ * systemctl's -H switch for connecting to remote systemd
+ machines has been extended so that it may be used to
+ directly connect to a specific container on the
+ host. "systemctl -H root@foobar:waldi" will now connect as
+ user "root" to host "foobar", and then proceed directly to
+ the container named "waldi". Note that currently you have to
+ authenticate as user "root" for this to work, as entering
+ containers is a privileged operation.
+
+ Contributions from: Andreas Henriksson, Benjamin Steinwender,
+ Carl Schaefer, Christian Hesse, Colin Ian King, Cristian
+ Rodríguez, Daniel Mack, Dave Reisner, David Herrmann, Eugene
+ Yakubovich, Filipe Brandenburger, Frederic Crozat, Hristo
+ Venev, Jan Engelhardt, Jonathan Boulle, Kay Sievers, Lennart
+ Poettering, Luke Shumaker, Mantas Mikulėnas, Marc-Antoine
+ Perennou, Marcel Holtmann, Michael Marineau, Michael Olbrich,
+ Michał Bartoszkiewicz, Michal Sekletar, Patrik Flykt, Ronan Le
+ Martret, Ronny Chevalier, Ruediger Oertel, Steven Noonan,
+ Susant Sahani, Thadeu Lima de Souza Cascardo, Thomas Hindoe
+ Paaboel Andersen, Tom Gundersen, Tom Hirst, Umut Tezduyar
+ Lindskog, Uoti Urpala, Zbigniew Jędrzejewski-Szmek
+
+ -- Berlin, 2014-07-03
+
CHANGES WITH 214:
* As an experimental feature, udev now tries to lock the
was opened for writing, the close will trigger a partition
table rescan in udev's "watch" facility, and if needed
synthesize "change" events for the disk and all its partitions.
- This is now unconditionally enabled, if it turns out to
+ This is now unconditionally enabled, and if it turns out to
cause major problems, we might turn it on only for specific
- devices, or might need to disable it entirely. Device-mapper
+ devices, or might need to disable it entirely. Device Mapper
devices are excluded from this logic.
* We temporarily dropped the "-l" switch for fsck invocations,
change has been released.
* The dependency on libattr has been removed. Since a long
- time the extended attribute calls have moved to glibc, and
+ time, the extended attribute calls have moved to glibc, and
libattr is thus unnecessary.
* Virtualization detection works without priviliges now. This
* systemd-networkd will no longer automatically attempt to
manually load kernel modules necessary for certain tunnel
- transports. Instead it is assumed the kernel loads them
+ transports. Instead, it is assumed the kernel loads them
automatically when required. This only works correctly on
very new kernels. On older kernels, please consider adding
- the kernel modules to /etc/load-modules.d/ as a work-around.
+ the kernel modules to /etc/modules-load.d/ as a work-around.
* The resolv.conf file systemd-resolved generates has been
- moved to /run/systemd/resolve/, if you have a symlink from
- /etc/resolv.conf it might be necessary to correct it.
+ moved to /run/systemd/resolve/. If you have a symlink from
+ /etc/resolv.conf, it might be necessary to correct it.
- * Two new service settings ProtectedHome= and ProtectedSystem=
- have been added. When enabled they will make the user data
+ * Two new service settings, ProtectedHome= and ProtectedSystem=,
+ have been added. When enabled, they will make the user data
(such as /home) inaccessible or read-only and the system
(such as /usr) read-only, for specific services. This allows
very light-weight per-service sandboxing to avoid
settings to set the owner user and group of AF_UNIX sockets
and FIFOs in the file system.
- * Socket units gained a new RemoveOnStop= setting. If enabled
+ * Socket units gained a new RemoveOnStop= setting. If enabled,
all FIFOS and sockets in the file system will be removed
when the specific socket unit is stopped.
* Socket units gained a new Symlinks= setting. It takes a list
of symlinks to create to file system sockets or FIFOs
- created by the specific unix sockets. This is useful to
+ created by the specific Unix sockets. This is useful to
manage symlinks to socket nodes with the same life-cycle as
the socket itself.
vanished.
* A new "on-abnormal" setting for Restart= has been added. If
- set it will result in automatic restarts on all "abnormal"
+ set, it will result in automatic restarts on all "abnormal"
reasons for a process to exit, which includes unclean
signals, core dumps, timeouts and watchdog timeouts, but
does not include clean and unclean exit codes or clean
files or entire directories.
* systemd-tmpfiles "m" lines are now fully equivalent to "z"
- lines. So far they have been non-globbing versions of the
- latter, and have thus been redundant. In future it is
- recommended to only use "z"; and "m" has hence been removed
+ lines. So far, they have been non-globbing versions of the
+ latter, and have thus been redundant. In future, it is
+ recommended to only use "z". "m" has hence been removed
from the documentation, even though it stays supported.
* A tmpfiles snippet to recreate the most basic structure in
/var has been added. This is enough to create the /var/run →
/run symlink and create a couple of structural
directories. This allows systems to boot up with an empty or
- volatile /var. Of course, while with this change the core OS
- now is capable with dealing with a volatile /var not all
+ volatile /var. Of course, while with this change, the core OS
+ now is capable with dealing with a volatile /var, not all
user services are ready for it. However, we hope that sooner
- or later many service daemons will be changed upstream so
+ or later, many service daemons will be changed upstream so
that they are able to automatically create their necessary
directories in /var at boot, should they be missing. This is
the first step to allow state-less systems that only require
* Access modes specified in tmpfiles snippets may now be
prefixed with "~", which indicates that they shall be masked
by whether the existing file or directly is currently
- writable, readable or executable at all. Also, if specified
+ writable, readable or executable at all. Also, if specified,
the sgid/suid/sticky bits will be masked for all
non-directories.
added which is useful for services that shall run before any
network is configured, for example firewall scripts.
+ * The "floppy" group that previously owned the /dev/fd*
+ devices is no longer used. The "disk" group is now used
+ instead. Distributions should probably deprecate usage of
+ this group.
+
Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
* A new "systemd-timesyncd" daemon has been added for
synchronizing the system clock across the network. It
implements an SNTP client. In contrast to NTP
- implementations such as chrony or the NTP reference server
+ implementations such as chrony or the NTP reference server,
this only implements a client side, and does not bother with
the full NTP complexity, focusing only on querying time from
one remote server and synchronizing the local clock to
it. Unless you intend to serve NTP to networked clients or
- want to connect to local hardware clocks this simple NTP
+ want to connect to local hardware clocks, this simple NTP
client should be more than appropriate for most
installations. The daemon runs with minimal privileges, and
has been hooked up with networkd to only operate when
acquired, and uses this to possibly correct the system clock
early at bootup, in order to accommodate for systems that
lack an RTC such as the Raspberry Pi and embedded devices,
- and make sure that time monotonically progresses on these
+ and to make sure that time monotonically progresses on these
systems, even if it is not always correct. To make use of
- this daemon a new system user and group "systemd-timesync"
+ this daemon, a new system user and group "systemd-timesync"
needs to be created on installation of systemd.
* The queue "seqnum" interface of libudev has been disabled, as
* A new FailureAction= setting has been added for service
units which may be used to specify an operation to trigger
when a service fails. This works similarly to
- StartLimitAction=, but unlike it controls what is done
+ StartLimitAction=, but unlike it, controls what is done
immediately rather than only after several attempts to
restart the service in question.
* hostnamed has been changed to prefer the statically
configured hostname in /etc/hostname (unless set to
'localhost' or empty) over any dynamic one supplied by
- dhcp. With this change the rules for picking the hostname
+ dhcp. With this change, the rules for picking the hostname
match more closely the rules of other configuration settings
where the local administrator's configuration in /etc always
overrides any other settings.
libcryptsetup (optional)
libaudit (optional)
libacl (optional)
- libattr (optional)
libselinux (optional)
liblzma (optional)
libgcrypt (optional)
libqrencode (optional)
libmicrohttpd (optional)
libpython (optional)
+ gobject-introspection > 1.40.0 (optional)
+ elfutils >= 158 (optional)
make, gcc, and similar tools
During runtime, you need the following additional
even in the very early boot stages, where no other databases
and network are available:
- tty, dialout, kmem, video, audio, lp, cdrom, tape, disk
+ audio, cdrom, dialout, disk, input, kmem, lp, tape, tty, video
During runtime, the journal daemon requires the
"systemd-journal" system group to exist. New journal files will
exist. During execution this network facing service will drop
privileges and assume this uid/gid for security reasons.
- Similar, the NTP daemon requires the "systemd-timesync" system
+ Similarly, the NTP daemon requires the "systemd-timesync" system
user and group to exist.
- Similar, the network management daemon requires the
+ Similarly, the network management daemon requires the
"systemd-network" system user and group to exist.
- Similar, the name resolution daemon requires the
+ Similarly, the name resolution daemon requires the
"systemd-resolve" system user and group to exist.
- Similar, the kdbus dbus1 proxy daemon requires the
+ Similarly, the kdbus dbus1 proxy daemon requires the
"systemd-bus-proxy" system user and group to exist.
WARNINGS:
* Should systemctl status \* work on all unit types, not just .service?
-* enabling an instance unit creates a pointless link, and
- the unit will be started with getty@getty.service:
- $ systemctl enable getty@.service
- ln -s '/usr/lib/systemd/system/getty@.service' '/etc/systemd/system/getty.target.wants/getty@.service'
-
* Dangling symlinks of .automount unit files in .wants/ directories, set up
automount points even when the original .automount file did not exist
anymore. Only the .mount unit was still around.
* properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
-* shorten the message to sane length:
-
- Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. See system logs and 'systemctl status display-manager.service' for details.
-
-* sd_bus_unref() is broken regarding self-references and "pseudo thread-safety".
- See the comment in sd_bus_unref() for more..
-
External:
* Fedora: when installing fedora with yum --installroot /var/run is a directory, not a symlink
https://bugzilla.redhat.com/show_bug.cgi?id=975864
* Fedora: post FPC ticket to move add %tmpfiles_create to the packaging guidelines
+* Fedora: move kernel image to /usr/lib/modules/, kernel-install will take care of populating /boot
+
Features:
+* new component "systemd-first-boot" which asks for locale, timezone,
+ root password on first boot if the configuration for that has not
+ been provisioned yet. Similar in style to what the distros have, but
+ minimalist, text-only /dev/console stuff.
+
+* Add a new verb "systemctl top"
+
+* order OnCalendar timer units after timer-sync.target if DefaultDependencies=no so that we don't trigger them prematurely
+
+* refuse mounting on symlinks
+
+* logind: allow users to kill or lock their own sessions
+
+* support empty /etc boots nicely:
+ - nspawn/gpt-generator: introduce new gpt partition type for /usr
+ - nspawn: add --mode=auto,stateful,stateless,volatile
+ - fstab-generator: support auot/stateful/stateless/volatile on the kernel cmdline, too
+ - fstab-generator: add support for usr= in addition to root= on the kernel cmdline
+
* generator that automatically discovers btrfs subvolumes, identifies their purpose based on some xattr on them.
* support setting empty environment variables with Environment= and EnvironmentFile=
* timer units: actually add extra delays to timer units with high AccuracySec values, don't start them already when we are awake...
-* timesyncd:
- - hookup with networkd: NTP servers from dhcp
+* timesyncd - hookup with networkd: NTP servers from dhcp
* a way for container managers to turn off getty starting via $container_headless= or so...
* figure out a nice way how we can let the admin know what child/sibling unit causes cgroup membership for a specific unit
-* add a kernel command line option to enable the debug shell
-
* journalctl: add the ability to look for the most recent process of a binary. journalctl /usr/bin/X11 --pid=-1 or so...
* set NOTIFY_SOCKET also for control processes
-* drop parsing of chkconfig header lines from service.c
-
* mount_cgroup_controllers(): symlinks need to get the label applied
-* For timer units: add some mechanisms so that timer units that trigger immediately on boot do not have the services they run added to the initial transaction and thus confuse Type=idle.
-
-* Add RPM macros for registering/unregistering binfmt drop-ins
+* For timer units: add some mechanisms so that timer units that trigger immediately on boot do not have the services
+ they run added to the initial transaction and thus confuse Type=idle.
* Add timeout to early-boot, and shut down the system if it is hit. Solves the laptop-in-bag problem and is useful for embedded cases
do not have to open it to know that it is not interesting for us, for
the most common operations.
-* support transient mount units
-
-* add an "input" group to udev logic and add all input devices to it
-
* add generator that pulls in systemd-network from containers when
CAP_NET_ADMIN is set, more than the loopback device is defined, even
when it is otherwise off
- add 'set -e' to scripts in test/
- make stuff in test/ work with separate output dir
-* systemctl delete x.snapshot leaves no trace in logs (at least at default level).
-
-* make the coredump collector tool move itself into the user's cgroup
- so that the coredump is properly written to the user's own journal
- file.
-
* seems that when we follow symlinks to units we prefer the symlink
destination path over /etc and /usr. We should not do that. Instead
/etc should always override /run+/usr and also any symlink
* use "log level" rather than "log priority" everywhere
-* timedate: have global on/off switches for auto-time (NTP), and auto-timezone that connman can subscribe to.
-
* merge unit_kill_common() and unit_kill_context()
* introduce ExecCondition= in services
about it. Should fix both to print nice actionable messages.
- print nice message from systemctl --failed if there are no entries shown, and hook that into ExecStartPre of rescue.service/emergency.service
- add new command to systemctl: "systemctl system-reexec" which reexecs as many daemons as virtually possible
- - systemctl enable: improve the success messages (i.e. more human readable, less shell-like)
- systemctl enable: fail if target to alias into does not exist? maybe show how many units are enabled afterwards?
- systemctl: "Journal has been rotated since unit was started." message is misleading
- support "systemctl stop foobar@.service" to stop all units matching a certain template
* unit install:
- "systemctl mask" should find all names by which a unit is accessible
(i.e. by scanning for symlinks to it) and link them all to /dev/null
- - "systemctl disable" of a unit instance removes all symlinks, but should
- only remove the instance symlink (systemctl disable of a template
- unit however should remove them all).
- systemctl list-unit-files should list generated files (and probably with a new state "generated" for them, or so)
- systemctl: maybe add "systemctl add-wants" or so...
-* deal with sendmail/postfix exclusivity
-
* timer units:
- timer units should get the ability to trigger when:
o CLOCK_REALTIME makes jumps (TFD_TIMER_CANCEL_ON_SET)
mode, it will never touch the RTC if the no reliable time source is active or the
user did not request anything like it.
-* libunwind support for coredump pattern hook, and includes this in
- the message for coredumps. After all, libunwind is now capable to
- unwind coredumps since a few weeks ago. This probably requires that
- we have nice support for multi-line messages on display in
- logs-show.c. Alternatively: use libelfutil, which seems to be the
- better supported alternative.
-
* add libsystemd-password or so to query passwords during boot using the password agent logic
* If we show an error about a unit (such as not showing up) and it has no Description string, then show a description string generated form the reverse of unit_name_mangle().
* fedup: do not delete initrd on switch-root
* fedup: generator
-* timedated: refuse time changes when NTP is on
-
* clean up date formatting and parsing so that all absolute/relative timestamps we format can also be parsed
* on shutdown: move utmp, wall, audit logic all into PID 1 (or logind?), get rid of systemd-update-utmp-runlevel
-* add "factory" instructions to setup an empty /etc + /var
- - used to setup a new container from a shared /usr
- - superset of tmpfiles model
- - instructions shipped by packages and stored in /usr/lib/
- - compose /etc/passwd and /etc/group, copy files
- - able to create uid + gid used by packages, for file ownership
-
* make repeated alt-ctrl-del presses printing a dump, or even force a reboot without
waiting for the timeout
* make timer units go away after they elapsed
-* http://lists.freedesktop.org/archives/systemd-devel/2012-September/006502.html
- (network and remote-fs on shutdown)
-
* come up with a nice way to write queue/read_ahead_kb for a block device without interfering with readahead
* move PID 1 segfaults to /var/lib/systemd/coredump?
* create /sbin/init symlinks from the build system
-* Query Paul Moore about relabelling socket fds while they are open
-
* allow writing multiple conditions in unit files on one line
-* explore multiple service instances per listening socket idea
-
* MountFlags=shared acts as MountFlags=slave right now.
* drop PID 1 reloading, only do reexecing (difficult: Reload()
* when a bus name of a service disappears from the bus make sure to queue further activation requests
* tmpfiles:
- - check systemd-tmpfiles for selinux context hookup for mknod(), symlink() and similar
- apply "x" on "D" too (see patch from William Douglas)
* for services: do not set $HOME in services unless requested
- readahead: when bumping /sys readahead variable save mtime and compare later to detect changes
- readahead: make use of EXT4_IOC_MOVE_EXT, as used by http://e4rat.sourceforge.net/
-* add support for /bin/mount -s
-
* GC unreferenced jobs (such as .device jobs)
* write blog stories about:
* allow port=0 in .socket units
-* support systemd.mask= on the kernel command line.
-
* recreate systemd's D-Bus private socket file on SIGUSR2
* Support --test based on current system state
- add reduced [Link] support to .network files
- add Scope= parsing option for [Network]
- properly handle routerless dhcp leases
- - set lifetime on the address acquired from dhcp
- - patch kernel to support module alias for tunnel device (ipip/sit/gre),
- then remove remove libkmod dependency and CAP_SYS_MODULE
- add veth netdev support (c.f. http://shorewall.net/bridge-Shorewall-perl.html#veth)
- add tun/tap netdev support
- add more attribute support for SIT tunnel
+ - make metric of routes configurable
+ - work with non-ethernet devices
* networkd-wait-online:
- make operstates to wait for configurable?
- export timezone information
- FORCERENEW
+* dhcp6:
+ - add functions to set previously stored IPv6 addresses on startup and get
+ them at shutdown; store them in client->ia_na
+ - write more test cases
+ - implement and do duplicate address detection, see rfc 4862, 5.4.
+ - implement reconfigure support, see 5.3., 15.11. and 22.20.
+ - implement information request, see 1.2. and 18.1.5.
+ - implement support for temporary adressess (IA_TA)
+ - implement elapsed time option
+ - implement dhcpv6 authentication
+ - investigate the usefulness of Confirm messages; i.e. are there any
+ situations where the link changes without any loss in carrier detection
+ or interface down
+ - some servers don't do rapid commit without a filled in IA_NA, verify
+ this behavior
+
External:
* dbus:
*/
#undef HAVE_DECL_GETTID
+/* Define to 1 if you have the declaration of `IFLA_BOND_AD_INFO', and to 0 if
+ you don't. */
+#undef HAVE_DECL_IFLA_BOND_AD_INFO
+
+/* Define to 1 if you have the declaration of `IFLA_BRIDGE_VLAN_INFO', and to
+ 0 if you don't. */
+#undef HAVE_DECL_IFLA_BRIDGE_VLAN_INFO
+
+/* Define to 1 if you have the declaration of
+ `IFLA_IPTUN_6RD_RELAY_PREFIXLEN', and to 0 if you don't. */
+#undef HAVE_DECL_IFLA_IPTUN_6RD_RELAY_PREFIXLEN
+
+/* Define to 1 if you have the declaration of `IFLA_PHYS_PORT_ID', and to 0 if
+ you don't. */
+#undef HAVE_DECL_IFLA_PHYS_PORT_ID
+
+/* Define to 1 if you have the declaration of `IFLA_VLAN_PROTOCOL', and to 0
+ if you don't. */
+#undef HAVE_DECL_IFLA_VLAN_PROTOCOL
+
+/* Define to 1 if you have the declaration of `IFLA_VXLAN_LOCAL6', and to 0 if
+ you don't. */
+#undef HAVE_DECL_IFLA_VXLAN_LOCAL6
+
/* Define to 1 if you have the declaration of `LO_FLAGS_PARTSCAN', and to 0 if
you don't. */
#undef HAVE_DECL_LO_FLAGS_PARTSCAN
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* ELFUTILS available */
+#undef HAVE_ELFUTILS
+
+/* Define to 1 if you have the <elfutils/libdwfl.h> header file. */
+#undef HAVE_ELFUTILS_LIBDWFL_H
+
/* Define to 1 if you have the `fanotify_init' function. */
#undef HAVE_FANOTIFY_INIT
/* Define if libcryptsetup is available */
#undef HAVE_LIBCRYPTSETUP
+/* Define to 1 if you have the `dw' library (-ldw). */
+#undef HAVE_LIBDW
+
/* Define to 1 if you have the <linux/btrfs.h> header file. */
#undef HAVE_LINUX_BTRFS_H
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for systemd 214.
+# Generated by GNU Autoconf 2.69 for systemd 215.
#
# Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=systemd>.
#
# Identity of this package.
PACKAGE_NAME='systemd'
PACKAGE_TARNAME='systemd'
-PACKAGE_VERSION='214'
-PACKAGE_STRING='systemd 214'
+PACKAGE_VERSION='215'
+PACKAGE_STRING='systemd 215'
PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=systemd'
PACKAGE_URL='http://www.freedesktop.org/wiki/Software/systemd'
ENABLE_TESTS_TRUE
ENABLE_GTK_DOC_TESTS_FALSE
ENABLE_GTK_DOC_TESTS_TRUE
+TTY_GID
HAVE_SYSV_COMPAT_FALSE
HAVE_SYSV_COMPAT_TRUE
M4_DEFINES
ENABLE_BACKLIGHT_TRUE
ENABLE_RANDOMSEED_FALSE
ENABLE_RANDOMSEED_TRUE
+ENABLE_SYSUSERS_FALSE
+ENABLE_SYSUSERS_TRUE
ENABLE_TMPFILES_FALSE
ENABLE_TMPFILES_TRUE
ENABLE_QUOTACHECK_FALSE
HAVE_LIBCRYPTSETUP_TRUE
LIBCRYPTSETUP_LIBS
LIBCRYPTSETUP_CFLAGS
+HAVE_ELFUTILS_FALSE
+HAVE_ELFUTILS_TRUE
+ELFUTILS_LIBS
AUDIT_LIBS
HAVE_GCRYPT_FALSE
HAVE_GCRYPT_TRUE
INTLTOOL_MERGE
INTLTOOL_UPDATE
USE_NLS
+intltool_found
OTOOL64
OTOOL
LIPO
enable_gcrypt
with_libgcrypt_prefix
enable_audit
+enable_elfutils
enable_libcryptsetup
enable_qrencode
enable_microhttpd
enable_bootchart
enable_quotacheck
enable_tmpfiles
+enable_sysusers
enable_randomseed
enable_backlight
enable_rfkill
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures systemd 214 to adapt to many kinds of systems.
+\`configure' configures systemd 215 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of systemd 214:";;
+ short | recursive ) echo "Configuration of systemd 215:";;
esac
cat <<\_ACEOF
--disable-smack Disable optional SMACK support
--disable-gcrypt Disable optional GCRYPT support
--disable-audit Disable optional AUDIT support
+ --disable-elfutils Disable optional ELFUTILS support
--disable-libcryptsetup disable libcryptsetup tools
--disable-qrencode disable qrencode support
--disable-microhttpd disable microhttpd support
--disable-bootchart disable bootchart tool
--disable-quotacheck disable quotacheck tools
--disable-tmpfiles disable tmpfiles support
+ --disable-sysusers disable sysusers support
--disable-randomseed disable randomseed tools
--disable-backlight disable backlight tools
--disable-rfkill disable rfkill tools
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-systemd configure 214
+systemd configure 215
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by systemd $as_me 214, which was
+It was created by systemd $as_me 215, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='systemd'
- VERSION='214'
+ VERSION='215'
cat >>confdefs.h <<_ACEOF
# i18n stuff for the PolicyKit policy files
+# Check whether intltool can be found, disable NLS otherwise
+# Extract the first word of "intltool-merge", so it can be a program name with args.
+set dummy intltool-merge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_intltool_found+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$intltool_found"; then
+ ac_cv_prog_intltool_found="$intltool_found" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_intltool_found="yes"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_prog_intltool_found" && ac_cv_prog_intltool_found="no"
+fi
+fi
+intltool_found=$ac_cv_prog_intltool_found
+if test -n "$intltool_found"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $intltool_found" >&5
+$as_echo "$intltool_found" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x"$intltool_found" != xyes; then :
+ if test x"$enable_nls" = xyes; then :
+ as_fn_error $? "--enable-nls requested but intltool not found" "$LINENO" 5
+else
+ if test x"$enable_nls" != xno; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Disabling NLS support because intltool was not found" >&5
+$as_echo "$as_me: WARNING: *** Disabling NLS support because intltool was not found" >&2;}
+ enable_nls=no
+fi
+
+fi
+
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
$as_echo_n "checking whether NLS is requested... " >&6; }
# Check whether --enable-nls was given.
$as_echo "$USE_NLS" >&6; }
+if test x"$enable_nls" != xno; then :
+
+ # intltoolize greps for '^(AC|IT)_PROG_INTLTOOL', so it needs to be on its own line
case "$am__api_version" in
+fi
+
+if test -z "$INTLTOOL_POLICY_RULE"; then :
+
+ # If intltool is not available, provide a dummy rule to fail generation of %.policy files with a meaningful error message
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in ; @echo " ITMRG " $@ && echo "*** intltool support required to build target $@" && false'
+
+
+fi
+
GETTEXT_PACKAGE=systemd
fi
- if "$PYTHON" -c 'import lxml' 2>/dev/null; then :
+ if test "x$PYTHON" != "x:"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python lxml module" >&5
+$as_echo_n "checking for python lxml module... " >&6; }
+ if "$PYTHON" -c 'import lxml' 2>/dev/null; then :
have_lxml=yes
-else
- have_lxml=no
fi
- if test "$PYTHON" != : -a $have_lxml = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_lxml" >&5
+$as_echo "$have_lxml" >&6; }
+ if test "x$have_lxml" = "xyes"; then :
have_python=yes
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** python support requires python-lxml module installed" >&5
+$as_echo "$as_me: WARNING: *** python support requires python-lxml module installed" >&2;}
+fi
+
+fi
+
fi
+if test "$have_python" != "yes"; then :
+ if test "$with_python" = "yes"; then :
+ as_fn_error $? "*** python support requested but python support not found" "$LINENO" 5
fi
+ if test "$with_python" != "no"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** python support not found, some documentation cannot be built" >&5
+$as_echo "$as_me: WARNING: *** python support not found, some documentation cannot be built" >&2;}
+fi
+
+fi
+
if test "x$have_python" = "xyes"; then
HAVE_PYTHON_TRUE=
HAVE_PYTHON_FALSE='#'
fi
done
-ac_fn_c_check_decl "$LINENO" "gettid" "ac_cv_have_decl_gettid" "#include <sys/types.h>
+ac_fn_c_check_decl "$LINENO" "gettid" "ac_cv_have_decl_gettid" "
+#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
#include <linux/loop.h>
+
"
if test "x$ac_cv_have_decl_gettid" = xyes; then :
ac_have_decl=1
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_GETTID $ac_have_decl
_ACEOF
-ac_fn_c_check_decl "$LINENO" "pivot_root" "ac_cv_have_decl_pivot_root" "#include <sys/types.h>
+ac_fn_c_check_decl "$LINENO" "pivot_root" "ac_cv_have_decl_pivot_root" "
+#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
#include <linux/loop.h>
+
"
if test "x$ac_cv_have_decl_pivot_root" = xyes; then :
ac_have_decl=1
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_PIVOT_ROOT $ac_have_decl
_ACEOF
-ac_fn_c_check_decl "$LINENO" "name_to_handle_at" "ac_cv_have_decl_name_to_handle_at" "#include <sys/types.h>
+ac_fn_c_check_decl "$LINENO" "name_to_handle_at" "ac_cv_have_decl_name_to_handle_at" "
+#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
#include <linux/loop.h>
+
"
if test "x$ac_cv_have_decl_name_to_handle_at" = xyes; then :
ac_have_decl=1
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_NAME_TO_HANDLE_AT $ac_have_decl
_ACEOF
-ac_fn_c_check_decl "$LINENO" "setns" "ac_cv_have_decl_setns" "#include <sys/types.h>
+ac_fn_c_check_decl "$LINENO" "setns" "ac_cv_have_decl_setns" "
+#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
#include <linux/loop.h>
+
"
if test "x$ac_cv_have_decl_setns" = xyes; then :
ac_have_decl=1
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_SETNS $ac_have_decl
_ACEOF
-ac_fn_c_check_decl "$LINENO" "LO_FLAGS_PARTSCAN" "ac_cv_have_decl_LO_FLAGS_PARTSCAN" "#include <sys/types.h>
+ac_fn_c_check_decl "$LINENO" "LO_FLAGS_PARTSCAN" "ac_cv_have_decl_LO_FLAGS_PARTSCAN" "
+#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
#include <linux/loop.h>
+
"
if test "x$ac_cv_have_decl_LO_FLAGS_PARTSCAN" = xyes; then :
ac_have_decl=1
_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_PHYS_PORT_ID" "ac_cv_have_decl_IFLA_PHYS_PORT_ID" "
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+
+"
+if test "x$ac_cv_have_decl_IFLA_PHYS_PORT_ID" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_PHYS_PORT_ID $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_BOND_AD_INFO" "ac_cv_have_decl_IFLA_BOND_AD_INFO" "
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+
+"
+if test "x$ac_cv_have_decl_IFLA_BOND_AD_INFO" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_BOND_AD_INFO $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_VLAN_PROTOCOL" "ac_cv_have_decl_IFLA_VLAN_PROTOCOL" "
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+
+"
+if test "x$ac_cv_have_decl_IFLA_VLAN_PROTOCOL" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_VLAN_PROTOCOL $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_VXLAN_LOCAL6" "ac_cv_have_decl_IFLA_VXLAN_LOCAL6" "
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+
+"
+if test "x$ac_cv_have_decl_IFLA_VXLAN_LOCAL6" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_VXLAN_LOCAL6 $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_IPTUN_6RD_RELAY_PREFIXLEN" "ac_cv_have_decl_IFLA_IPTUN_6RD_RELAY_PREFIXLEN" "
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+
+"
+if test "x$ac_cv_have_decl_IFLA_IPTUN_6RD_RELAY_PREFIXLEN" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_IPTUN_6RD_RELAY_PREFIXLEN $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "IFLA_BRIDGE_VLAN_INFO" "ac_cv_have_decl_IFLA_BRIDGE_VLAN_INFO" "
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+
+"
+if test "x$ac_cv_have_decl_IFLA_BRIDGE_VLAN_INFO" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_IFLA_BRIDGE_VLAN_INFO $ac_have_decl
+_ACEOF
+
+
# This makes sure pkg.m4 is available.
fi
+# ------------------------------------------------------------------------------
+# Check whether --enable-elfutils was given.
+if test "${enable_elfutils+set}" = set; then :
+ enableval=$enable_elfutils; case "${enableval}" in
+ yes) have_elfutils=yes ;;
+ no) have_elfutils=no ;;
+ *) as_fn_error $? "bad value ${enableval} for --disable-elfutils" "$LINENO" 5 ;;
+ esac
+else
+ have_elfutils=auto
+fi
+
+
+if test "x${have_elfutils}" != xno ; then
+ for ac_header in elfutils/libdwfl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "elfutils/libdwfl.h" "ac_cv_header_elfutils_libdwfl_h" "$ac_includes_default"
+if test "x$ac_cv_header_elfutils_libdwfl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ELFUTILS_LIBDWFL_H 1
+_ACEOF
+
+else
+ if test "x$have_elfutils" = xyes ; then
+ as_fn_error $? "*** ELFUTILS headers not found." "$LINENO" 5
+ fi
+fi
+
+done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dwfl_begin in -ldw" >&5
+$as_echo_n "checking for dwfl_begin in -ldw... " >&6; }
+if ${ac_cv_lib_dw_dwfl_begin+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldw $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dwfl_begin ();
+int
+main ()
+{
+return dwfl_begin ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dw_dwfl_begin=yes
+else
+ ac_cv_lib_dw_dwfl_begin=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dw_dwfl_begin" >&5
+$as_echo "$ac_cv_lib_dw_dwfl_begin" >&6; }
+if test "x$ac_cv_lib_dw_dwfl_begin" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBDW 1
+_ACEOF
+
+ LIBS="-ldw $LIBS"
+
+else
+ if test "x$have_elfutils" = xyes ; then
+ as_fn_error $? "*** ELFUTILS libs not found." "$LINENO" 5
+ fi
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dwfl_core_file_attach in -ldw" >&5
+$as_echo_n "checking for dwfl_core_file_attach in -ldw... " >&6; }
+if ${ac_cv_lib_dw_dwfl_core_file_attach+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldw $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dwfl_core_file_attach ();
+int
+main ()
+{
+return dwfl_core_file_attach ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dw_dwfl_core_file_attach=yes
+else
+ ac_cv_lib_dw_dwfl_core_file_attach=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dw_dwfl_core_file_attach" >&5
+$as_echo "$ac_cv_lib_dw_dwfl_core_file_attach" >&6; }
+if test "x$ac_cv_lib_dw_dwfl_core_file_attach" = xyes; then :
+ have_elfutils=yes
+else
+ if test "x$have_elfutils" = xyes ; then
+ as_fn_error $? "*** ELFUTILS >= 158 is required." "$LINENO" 5
+ fi
+fi
+
+
+ if test "x$have_elfutils" = xyes ; then
+ ELFUTILS_LIBS="-lelf -ldw"
+
+$as_echo "#define HAVE_ELFUTILS 1" >>confdefs.h
+
+ else
+ have_elfutils=no
+ fi
+else
+ ELFUTILS_LIBS=
+fi
+
+ if test "$have_elfutils" = "yes"; then
+ HAVE_ELFUTILS_TRUE=
+ HAVE_ELFUTILS_FALSE='#'
+else
+ HAVE_ELFUTILS_TRUE='#'
+ HAVE_ELFUTILS_FALSE=
+fi
+
+
# ------------------------------------------------------------------------------
have_libcryptsetup=no
# Check whether --enable-libcryptsetup was given.
fi
+# ------------------------------------------------------------------------------
+have_sysusers=no
+# Check whether --enable-sysusers was given.
+if test "${enable_sysusers+set}" = set; then :
+ enableval=$enable_sysusers;
+fi
+
+if test "x$enable_sysusers" != "xno"; then
+ have_sysusers=yes
+fi
+ if test "$have_sysusers" = "yes"; then
+ ENABLE_SYSUSERS_TRUE=
+ ENABLE_SYSUSERS_FALSE='#'
+else
+ ENABLE_SYSUSERS_TRUE='#'
+ ENABLE_SYSUSERS_FALSE=
+fi
+
+
# ------------------------------------------------------------------------------
have_randomseed=no
# Check whether --enable-randomseed was given.
enableval=$enable_networkd;
fi
-if test "x$enable_networkd" != "xno"; then
+if test "x$enable_networkd" != "xno"; then :
+
$as_echo "#define ENABLE_NETWORKD 1" >>confdefs.h
have_networkd=yes
+
fi
if test "x$have_networkd" = "xyes"; then
ENABLE_NETWORKD_TRUE=
# Check whether --with-tty-gid was given.
if test "${with_tty_gid+set}" = set; then :
- withval=$with_tty_gid;
+ withval=$with_tty_gid; TTY_GID="$withval"
+else
+ TTY_GID="5"
+fi
+
+
+
cat >>confdefs.h <<_ACEOF
-#define TTY_GID $withval
+#define TTY_GID $TTY_GID
_ACEOF
-fi
as_fn_error $? "conditional \"HAVE_GCRYPT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_ELFUTILS_TRUE}" && test -z "${HAVE_ELFUTILS_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_ELFUTILS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_LIBCRYPTSETUP_TRUE}" && test -z "${HAVE_LIBCRYPTSETUP_FALSE}"; then
as_fn_error $? "conditional \"HAVE_LIBCRYPTSETUP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
as_fn_error $? "conditional \"ENABLE_TMPFILES\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${ENABLE_SYSUSERS_TRUE}" && test -z "${ENABLE_SYSUSERS_FALSE}"; then
+ as_fn_error $? "conditional \"ENABLE_SYSUSERS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_RANDOMSEED_TRUE}" && test -z "${ENABLE_RANDOMSEED_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_RANDOMSEED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by systemd $as_me 214, which was
+This file was extended by systemd $as_me 215, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-systemd config.status 214
+systemd config.status 215
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
MICROHTTPD: ${have_microhttpd}
CHKCONFIG: ${have_chkconfig}
GNUTLS: ${have_gnutls}
+ ELFUTILS: ${have_elfutils}
binfmt: ${have_binfmt}
vconsole: ${have_vconsole}
readahead: ${have_readahead}
bootchart: ${have_bootchart}
quotacheck: ${have_quotacheck}
tmpfiles: ${have_tmpfiles}
+ sysusers: ${have_sysusers}
randomseed: ${have_randomseed}
backlight: ${have_backlight}
rfkill: ${have_rfkill}
Extra start script: ${RC_LOCAL_SCRIPT_PATH_START}
Extra stop script: ${RC_LOCAL_SCRIPT_PATH_STOP}
Debug shell: ${SUSHELL} @ ${DEBUGTTY}
+ TTY GID: ${TTY_GID}
Maximum System UID: ${SYSTEM_UID_MAX}
Maximum System GID: ${SYSTEM_GID_MAX}
MICROHTTPD: ${have_microhttpd}
CHKCONFIG: ${have_chkconfig}
GNUTLS: ${have_gnutls}
+ ELFUTILS: ${have_elfutils}
binfmt: ${have_binfmt}
vconsole: ${have_vconsole}
readahead: ${have_readahead}
bootchart: ${have_bootchart}
quotacheck: ${have_quotacheck}
tmpfiles: ${have_tmpfiles}
+ sysusers: ${have_sysusers}
randomseed: ${have_randomseed}
backlight: ${have_backlight}
rfkill: ${have_rfkill}
Extra start script: ${RC_LOCAL_SCRIPT_PATH_START}
Extra stop script: ${RC_LOCAL_SCRIPT_PATH_STOP}
Debug shell: ${SUSHELL} @ ${DEBUGTTY}
+ TTY GID: ${TTY_GID}
Maximum System UID: ${SYSTEM_UID_MAX}
Maximum System GID: ${SYSTEM_GID_MAX}
AC_PREREQ([2.64])
AC_INIT([systemd],
- [214],
+ [215],
[http://bugs.freedesktop.org/enter_bug.cgi?product=systemd],
[systemd],
[http://www.freedesktop.org/wiki/Software/systemd])
AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by systemd])])
# i18n stuff for the PolicyKit policy files
+
+# Check whether intltool can be found, disable NLS otherwise
+AC_CHECK_PROG(intltool_found, [intltool-merge], [yes], [no])
+AS_IF([test x"$intltool_found" != xyes],
+ [AS_IF([test x"$enable_nls" = xyes],
+ [AC_MSG_ERROR([--enable-nls requested but intltool not found])],
+ [AS_IF([test x"$enable_nls" != xno],
+ [AC_MSG_WARN([*** Disabling NLS support because intltool was not found])
+ enable_nls=no])
+ ])
+ ])
+
+AM_NLS
+AS_IF([test x"$enable_nls" != xno], [
+ # intltoolize greps for '^(AC|IT)_PROG_INTLTOOL', so it needs to be on its own line
IT_PROG_INTLTOOL([0.40.0])
+])
+
+AS_IF([test -z "$INTLTOOL_POLICY_RULE"], [
+ # If intltool is not available, provide a dummy rule to fail generation of %.policy files with a meaningful error message
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in ; @echo " ITMRG " $@ && echo "*** intltool support required to build target $@" && false'
+ AC_SUBST(INTLTOOL_POLICY_RULE)
+])
GETTEXT_PACKAGE=systemd
AC_SUBST(GETTEXT_PACKAGE)
have_lxml=no
AS_IF([test "x$with_python" != "xno"], [
AM_PATH_PYTHON(,, [:])
- AS_IF(["$PYTHON" -c 'import lxml' 2>/dev/null], [have_lxml=yes], [have_lxml=no])
- AS_IF([test "$PYTHON" != : -a $have_lxml = yes], [have_python=yes])
+ AS_IF([test "x$PYTHON" != "x:"], [
+ AC_MSG_CHECKING([for python lxml module])
+ AS_IF(["$PYTHON" -c 'import lxml' 2>/dev/null], [have_lxml=yes])
+ AC_MSG_RESULT([$have_lxml])
+ AS_IF([test "x$have_lxml" = "xyes"], [have_python=yes],
+ [AC_MSG_WARN([*** python support requires python-lxml module installed])])
+ ])
+])
+AS_IF([test "$have_python" != "yes"], [
+ AS_IF([test "$with_python" = "yes"],
+ [AC_MSG_ERROR([*** python support requested but python support not found])])
+ AS_IF([test "$with_python" != "no"],
+ [AC_MSG_WARN([*** python support not found, some documentation cannot be built])])
])
+
AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"])
AS_IF([test "x$PYTHON_BINARY" = "x"],
[AS_IF([test "x$have_python" = "xyes"],
AC_CHECK_FUNCS([fanotify_init fanotify_mark])
AC_CHECK_FUNCS([__secure_getenv secure_getenv])
-AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, LO_FLAGS_PARTSCAN], [], [], [[#include <sys/types.h>
+AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, LO_FLAGS_PARTSCAN],
+ [], [], [[
+#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
#include <fcntl.h>
#include <sched.h>
-#include <linux/loop.h>]])
+#include <linux/loop.h>
+]])
+
+AC_CHECK_DECLS([IFLA_PHYS_PORT_ID,
+ IFLA_BOND_AD_INFO,
+ IFLA_VLAN_PROTOCOL,
+ IFLA_VXLAN_LOCAL6,
+ IFLA_IPTUN_6RD_RELAY_PREFIXLEN,
+ IFLA_BRIDGE_VLAN_INFO],
+[], [], [[
+#include <inttypes.h>
+#include <netinet/in.h>
+#include <netinet/ether.h>
+#include <linux/rtnetlink.h>
+#include <net/if.h>
+#include <linux/ip.h>
+#include <linux/if_tunnel.h>
+#include <linux/if_link.h>
+#include <linux/if_bridge.h>
+]])
# This makes sure pkg.m4 is available.
m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
fi
AC_SUBST(AUDIT_LIBS)
+# ------------------------------------------------------------------------------
+AC_ARG_ENABLE([elfutils],
+ AS_HELP_STRING([--disable-elfutils],[Disable optional ELFUTILS support]),
+ [case "${enableval}" in
+ yes) have_elfutils=yes ;;
+ no) have_elfutils=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-elfutils) ;;
+ esac],
+ [have_elfutils=auto])
+
+if test "x${have_elfutils}" != xno ; then
+ AC_CHECK_HEADERS(
+ [elfutils/libdwfl.h],
+ [],
+ [if test "x$have_elfutils" = xyes ; then
+ AC_MSG_ERROR([*** ELFUTILS headers not found.])
+ fi])
+
+ AC_CHECK_LIB(
+ [dw],
+ [dwfl_begin],
+ [],
+ [if test "x$have_elfutils" = xyes ; then
+ AC_MSG_ERROR([*** ELFUTILS libs not found.])
+ fi])
+
+ AC_CHECK_LIB(
+ [dw],
+ [dwfl_core_file_attach],
+ [have_elfutils=yes],
+ [if test "x$have_elfutils" = xyes ; then
+ AC_MSG_ERROR([*** ELFUTILS >= 158 is required.])
+ fi])
+
+ if test "x$have_elfutils" = xyes ; then
+ ELFUTILS_LIBS="-lelf -ldw"
+ AC_DEFINE(HAVE_ELFUTILS, 1, [ELFUTILS available])
+ else
+ have_elfutils=no
+ fi
+else
+ ELFUTILS_LIBS=
+fi
+AC_SUBST(ELFUTILS_LIBS)
+AM_CONDITIONAL(HAVE_ELFUTILS, [test "$have_elfutils" = "yes"])
+
# ------------------------------------------------------------------------------
have_libcryptsetup=no
AC_ARG_ENABLE(libcryptsetup, AS_HELP_STRING([--disable-libcryptsetup], [disable libcryptsetup tools]))
fi
AM_CONDITIONAL(ENABLE_TMPFILES, [test "$have_tmpfiles" = "yes"])
+# ------------------------------------------------------------------------------
+have_sysusers=no
+AC_ARG_ENABLE(sysusers, AS_HELP_STRING([--disable-sysusers], [disable sysusers support]))
+if test "x$enable_sysusers" != "xno"; then
+ have_sysusers=yes
+fi
+AM_CONDITIONAL(ENABLE_SYSUSERS, [test "$have_sysusers" = "yes"])
+
# ------------------------------------------------------------------------------
have_randomseed=no
AC_ARG_ENABLE(randomseed, AS_HELP_STRING([--disable-randomseed], [disable randomseed tools]))
# ------------------------------------------------------------------------------
have_networkd=no
AC_ARG_ENABLE(networkd, AS_HELP_STRING([--disable-networkd], [disable networkd]))
-if test "x$enable_networkd" != "xno"; then
+AS_IF([test "x$enable_networkd" != "xno"], [
AC_DEFINE(ENABLE_NETWORKD, 1, [Define if networkd support is to be enabled])
have_networkd=yes
-fi
+])
AM_CONDITIONAL(ENABLE_NETWORKD, [test "x$have_networkd" = "xyes"])
# ------------------------------------------------------------------------------
AC_ARG_WITH([tty-gid],
[AS_HELP_STRING([--with-tty-gid=GID],
[Specify the numeric GID of the 'tty' group])],
- [AC_DEFINE_UNQUOTED(TTY_GID, [$withval], [GID of the 'tty' group])],
- [])
+ [TTY_GID="$withval"],
+ [TTY_GID="5"])
+
+AC_DEFINE_UNQUOTED(TTY_GID, [$TTY_GID], [GID of the 'tty' group])
+AC_SUBST(TTY_GID)
AC_ARG_WITH([dbuspolicydir],
AS_HELP_STRING([--with-dbuspolicydir=DIR], [D-Bus policy directory]),
MICROHTTPD: ${have_microhttpd}
CHKCONFIG: ${have_chkconfig}
GNUTLS: ${have_gnutls}
+ ELFUTILS: ${have_elfutils}
binfmt: ${have_binfmt}
vconsole: ${have_vconsole}
readahead: ${have_readahead}
bootchart: ${have_bootchart}
quotacheck: ${have_quotacheck}
tmpfiles: ${have_tmpfiles}
+ sysusers: ${have_sysusers}
randomseed: ${have_randomseed}
backlight: ${have_backlight}
rfkill: ${have_rfkill}
Extra start script: ${RC_LOCAL_SCRIPT_PATH_START}
Extra stop script: ${RC_LOCAL_SCRIPT_PATH_STOP}
Debug shell: ${SUSHELL} @ ${DEBUGTTY}
+ TTY GID: ${TTY_GID}
Maximum System UID: ${SYSTEM_UID_MAX}
Maximum System GID: ${SYSTEM_GID_MAX}
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ELFUTILS_LIBS = @ELFUTILS_LIBS@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIRMWARE_PATH = @FIRMWARE_PATH@
SYSTEM_SYSVRCND_PATH = @SYSTEM_SYSVRCND_PATH@
SYSTEM_UID_MAX = @SYSTEM_UID_MAX@
TELINIT = @TELINIT@
+TTY_GID = @TTY_GID@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
install_sh = @install_sh@
intltool__v_merge_options_ = @intltool__v_merge_options_@
intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+intltool_found = @intltool_found@
lcov_found = @lcov_found@
libdir = @libdir@
libexecdir = @libexecdir@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GUdev Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- For version 214
+ For version 215
— the latest version of this
documentation can be found at
<a class="ulink" href="http://www.freedesktop.org/software/systemd/gudev/" target="_top">
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ELFUTILS_LIBS = @ELFUTILS_LIBS@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIRMWARE_PATH = @FIRMWARE_PATH@
SYSTEM_SYSVRCND_PATH = @SYSTEM_SYSVRCND_PATH@
SYSTEM_UID_MAX = @SYSTEM_UID_MAX@
TELINIT = @TELINIT@
+TTY_GID = @TTY_GID@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
install_sh = @install_sh@
intltool__v_merge_options_ = @intltool__v_merge_options_@
intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+intltool_found = @intltool_found@
lcov_found = @lcov_found@
libdir = @libdir@
libexecdir = @libexecdir@
</dt>
<dd></dd>
<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-flush" title="udev_queue_flush ()">udev_queue_flush</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-fd" title="udev_queue_get_fd ()">udev_queue_get_fd</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="libudev-udev-queue.html#udev-queue-get-kernel-seqnum" title="udev_queue_get_kernel_seqnum ()">udev_queue_get_kernel_seqnum</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
</dt>
<dd></dd>
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libudev Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- For version 214
+ For version 215
— the latest version of this
documentation can be found at
<a class="ulink" href="http://www.freedesktop.org/software/systemd/libudev/" target="_top">
<ANCHOR id="udev-queue-get-queued-list-entry" href="libudev/libudev-udev-queue.html#udev-queue-get-queued-list-entry">
<ANCHOR id="udev-queue-get-kernel-seqnum" href="libudev/libudev-udev-queue.html#udev-queue-get-kernel-seqnum">
<ANCHOR id="udev-queue-get-udev-seqnum" href="libudev/libudev-udev-queue.html#udev-queue-get-udev-seqnum">
+<ANCHOR id="udev-queue-get-fd" href="libudev/libudev-udev-queue.html#udev-queue-get-fd">
+<ANCHOR id="udev-queue-flush" href="libudev/libudev-udev-queue.html#udev-queue-flush">
<ANCHOR id="libudev-udev-hwdb" href="libudev/libudev-udev-hwdb.html">
<ANCHOR id="libudev-udev-hwdb.synopsis" href="libudev/libudev-udev-hwdb.html#libudev-udev-hwdb.synopsis">
<ANCHOR id="libudev-udev-hwdb.description" href="libudev/libudev-udev-hwdb.html#libudev-udev-hwdb.description">
(<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
unsigned long long <span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-kernel-seqnum" title="udev_queue_get_kernel_seqnum ()">udev_queue_get_kernel_seqnum</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
unsigned long long <span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-udev-seqnum" title="udev_queue_get_udev_seqnum ()">udev_queue_get_udev_seqnum</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-fd" title="udev_queue_get_fd ()">udev_queue_get_fd</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-flush" title="udev_queue_flush ()">udev_queue_flush</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
</pre>
</div>
<div class="refsect1">
</tbody>
</table></div>
</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-fd"></a><h3>udev_queue_get_fd ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_queue_get_fd (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-flush"></a><h3>udev_queue_flush ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_queue_flush (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+</div>
</div>
</div>
<div class="footer">
<keyword type="function" name="udev_queue_get_queued_list_entry ()" link="libudev-udev-queue.html#udev-queue-get-queued-list-entry"/>
<keyword type="function" name="udev_queue_get_kernel_seqnum ()" link="libudev-udev-queue.html#udev-queue-get-kernel-seqnum"/>
<keyword type="function" name="udev_queue_get_udev_seqnum ()" link="libudev-udev-queue.html#udev-queue-get-udev-seqnum"/>
+ <keyword type="function" name="udev_queue_get_fd ()" link="libudev-udev-queue.html#udev-queue-get-fd"/>
+ <keyword type="function" name="udev_queue_flush ()" link="libudev-udev-queue.html#udev-queue-flush"/>
<keyword type="struct" name="struct udev_hwdb" link="libudev-udev-hwdb.html#udev-hwdb"/>
<keyword type="function" name="udev_hwdb_ref ()" link="libudev-udev-hwdb.html#udev-hwdb-ref"/>
<keyword type="function" name="udev_hwdb_unref ()" link="libudev-udev-hwdb.html#udev-hwdb-unref"/>
udev_queue_get_queued_list_entry
udev_queue_get_kernel_seqnum
udev_queue_get_udev_seqnum
+udev_queue_get_fd
+udev_queue_flush
</SECTION>
<SECTION>
ID_OUI_FROM_DATABASE=R-S-I Elektrotechnik GmbH & Co. KG
OUI:0050C2872*
- ID_OUI_FROM_DATABASE=Oliotalo - Objecthouse Oy
+ ID_OUI_FROM_DATABASE=Oliotalo Oy
OUI:0050C2873*
ID_OUI_FROM_DATABASE=XRONET Corporation
ID_OUI_FROM_DATABASE=2Wire, Inc.
OUI:001EC8*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Rapid Mobile (Pty) Ltd
OUI:001EC9*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Dell Inc
OUI:001ECA*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Nortel
OUI:001ECB*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE="RPC "Energoautomatika" Ltd
OUI:001ECC*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=CDVI
OUI:001ECD*
ID_OUI_FROM_DATABASE=KYLAND Technology Co. LTD
OUI:001ECE*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=BISA Technologies (Hong Kong) Limited
OUI:001ECF*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=PHILIPS ELECTRONICS UK LTD
OUI:001ED0*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Ingespace
OUI:001ED1*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Keyprocessor B.V.
OUI:001ED2*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Ray Shine Video Technology Inc
OUI:001ED3*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Dot Technology Int'l Co., Ltd.
OUI:001ED4*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Doble Engineering
OUI:001ED5*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Tekon-Automatics
OUI:001ED6*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Alentec & Orion AB
OUI:001ED7*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=H-Stream Wireless, Inc.
OUI:001ED8*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Digital United Inc.
OUI:001ED9*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Mitsubishi Precision Co.,LTd.
OUI:001EDA*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Wesemann Elektrotechniek B.V.
OUI:001EDB*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Giken Trastem Co., Ltd.
OUI:001EDC*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB
OUI:001EDD*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=WASKO S.A.
OUI:001EDE*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=BYD COMPANY LIMITED
OUI:001EDF*
- ID_OUI_FROM_DATABASE=2Wire, Inc.
+ ID_OUI_FROM_DATABASE=Master Industrialization Center Kista
OUI:001EE0*
ID_OUI_FROM_DATABASE=Urmet Domus SpA
ID_OUI_FROM_DATABASE=ENTREGA TECHNOLOGIES, INC.
OUI:0050F9*
- ID_OUI_FROM_DATABASE=SENSORMATIC ACD
+ ID_OUI_FROM_DATABASE=Sensormatic Electronics LLC
OUI:0050FA*
ID_OUI_FROM_DATABASE=OXTEL, LTD.
OUI:005907*
ID_OUI_FROM_DATABASE=LenovoEMC Products USA, LLC
+OUI:005A39*
+ ID_OUI_FROM_DATABASE=SHENZHEN FAST TECHNOLOGIES CO., LTD.
+
OUI:005CB1*
ID_OUI_FROM_DATABASE=Gospell DIGITAL TECHNOLOGY CO., LTD
OUI:0060FF*
ID_OUI_FROM_DATABASE=QuVis, Inc.
+OUI:006171*
+ ID_OUI_FROM_DATABASE=Apple
+
OUI:006440*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:009D8E*
ID_OUI_FROM_DATABASE=CARDIAC RECORDERS, INC.
+OUI:009EC8*
+ ID_OUI_FROM_DATABASE=Beijing Xiaomi Electronic Products Co., Ltd.
+
OUI:00A000*
ID_OUI_FROM_DATABASE=CENTILLION NETWORKS, INC.
OUI:00D632*
ID_OUI_FROM_DATABASE=GE Energy
+OUI:00D9D1*
+ ID_OUI_FROM_DATABASE=Sony Computer Entertainment Inc.
+
OUI:00DB1E*
ID_OUI_FROM_DATABASE=Albedo Telecom SL
OUI:0463E0*
ID_OUI_FROM_DATABASE=Nome Oy
+OUI:046785*
+ ID_OUI_FROM_DATABASE=scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH
+
OUI:046D42*
ID_OUI_FROM_DATABASE=Bryston Ltd.
OUI:04DD4C*
ID_OUI_FROM_DATABASE=Velocytech
+OUI:04DEDB*
+ ID_OUI_FROM_DATABASE=Rockport Networks Inc
+
OUI:04DF69*
ID_OUI_FROM_DATABASE=Car Connectivity Consortium
OUI:084027*
ID_OUI_FROM_DATABASE=Gridstore Inc.
+OUI:084656*
+ ID_OUI_FROM_DATABASE=VODALYS Ingénierie
+
OUI:08482C*
ID_OUI_FROM_DATABASE=Raycore Taiwan Co., LTD.
OUI:0CCDFB*
ID_OUI_FROM_DATABASE=EDIC Systems Inc.
+OUI:0CCFD1*
+ ID_OUI_FROM_DATABASE=SPRINGWAVE Co., Ltd
+
OUI:0CD292*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:101212*
ID_OUI_FROM_DATABASE=Vivo International Corporation Pty Ltd
+OUI:101218*
+ ID_OUI_FROM_DATABASE=Korins Inc.
+
OUI:101248*
ID_OUI_FROM_DATABASE=ITG, Inc.
OUI:102EAF*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:102F6B*
+ ID_OUI_FROM_DATABASE=Microsoft Corporation
+
OUI:103047*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:1048B1*
ID_OUI_FROM_DATABASE=Beijing Duokan Technology Limited
+OUI:104B46*
+ ID_OUI_FROM_DATABASE=Mitsubishi Electric Corporation
+
OUI:104D77*
ID_OUI_FROM_DATABASE=Innovative Computer Engineering
OUI:1088CE*
ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd.
+OUI:108A1B*
+ ID_OUI_FROM_DATABASE=RAONIX Inc.
+
OUI:108CCF*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:1446E4*
ID_OUI_FROM_DATABASE=AVISTEL
+OUI:14488B*
+ ID_OUI_FROM_DATABASE=Shenzhen Doov Technology Co.,Ltd
+
OUI:144978*
ID_OUI_FROM_DATABASE=Digital Control Incorporated
OUI:145645*
ID_OUI_FROM_DATABASE=Savitech Corp.
+OUI:1458D0*
+ ID_OUI_FROM_DATABASE=Hewlett Packard
+
OUI:145A05*
ID_OUI_FROM_DATABASE=Apple
OUI:14EDA5*
ID_OUI_FROM_DATABASE=Wächter GmbH Sicherheitssysteme
+OUI:14EDE4*
+ ID_OUI_FROM_DATABASE=Kaiam Corporation
+
OUI:14EE9D*
ID_OUI_FROM_DATABASE=AirNav Systems LLC
OUI:186D99*
ID_OUI_FROM_DATABASE=Adanis Inc.
+OUI:187117*
+ ID_OUI_FROM_DATABASE=eta plus electronic gmbh
+
OUI:1879A2*
ID_OUI_FROM_DATABASE=GMJ ELECTRIC LIMITED
OUI:1880F5*
ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd
+OUI:188219*
+ ID_OUI_FROM_DATABASE=Alibaba Cloud Computing Ltd.
+
OUI:188331*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:18A905*
ID_OUI_FROM_DATABASE=Hewlett-Packard Company
+OUI:18A958*
+ ID_OUI_FROM_DATABASE=PROVISION THAI CO., LTD.
+
OUI:18A99B*
ID_OUI_FROM_DATABASE=Dell Inc
OUI:1C4593*
ID_OUI_FROM_DATABASE=Texas Instruments
+OUI:1C4840*
+ ID_OUI_FROM_DATABASE=IMS Messsysteme GmbH
+
OUI:1C48F9*
ID_OUI_FROM_DATABASE=GN Netcom A/S
OUI:1C51B5*
ID_OUI_FROM_DATABASE=Techaya LTD
+OUI:1C5216*
+ ID_OUI_FROM_DATABASE=DONGGUAN HELE ELECTRONICS CO., LTD
+
OUI:1C52D6*
ID_OUI_FROM_DATABASE=FLAT DISPLAY TECHNOLOGY CORPORATION
OUI:1C69A5*
ID_OUI_FROM_DATABASE=Research In Motion
+OUI:1C6A7A*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:1C6BCA*
ID_OUI_FROM_DATABASE=Mitsunami Co., Ltd.
OUI:1C994C*
ID_OUI_FROM_DATABASE=Murata Manufactuaring Co.,Ltd.
+OUI:1C9C26*
+ ID_OUI_FROM_DATABASE=Zoovel Technologies
+
+OUI:1CA2B1*
+ ID_OUI_FROM_DATABASE=ruwido austria gmbh
+
OUI:1CA770*
ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LT
OUI:1CD40C*
ID_OUI_FROM_DATABASE=Kriwan Industrie-Elektronik GmbH
+OUI:1CDEA7*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:1CDF0F*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:201257*
ID_OUI_FROM_DATABASE=Most Lucky Trading Ltd
+OUI:2012D5*
+ ID_OUI_FROM_DATABASE=Scientech Materials Corporation
+
OUI:2013E0*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:205B5E*
ID_OUI_FROM_DATABASE=Shenzhen Wonhe Technology Co., Ltd
+OUI:205CFA*
+ ID_OUI_FROM_DATABASE=Yangzhou ChangLian Network Technology Co,ltd.
+
OUI:206432*
ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO MECHANICS CO.,LTD.
OUI:20A787*
ID_OUI_FROM_DATABASE=Bointec Taiwan Corporation Limited
+OUI:20A99B*
+ ID_OUI_FROM_DATABASE=Microsoft Corporation
+
OUI:20AA25*
ID_OUI_FROM_DATABASE=IP-NET LLC
OUI:20C1AF*
ID_OUI_FROM_DATABASE=i Wit Digital Co., Limited
+OUI:20C38F*
+ ID_OUI_FROM_DATABASE=Texas Instruments Inc
+
OUI:20C60D*
ID_OUI_FROM_DATABASE=Shanghai annijie Information technology Co.,LTD
OUI:243C20*
ID_OUI_FROM_DATABASE=Dynamode Group
+OUI:2442BC*
+ ID_OUI_FROM_DATABASE=Alinco,incorporated
+
OUI:244597*
ID_OUI_FROM_DATABASE=GEMUE Gebr. Mueller Apparatebau
OUI:28A574*
ID_OUI_FROM_DATABASE=Miller Electric Mfg. Co.
+OUI:28A5EE*
+ ID_OUI_FROM_DATABASE=Shenzhen SDGI CATV Co., Ltd
+
OUI:28AF0A*
ID_OUI_FROM_DATABASE=Sirius XM Radio Inc
OUI:2C00F7*
ID_OUI_FROM_DATABASE=XOS
+OUI:2C010B*
+ ID_OUI_FROM_DATABASE=NASCENT Technology, LLC - RemKon
+
OUI:2C0623*
ID_OUI_FROM_DATABASE=Win Leader Inc.
OUI:2C1984*
ID_OUI_FROM_DATABASE=IDN Telecom, Inc.
+OUI:2C1A31*
+ ID_OUI_FROM_DATABASE=Electronics Company Limited
+
OUI:2C1EEA*
ID_OUI_FROM_DATABASE=AERODEV
OUI:2CA157*
ID_OUI_FROM_DATABASE=acromate, Inc.
+OUI:2CA30E*
+ ID_OUI_FROM_DATABASE=POWER DRAGON DEVELOPMENT LIMITED
+
OUI:2CA780*
ID_OUI_FROM_DATABASE=True Technologies Inc.
OUI:304174*
ID_OUI_FROM_DATABASE=ALTEC LANSING LLC
+OUI:304225*
+ ID_OUI_FROM_DATABASE=BURG-WÄCHTER KG
+
OUI:304449*
ID_OUI_FROM_DATABASE=PLATH GmbH
OUI:3071B2*
ID_OUI_FROM_DATABASE=Hangzhou Prevail Optoelectronic Equipment Co.,LTD.
+OUI:307512*
+ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB
+
OUI:30766F*
ID_OUI_FROM_DATABASE=LG Electronics
OUI:340286*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:34029B*
+ ID_OUI_FROM_DATABASE=CloudBerry Technologies Private Limited
+
OUI:3407FB*
ID_OUI_FROM_DATABASE=Ericsson AB
OUI:34255D*
ID_OUI_FROM_DATABASE=Shenzhen Loadcom Technology Co.,Ltd
+OUI:3428F0*
+ ID_OUI_FROM_DATABASE=ATN International Limited
+
OUI:3429EA*
ID_OUI_FROM_DATABASE=MCD ELECTRONICS SP. Z O.O.
OUI:344B50*
ID_OUI_FROM_DATABASE=ZTE Corporation
+OUI:344DF7*
+ ID_OUI_FROM_DATABASE=LG Electronics
+
OUI:344F3F*
ID_OUI_FROM_DATABASE=IO-Power Technology Co., Ltd.
OUI:346178*
ID_OUI_FROM_DATABASE=The Boeing Company
+OUI:346288*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:34684A*
ID_OUI_FROM_DATABASE=Teraworks Co., Ltd.
OUI:34B571*
ID_OUI_FROM_DATABASE=PLDS
+OUI:34B7FD*
+ ID_OUI_FROM_DATABASE=Guangzhou Younghead Electronic Technology Co.,Ltd
+
OUI:34BA51*
ID_OUI_FROM_DATABASE=Se-Kure Controls, Inc.
OUI:34F62D*
ID_OUI_FROM_DATABASE=SHARP Corporation
+OUI:34F6D2*
+ ID_OUI_FROM_DATABASE=Panasonic Taiwan Co.,Ltd.
+
OUI:34F968*
ID_OUI_FROM_DATABASE=ATEK Products, LLC
OUI:3806B4*
ID_OUI_FROM_DATABASE=A.D.C. GmbH
+OUI:3808FD*
+ ID_OUI_FROM_DATABASE=Silca Spa
+
OUI:380A0A*
ID_OUI_FROM_DATABASE=Sky-City Communication and Electronics Limited Company
OUI:38484C*
ID_OUI_FROM_DATABASE=Apple
+OUI:384B76*
+ ID_OUI_FROM_DATABASE=AIRTAME ApS
+
OUI:384FF0*
ID_OUI_FROM_DATABASE=Azurewave Technologies, Inc.
OUI:38B12D*
ID_OUI_FROM_DATABASE=Sonotronic Nagel GmbH
+OUI:38B1DB*
+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
+
OUI:38B5BD*
ID_OUI_FROM_DATABASE=E.G.O. Elektro-Ger
OUI:38F098*
ID_OUI_FROM_DATABASE=Vapor Stone Rail Systems
+OUI:38F33F*
+ ID_OUI_FROM_DATABASE=TATSUNO CORPORATION
+
OUI:38F597*
ID_OUI_FROM_DATABASE=home2net GmbH
OUI:3C5A37*
ID_OUI_FROM_DATABASE=Samsung Electronics
+OUI:3C5AB4*
+ ID_OUI_FROM_DATABASE=Google
+
OUI:3C5F01*
ID_OUI_FROM_DATABASE=Synerchip Co., Ltd.
OUI:407496*
ID_OUI_FROM_DATABASE=aFUN TECHNOLOGY INC.
+OUI:40786A*
+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC
+
OUI:407875*
ID_OUI_FROM_DATABASE=IMBEL - Industria de Material Belico do Brasil
OUI:40D559*
ID_OUI_FROM_DATABASE=MICRO S.E.R.I.
+OUI:40E230*
+ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc.
+
OUI:40E730*
ID_OUI_FROM_DATABASE=DEY Storage Systems, Inc.
OUI:4487FC*
ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEM CO., LTD.
+OUI:4488CB*
+ ID_OUI_FROM_DATABASE=Camco Technologies NV
+
OUI:448A5B*
ID_OUI_FROM_DATABASE=Micro-Star INT'L CO., LTD.
OUI:485261*
ID_OUI_FROM_DATABASE=SOREEL
+OUI:4857DD*
+ ID_OUI_FROM_DATABASE=Facebook
+
OUI:485929*
ID_OUI_FROM_DATABASE=LG Electronics
OUI:486276*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:486B2C*
+ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd.,
+
OUI:486B91*
ID_OUI_FROM_DATABASE=Fleetwood Group Inc.
OUI:489BE2*
ID_OUI_FROM_DATABASE=SCI Innovations Ltd
+OUI:489D18*
+ ID_OUI_FROM_DATABASE=Flashbay Limited
+
OUI:489D24*
ID_OUI_FROM_DATABASE=Research In Motion
OUI:4C73A5*
ID_OUI_FROM_DATABASE=KOVE
+OUI:4C7403*
+ ID_OUI_FROM_DATABASE=Mundo Reader (bq)
+
OUI:4C774F*
ID_OUI_FROM_DATABASE=Embedded Wireless Labs
OUI:4CBB58*
ID_OUI_FROM_DATABASE=Chicony Electronics Co., Ltd.
+OUI:4CBC42*
+ ID_OUI_FROM_DATABASE=Shenzhen Hangsheng Electronics Co.,Ltd.
+
OUI:4CBCA5*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:4CE676*
ID_OUI_FROM_DATABASE=Buffalo Inc.
+OUI:4CE933*
+ ID_OUI_FROM_DATABASE=RailComm, LLC
+
OUI:4CEB42*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:4CF45B*
ID_OUI_FROM_DATABASE=Blue Clover Devices
+OUI:4CF5A0*
+ ID_OUI_FROM_DATABASE=Scalable Network Technologies Inc
+
OUI:4CF737*
ID_OUI_FROM_DATABASE=SamJi Electronics Co., Ltd
OUI:5011EB*
ID_OUI_FROM_DATABASE=SilverNet Ltd
+OUI:5014B5*
+ ID_OUI_FROM_DATABASE=Richfit Information Technology Co., Ltd
+
OUI:5017FF*
ID_OUI_FROM_DATABASE=Cisco
OUI:5027C7*
ID_OUI_FROM_DATABASE=TECHNART Co.,Ltd
+OUI:50294D*
+ ID_OUI_FROM_DATABASE=NANJING IOT SENSOR TECHNOLOGY CO,LTD
+
OUI:502A7E*
ID_OUI_FROM_DATABASE=Smart electronic GmbH
OUI:506787*
ID_OUI_FROM_DATABASE=iTellus
+OUI:5067AE*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:5067F0*
ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation
OUI:549D85*
ID_OUI_FROM_DATABASE=EnerAccess inc
+OUI:549F35*
+ ID_OUI_FROM_DATABASE=Dell Inc.
+
OUI:54A04F*
ID_OUI_FROM_DATABASE=t-mac Technologies Ltd
OUI:54F666*
ID_OUI_FROM_DATABASE=Berthold Technologies GmbH and Co.KG
+OUI:54F876*
+ ID_OUI_FROM_DATABASE=ABB AG
+
OUI:54FA3E*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD
OUI:54FDBF*
ID_OUI_FROM_DATABASE=Scheidt & Bachmann GmbH
+OUI:54FFCF*
+ ID_OUI_FROM_DATABASE=Mopria Alliance
+
OUI:580528*
ID_OUI_FROM_DATABASE=LABRIS NETWORKS
OUI:580A20*
ID_OUI_FROM_DATABASE=Cisco
+OUI:58108C*
+ ID_OUI_FROM_DATABASE=Intelbras
+
OUI:581243*
ID_OUI_FROM_DATABASE=AcSiP Technology Corp.
OUI:587675*
ID_OUI_FROM_DATABASE=Beijing ECHO Technologies Co.,Ltd
+OUI:5876C5*
+ ID_OUI_FROM_DATABASE=DIGI I'S LTD
+
OUI:587A4D*
ID_OUI_FROM_DATABASE=Stonesoft Corporation
+OUI:587BE9*
+ ID_OUI_FROM_DATABASE=AirPro Technology India Pvt. Ltd
+
OUI:587E61*
ID_OUI_FROM_DATABASE=Hisense Electric Co., Ltd
OUI:58F387*
ID_OUI_FROM_DATABASE=HCCP
+OUI:58F39C*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:58F67B*
ID_OUI_FROM_DATABASE=Xia Men UnionCore Technology LTD.
OUI:5C8D4E*
ID_OUI_FROM_DATABASE=Apple
+OUI:5C8FE0*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
+OUI:5C93A2*
+ ID_OUI_FROM_DATABASE=Liteon Technology Corporation
+
OUI:5C95AE*
ID_OUI_FROM_DATABASE=Apple
OUI:603553*
ID_OUI_FROM_DATABASE=Buwon Technology
+OUI:603696*
+ ID_OUI_FROM_DATABASE=The Sapling Company
+
OUI:6036DD*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:6047D4*
ID_OUI_FROM_DATABASE=FORICS Electronic Technology Co., Ltd.
+OUI:604826*
+ ID_OUI_FROM_DATABASE=Newbridge Technologies Int. Ltd.
+
OUI:604A1C*
ID_OUI_FROM_DATABASE=SUYIN Corporation
+OUI:6050C1*
+ ID_OUI_FROM_DATABASE=Kinetek Sports
+
+OUI:60512C*
+ ID_OUI_FROM_DATABASE=TCT mobile limited
+
OUI:6052D0*
ID_OUI_FROM_DATABASE=FACTS Engineering
OUI:609217*
ID_OUI_FROM_DATABASE=Apple
+OUI:6099D1*
+ ID_OUI_FROM_DATABASE=Vuzix / Lenovo
+
OUI:609AA4*
ID_OUI_FROM_DATABASE=GVI SECURITY INC.
OUI:60FFDD*
ID_OUI_FROM_DATABASE=C.E. ELECTRONICS, INC
+OUI:64002D*
+ ID_OUI_FROM_DATABASE=Powerlinq Co., LTD
+
OUI:6400F1*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:64B370*
ID_OUI_FROM_DATABASE=PowerComm Solutons LLC
+OUI:64B473*
+ ID_OUI_FROM_DATABASE=Xiaomi inc.
+
OUI:64B64A*
ID_OUI_FROM_DATABASE=ViVOtech, Inc.
OUI:68D925*
ID_OUI_FROM_DATABASE=ProSys Development Services
+OUI:68D93C*
+ ID_OUI_FROM_DATABASE=Apple
+
OUI:68DB67*
ID_OUI_FROM_DATABASE=Nantong Coship Electronics Co., Ltd
OUI:68EFBD*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
+OUI:68F06D*
+ ID_OUI_FROM_DATABASE=ALONG INDUSTRIAL CO., LIMITED
+
OUI:68F125*
ID_OUI_FROM_DATABASE=Data Controls Inc.
OUI:6C641A*
ID_OUI_FROM_DATABASE=Penguin Computing
+OUI:6C6EFE*
+ ID_OUI_FROM_DATABASE=Core Logic Inc.
+
OUI:6C6F18*
ID_OUI_FROM_DATABASE=Stereotaxis, Inc.
OUI:6C71D9*
ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc
+OUI:6C7660*
+ ID_OUI_FROM_DATABASE=KYOCERA Corporation
+
OUI:6C81FE*
ID_OUI_FROM_DATABASE=Mitsuba Corporation
ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd.
OUI:6C98EB*
- ID_OUI_FROM_DATABASE=Xyne GmbH
+ ID_OUI_FROM_DATABASE=Ocedo GmbH
OUI:6C9989*
ID_OUI_FROM_DATABASE=Cisco
OUI:6CBEE9*
ID_OUI_FROM_DATABASE=Alcatel-Lucent-IPD
+OUI:6CBFB5*
+ ID_OUI_FROM_DATABASE=Noon Technology Co., Ltd
+
OUI:6CC1D2*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
OUI:70AAB2*
ID_OUI_FROM_DATABASE=Research In Motion
+OUI:70AF25*
+ ID_OUI_FROM_DATABASE=Nishiyama Industry Co.,LTD.
+
OUI:70B035*
ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd
OUI:70B921*
ID_OUI_FROM_DATABASE=FiberHome Telecommunication Technologies CO.,LTD
+OUI:70BAEF*
+ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
+
OUI:70C6AC*
ID_OUI_FROM_DATABASE=Bosch Automotive Aftermarket
OUI:70F176*
ID_OUI_FROM_DATABASE=Data Modul AG
+OUI:70F196*
+ ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
+
OUI:70F1A1*
ID_OUI_FROM_DATABASE=Liteon Technology Corporation
OUI:74B9EB*
ID_OUI_FROM_DATABASE=Fujian JinQianMao Electronic Technology Co.,Ltd
+OUI:74BADB*
+ ID_OUI_FROM_DATABASE=Longconn Electornics(shenzhen)Co.,Ltd
+
OUI:74BE08*
ID_OUI_FROM_DATABASE=ATEK Products, LLC
OUI:74E06E*
ID_OUI_FROM_DATABASE=Ergophone GmbH
+OUI:74E14A*
+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.
+
OUI:74E1B6*
ID_OUI_FROM_DATABASE=Apple
OUI:7C0A50*
ID_OUI_FROM_DATABASE=J-MEX Inc.
+OUI:7C0ECE*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:7C11BE*
ID_OUI_FROM_DATABASE=Apple
OUI:7C2064*
ID_OUI_FROM_DATABASE=Alcatel Lucent IPD
+OUI:7C2587*
+ ID_OUI_FROM_DATABASE=chaowifi.com
+
OUI:7C2CF3*
ID_OUI_FROM_DATABASE=Secure Electrans Ltd
OUI:7CB03E*
ID_OUI_FROM_DATABASE=OSRAM GmbH
+OUI:7CB177*
+ ID_OUI_FROM_DATABASE=Satelco AG
+
OUI:7CB21B*
ID_OUI_FROM_DATABASE=Cisco SPVTG
OUI:806629*
ID_OUI_FROM_DATABASE=Prescope Technologies CO.,LTD.
+OUI:806C1B*
+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC
+
OUI:806C8B*
ID_OUI_FROM_DATABASE=KAESER KOMPRESSOREN AG
OUI:80DB31*
ID_OUI_FROM_DATABASE=Power Quotient International Co., Ltd.
+OUI:80E650*
+ ID_OUI_FROM_DATABASE=Apple
+
OUI:80EA96*
ID_OUI_FROM_DATABASE=Apple
+OUI:80EACA*
+ ID_OUI_FROM_DATABASE=Dialog Semiconductor Hellas SA
+
OUI:80EE73*
ID_OUI_FROM_DATABASE=Shuttle Inc.
OUI:80F62E*
ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
+OUI:80F8EB*
+ ID_OUI_FROM_DATABASE=RayTight
+
OUI:80FA5B*
ID_OUI_FROM_DATABASE=CLEVO CO.
OUI:84850A*
ID_OUI_FROM_DATABASE=Hella Sonnen- und Wetterschutztechnik GmbH
+OUI:8486F3*
+ ID_OUI_FROM_DATABASE=Greenvity Communications
+
OUI:848D84*
ID_OUI_FROM_DATABASE=Rajant Corporation
OUI:849000*
ID_OUI_FROM_DATABASE=Arnold & Richter Cine Technik
+OUI:84930C*
+ ID_OUI_FROM_DATABASE=InCoax Networks Europe AB
+
OUI:84948C*
ID_OUI_FROM_DATABASE=Hitron Technologies. Inc
+OUI:849681*
+ ID_OUI_FROM_DATABASE=Cathay Communication Co.,Ltd
+
OUI:8496D8*
ID_OUI_FROM_DATABASE=Pace plc
OUI:84DF0C*
ID_OUI_FROM_DATABASE=NET2GRID BV
+OUI:84E058*
+ ID_OUI_FROM_DATABASE=Pace plc
+
OUI:84E4D9*
ID_OUI_FROM_DATABASE=Shenzhen NEED technology Ltd.
OUI:8C11CB*
ID_OUI_FROM_DATABASE=ABUS Security-Center GmbH & Co. KG
+OUI:8C18D9*
+ ID_OUI_FROM_DATABASE=Shenzhen RF Technology Co., Ltd
+
OUI:8C1F94*
ID_OUI_FROM_DATABASE=RF Surgical System Inc.
OUI:8C5CA1*
ID_OUI_FROM_DATABASE=d-broad,INC
+OUI:8C5D60*
+ ID_OUI_FROM_DATABASE=UCI Corporation Co.,Ltd.
+
OUI:8C5FDF*
ID_OUI_FROM_DATABASE=Beijing Railway Signal Factory
OUI:8C7EB3*
ID_OUI_FROM_DATABASE=Lytro, Inc.
+OUI:8C7F3B*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
OUI:8C82A8*
ID_OUI_FROM_DATABASE=Insigma Technology Co.,Ltd
OUI:8CAE89*
ID_OUI_FROM_DATABASE=Y-cam Solutions Ltd
+OUI:8CB094*
+ ID_OUI_FROM_DATABASE=Airtech I&C Co., Ltd
+
OUI:8CB64F*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:8CDB25*
ID_OUI_FROM_DATABASE=ESG Solutions
+OUI:8CDCD4*
+ ID_OUI_FROM_DATABASE=Hewlett Packard
+
OUI:8CDD8D*
ID_OUI_FROM_DATABASE=Wifly-City System Inc.
OUI:8CEEC6*
ID_OUI_FROM_DATABASE=Precepscion Pty. Ltd.
+OUI:8CF813*
+ ID_OUI_FROM_DATABASE=ORANGE POLSKA
+
OUI:8CF945*
ID_OUI_FROM_DATABASE=Power Automation pte Ltd
OUI:901EDD*
ID_OUI_FROM_DATABASE=GREAT COMPUTER CORPORATION
+OUI:90203A*
+ ID_OUI_FROM_DATABASE=BYD Precision Manufacture Co.,Ltd
+
OUI:902083*
ID_OUI_FROM_DATABASE=General Engine Management Systems Ltd.
OUI:90EA60*
ID_OUI_FROM_DATABASE=SPI Lasers Ltd
+OUI:90EF68*
+ ID_OUI_FROM_DATABASE=ZyXEL Communications Corporation
+
OUI:90F1AA*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD
OUI:90FBA6*
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd
+OUI:90FD61*
+ ID_OUI_FROM_DATABASE=Apple
+
OUI:90FF79*
ID_OUI_FROM_DATABASE=Metro Ethernet Forum
OUI:9451BF*
ID_OUI_FROM_DATABASE=Hyundai ESG
+OUI:945493*
+ ID_OUI_FROM_DATABASE=Rigado, LLC
+
OUI:94592D*
ID_OUI_FROM_DATABASE=EKE Building Technology Systems Ltd
OUI:946124*
ID_OUI_FROM_DATABASE=Pason Systems
+OUI:946269*
+ ID_OUI_FROM_DATABASE=Arris Group, Inc.
+
OUI:9463D1*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:989080*
ID_OUI_FROM_DATABASE=Linkpower Network System Inc Ltd.
+OUI:989096*
+ ID_OUI_FROM_DATABASE=Dell Inc
+
OUI:9893CC*
ID_OUI_FROM_DATABASE=LG Electronics Inc.
OUI:9C31B6*
ID_OUI_FROM_DATABASE=Kulite Semiconductor Products Inc
+OUI:9C3583*
+ ID_OUI_FROM_DATABASE=Nipro Diagnostics, Inc
+
OUI:9C3AAF*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:A090DE*
ID_OUI_FROM_DATABASE=VEEDIMS,LLC
+OUI:A09347*
+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD.
+
OUI:A09805*
ID_OUI_FROM_DATABASE=OpenVox Communication Co Ltd
OUI:A0E5E9*
ID_OUI_FROM_DATABASE=enimai Inc
+OUI:A0E6F8*
+ ID_OUI_FROM_DATABASE=Texas Instruments Inc
+
OUI:A0E9DB*
ID_OUI_FROM_DATABASE=Ningbo FreeWings Technologies Co.,Ltd
OUI:A46E79*
ID_OUI_FROM_DATABASE=DFT System Co.Ltd
+OUI:A470D6*
+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC
+
OUI:A47733*
ID_OUI_FROM_DATABASE=Google
ID_OUI_FROM_DATABASE=GLITEL Stropkov, s.r.o.
OUI:A4D856*
- ID_OUI_FROM_DATABASE=Qualcomm Labs Inc.
+ ID_OUI_FROM_DATABASE=Gimbal, Inc
OUI:A4DA3F*
ID_OUI_FROM_DATABASE=Bionics Corp.
OUI:A81B18*
ID_OUI_FROM_DATABASE=XTS CORP
+OUI:A81B5D*
+ ID_OUI_FROM_DATABASE=Foxtel Management Pty Ltd
+
OUI:A81FAF*
ID_OUI_FROM_DATABASE=KRYPTON POLSKA
OUI:AC0DFE*
ID_OUI_FROM_DATABASE=Ekon GmbH - myGEKKO
+OUI:AC11D3*
+ ID_OUI_FROM_DATABASE=Suzhou HOTEK Video Technology Co. Ltd
+
OUI:AC1461*
ID_OUI_FROM_DATABASE=ATAW Co., Ltd.
OUI:AC3613*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:AC3870*
+ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd.
+
OUI:AC3C0B*
ID_OUI_FROM_DATABASE=Apple
OUI:ACB313*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:ACB74F*
+ ID_OUI_FROM_DATABASE=METEL s.r.o.
+
OUI:ACB859*
ID_OUI_FROM_DATABASE=Uniband Electronic Corp,
OUI:B0435D*
ID_OUI_FROM_DATABASE=NuLEDs, Inc.
+OUI:B04515*
+ ID_OUI_FROM_DATABASE=mira fitness,LLC.
+
OUI:B04545*
ID_OUI_FROM_DATABASE=YACOUB Automation GmbH
OUI:B41513*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:B41780*
+ ID_OUI_FROM_DATABASE=DTI Group Ltd
+
OUI:B418D1*
ID_OUI_FROM_DATABASE=Apple
OUI:B4750E*
ID_OUI_FROM_DATABASE=Belkin International Inc.
+OUI:B479A7*
+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD.
+
+OUI:B47C29*
+ ID_OUI_FROM_DATABASE=Shenzhen Guzidi Technology Co.,Ltd
+
OUI:B47F5E*
ID_OUI_FROM_DATABASE=Foresight Manufacture (S) Pte Ltd
OUI:B817C2*
ID_OUI_FROM_DATABASE=Apple
+OUI:B8186F*
+ ID_OUI_FROM_DATABASE=ORIENTAL MOTOR CO., LTD.
+
OUI:B81999*
ID_OUI_FROM_DATABASE=Nesys
OUI:B847C6*
ID_OUI_FROM_DATABASE=SanJet Technology Corp.
+OUI:B84FD5*
+ ID_OUI_FROM_DATABASE=Microsoft Corporation
+
OUI:B85510*
ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd.
OUI:B89BC9*
ID_OUI_FROM_DATABASE=SMC Networks Inc
+OUI:B89BE4*
+ ID_OUI_FROM_DATABASE=ABB Power Systems Power Generation
+
OUI:B8A386*
ID_OUI_FROM_DATABASE=D-Link International
OUI:B8BB6D*
ID_OUI_FROM_DATABASE=ENERES Co.,Ltd.
+OUI:B8BD79*
+ ID_OUI_FROM_DATABASE=TrendPoint Systems
+
OUI:B8BEBF*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
OUI:B8EE79*
ID_OUI_FROM_DATABASE=YWire Technologies, Inc.
+OUI:B8F317*
+ ID_OUI_FROM_DATABASE=iSun Smasher Communications Private Limited
+
OUI:B8F4D0*
ID_OUI_FROM_DATABASE=Herrmann Ultraschalltechnik GmbH & Co. Kg
OUI:BC629F*
ID_OUI_FROM_DATABASE=Telenet Systems P. Ltd.
+OUI:BC6641*
+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.
+
OUI:BC671C*
ID_OUI_FROM_DATABASE=Cisco
OUI:C401B1*
ID_OUI_FROM_DATABASE=SeekTech INC
+OUI:C401CE*
+ ID_OUI_FROM_DATABASE=PRESITION (2000) CO., LTD.
+
OUI:C40415*
ID_OUI_FROM_DATABASE=NETGEAR INC.,
OUI:C45600*
ID_OUI_FROM_DATABASE=Galleon Embedded Computing
+OUI:C456FE*
+ ID_OUI_FROM_DATABASE=Lava International Ltd.
+
+OUI:C4576E*
+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,LTD
+
OUI:C458C2*
ID_OUI_FROM_DATABASE=Shenzhen TATFOOK Technology Co., Ltd.
OUI:C4BA99*
ID_OUI_FROM_DATABASE=I+ME Actia Informatik und Mikro-Elektronik GmbH
+OUI:C4BD6A*
+ ID_OUI_FROM_DATABASE=SKF GmbH
+
OUI:C4C0AE*
ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD.
OUI:C8E42F*
ID_OUI_FROM_DATABASE=Technical Research Design and Development
+OUI:C8E7D8*
+ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.
+
OUI:C8EE08*
ID_OUI_FROM_DATABASE=TANGTOP TECHNOLOGY CO.,LTD
OUI:CC0080*
ID_OUI_FROM_DATABASE=BETTINI SRL
+OUI:CC03FA*
+ ID_OUI_FROM_DATABASE=Technicolor CH USA
+
OUI:CC047C*
ID_OUI_FROM_DATABASE=G-WAY Microwave
OUI:CC0DEC*
ID_OUI_FROM_DATABASE=Cisco SPVTG
+OUI:CC10A3*
+ ID_OUI_FROM_DATABASE=Beijing Nan Bao Technology Co., Ltd.
+
OUI:CC14A6*
ID_OUI_FROM_DATABASE=Yichun MyEnergy Domain, Inc
OUI:CC2D8C*
ID_OUI_FROM_DATABASE=LG ELECTRONICS INC
+OUI:CC3080*
+ ID_OUI_FROM_DATABASE=VAIO Corporation
+
OUI:CC33BB*
ID_OUI_FROM_DATABASE=SAGEMCOM SAS
OUI:CCD811*
ID_OUI_FROM_DATABASE=Aiconn Technology Corporation
+OUI:CCD8C1*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:CCD9E9*
ID_OUI_FROM_DATABASE=SCR Engineers Ltd.
+OUI:CCE17F*
+ ID_OUI_FROM_DATABASE=juniper networks
+
OUI:CCE1D5*
ID_OUI_FROM_DATABASE=Buffalo Inc.
OUI:CCF407*
ID_OUI_FROM_DATABASE=EUKREA ELECTROMATIQUE SARL
+OUI:CCF538*
+ ID_OUI_FROM_DATABASE=3isysnetworks
+
OUI:CCF67A*
ID_OUI_FROM_DATABASE=Ayecka Communication Systems LTD
OUI:D00EA4*
ID_OUI_FROM_DATABASE=Porsche Cars North America
+OUI:D01242*
+ ID_OUI_FROM_DATABASE=BIOS Corporation
+
OUI:D0131E*
ID_OUI_FROM_DATABASE=Sunrex Technology Corp
OUI:D05FCE*
ID_OUI_FROM_DATABASE=Hitachi Data Systems
+OUI:D062A0*
+ ID_OUI_FROM_DATABASE=China Essence Technology (Zhumadian) Co., Ltd.
+
OUI:D0634D*
ID_OUI_FROM_DATABASE=Meiko Maschinenbau GmbH & Co. KG
OUI:D07E35*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:D084B0*
+ ID_OUI_FROM_DATABASE=Sagemcom
+
OUI:D08999*
ID_OUI_FROM_DATABASE=APCON, Inc.
OUI:D0F73B*
ID_OUI_FROM_DATABASE=Helmut Mauell GmbH
+OUI:D0FA1D*
+ ID_OUI_FROM_DATABASE=Qihoo 360 Technology Co.,Ltd
+
OUI:D0FF50*
ID_OUI_FROM_DATABASE=Texas Instruments, Inc
OUI:D4319D*
ID_OUI_FROM_DATABASE=Sinwatec
+OUI:D437D7*
+ ID_OUI_FROM_DATABASE=zte corporation
+
OUI:D43A65*
ID_OUI_FROM_DATABASE=IGRS Engineering Lab Ltd.
OUI:D479C3*
ID_OUI_FROM_DATABASE=Cameronet GmbH & Co. KG
+OUI:D47B35*
+ ID_OUI_FROM_DATABASE=NEO Monitors AS
+
OUI:D47B75*
ID_OUI_FROM_DATABASE=HARTING Electronics GmbH
OUI:D48CB5*
ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC.
+OUI:D48F33*
+ ID_OUI_FROM_DATABASE=Microsoft Corporation
+
OUI:D48FAA*
ID_OUI_FROM_DATABASE=Sogecam Industrial, S.A.
OUI:D4EC0C*
ID_OUI_FROM_DATABASE=Harley-Davidson Motor Company
+OUI:D4EC86*
+ ID_OUI_FROM_DATABASE=LinkedHope Intelligent Technologies Co., Ltd
+
OUI:D4EE07*
ID_OUI_FROM_DATABASE=HIWIFI Co., Ltd.
OUI:D8492F*
ID_OUI_FROM_DATABASE=CANON INC.
+OUI:D84A87*
+ ID_OUI_FROM_DATABASE=OI ELECTRIC CO.,LTD
+
OUI:D84B2A*
ID_OUI_FROM_DATABASE=Cognitas Technologies, Inc.
OUI:DC38E1*
ID_OUI_FROM_DATABASE=Juniper networks
+OUI:DC3979*
+ ID_OUI_FROM_DATABASE=Skyport Systems
+
OUI:DC3A5E*
ID_OUI_FROM_DATABASE=Roku, Inc
OUI:E09579*
ID_OUI_FROM_DATABASE=ORTHOsoft inc, d/b/a Zimmer CAS
+OUI:E09796*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:E097F2*
ID_OUI_FROM_DATABASE=Atomax Inc.
OUI:E0ABFE*
ID_OUI_FROM_DATABASE=Orb Networks, Inc.
+OUI:E0ACF1*
+ ID_OUI_FROM_DATABASE=Cisco
+
OUI:E0AE5E*
ID_OUI_FROM_DATABASE=ALPS Co,. Ltd.
OUI:E492FB*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
+OUI:E4956E*
+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information.
+
OUI:E496AE*
ID_OUI_FROM_DATABASE=ALTOGRAPHICS Inc.
OUI:E4C146*
ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A
+OUI:E4C62B*
+ ID_OUI_FROM_DATABASE=Airware
+
OUI:E4C63D*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:E8EADA*
ID_OUI_FROM_DATABASE=Denkovi Assembly Electroncs LTD
+OUI:E8ED05*
+ ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+
OUI:E8EDF3*
ID_OUI_FROM_DATABASE=Cisco
OUI:E8FCAF*
ID_OUI_FROM_DATABASE=NETGEAR INC.,
+OUI:EC0EC4*
+ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
+
OUI:EC0ED6*
ID_OUI_FROM_DATABASE=ITECH INSTRUMENTS SAS
OUI:EC1A59*
ID_OUI_FROM_DATABASE=Belkin International Inc.
+OUI:EC1D7F*
+ ID_OUI_FROM_DATABASE=zte corporation
+
OUI:EC219F*
ID_OUI_FROM_DATABASE=VidaBox LLC
OUI:EC3BF0*
ID_OUI_FROM_DATABASE=NovelSat
+OUI:EC3C5A*
+ ID_OUI_FROM_DATABASE=SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD
+
OUI:EC3E09*
ID_OUI_FROM_DATABASE=PERFORMANCE DESIGNED PRODUCTS, LLC
OUI:F406A5*
ID_OUI_FROM_DATABASE=Hangzhou Bianfeng Networking Technology Co., Ltd.
+OUI:F409D8*
+ ID_OUI_FROM_DATABASE=Samsung Electro Mechanics co., LTD.
+
OUI:F40B93*
ID_OUI_FROM_DATABASE=Research In Motion
OUI:F42833*
ID_OUI_FROM_DATABASE=MMPC Inc.
+OUI:F42853*
+ ID_OUI_FROM_DATABASE=Zioncom Electronics (Shenzhen) Ltd.
+
OUI:F42896*
ID_OUI_FROM_DATABASE=SPECTO PAINEIS ELETRONICOS LTDA
OUI:F4F15A*
ID_OUI_FROM_DATABASE=Apple
+OUI:F4F1E1*
+ ID_OUI_FROM_DATABASE=Motorola Mobility LLC
+
OUI:F4F26D*
ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD.
OUI:F82285*
ID_OUI_FROM_DATABASE=Cypress Technology CO., LTD.
+OUI:F82441*
+ ID_OUI_FROM_DATABASE=Yeelink
+
OUI:F82793*
ID_OUI_FROM_DATABASE=Apple, Inc
OUI:F8E7B5*
ID_OUI_FROM_DATABASE=µTech Tecnologia LTDA
+OUI:F8E811*
+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+
OUI:F8E968*
ID_OUI_FROM_DATABASE=Egker Kft.
OUI:FC1D59*
ID_OUI_FROM_DATABASE=I Smart Cities HK Ltd
+OUI:FC1D84*
+ ID_OUI_FROM_DATABASE=Autobase
+
OUI:FC1E16*
ID_OUI_FROM_DATABASE=IPEVO corp
OUI:FC9FAE*
ID_OUI_FROM_DATABASE=Fidus Systems Inc
+OUI:FC9FE1*
+ ID_OUI_FROM_DATABASE=CONWIN.Tech. Ltd
+
OUI:FCA13E*
ID_OUI_FROM_DATABASE=Samsung Electronics
OUI:FCDB96*
ID_OUI_FROM_DATABASE=ENERVALLEY CO., LTD
+OUI:FCDBB3*
+ ID_OUI_FROM_DATABASE=Murata Manufacturing Co., Ltd.
+
OUI:FCDD55*
ID_OUI_FROM_DATABASE=Shenzhen WeWins wireless Co.,Ltd
ID_VENDOR_FROM_DATABASE=Alcatel
bluetooth:v0025*
- ID_VENDOR_FROM_DATABASE=Philips Semiconductors
+ ID_VENDOR_FROM_DATABASE=NXP Semiconductors (formerly Philips Semiconductors)
bluetooth:v0026*
ID_VENDOR_FROM_DATABASE=C Technologies
ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC
bluetooth:v008C*
- ID_VENDOR_FROM_DATABASE=Qualcomm Retail Solutions, Inc. (formerly Qualcomm Labs, Inc.)
+ ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.)
bluetooth:v008D*
ID_VENDOR_FROM_DATABASE=Zscan Software
ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd
bluetooth:v014D*
- ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD.
+ ID_VENDOR_FROM_DATABASE=Huizhou Desay SV Automotive CO., LTD.
bluetooth:v014E*
ID_VENDOR_FROM_DATABASE=Tangerine, Inc.
bluetooth:v014F*
ID_VENDOR_FROM_DATABASE=B&W Group Ltd.
+
+bluetooth:v0150*
+ ID_VENDOR_FROM_DATABASE=Pioneer Corporation
+
+bluetooth:v0151*
+ ID_VENDOR_FROM_DATABASE=OnBeep
+
+bluetooth:v0152*
+ ID_VENDOR_FROM_DATABASE=Vernier Software & Technology
+
+bluetooth:v0153*
+ ID_VENDOR_FROM_DATABASE=ROL Ergo
+
+bluetooth:v0154*
+ ID_VENDOR_FROM_DATABASE=Pebble Technology
+
+bluetooth:v0155*
+ ID_VENDOR_FROM_DATABASE=NETATMO
+
+bluetooth:v0156*
+ ID_VENDOR_FROM_DATABASE=Accumulate AB
+
+bluetooth:v0157*
+ ID_VENDOR_FROM_DATABASE=Anhui Huami Information Technology Co., Ltd.
+
+bluetooth:v0158*
+ ID_VENDOR_FROM_DATABASE=Inmite s.r.o.
+
+bluetooth:v0159*
+ ID_VENDOR_FROM_DATABASE=ChefSteps, Inc.
+
+bluetooth:v015A*
+ ID_VENDOR_FROM_DATABASE=micas AG
+
+bluetooth:v015B*
+ ID_VENDOR_FROM_DATABASE=Biomedical Research Ltd.
+
+bluetooth:v015C*
+ ID_VENDOR_FROM_DATABASE=Pitius Tec S.L.
+
+bluetooth:v015D*
+ ID_VENDOR_FROM_DATABASE=Estimote, Inc.
+
+bluetooth:v015E*
+ ID_VENDOR_FROM_DATABASE=Unikey Technologies, Inc.
+
+bluetooth:v015F*
+ ID_VENDOR_FROM_DATABASE=Timer Cap Co.
+
+bluetooth:v0160*
+ ID_VENDOR_FROM_DATABASE=AwoX
+
+bluetooth:v0161*
+ ID_VENDOR_FROM_DATABASE=yikes
+
+bluetooth:v0162*
+ ID_VENDOR_FROM_DATABASE=MADSGlobal NZ Ltd.
+
+bluetooth:v0163*
+ ID_VENDOR_FROM_DATABASE=PCH International
pci:v*d*sv*sd*bc01sc06i01*
ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0
+pci:v*d*sv*sd*bc01sc06i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus
+
pci:v*d*sv*sd*bc01sc07*
ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller
+pci:v*d*sv*sd*bc01sc07i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=Serial Storage Bus
+
pci:v*d*sv*sd*bc01sc08*
ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller
+pci:v*d*sv*sd*bc01sc08i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=NVMHCI
+
+pci:v*d*sv*sd*bc01sc08i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=NVM Express
+
pci:v*d*sv*sd*bc01sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller
pci:v*d*sv*sd*bc02sc06*
ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller
+pci:v*d*sv*sd*bc02sc07*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Infiniband controller
+
pci:v*d*sv*sd*bc02sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Network controller
pci:v*d*sv*sd*bc08sc02i02*
ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers
+pci:v*d*sv*sd*bc08sc02i03*
+ ID_PCI_INTERFACE_FROM_DATABASE=HPET
+
pci:v*d*sv*sd*bc08sc03*
ID_PCI_SUBCLASS_FROM_DATABASE=RTC
pci:v*d*sv*sd*bc11sc80*
ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller
+pci:v*d*sv*sd*bc12*
+ ID_PCI_CLASS_FROM_DATABASE=Processing accelerators
+
+pci:v*d*sv*sd*bc12sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Processing accelerators
+
+pci:v*d*sv*sd*bc13*
+ ID_PCI_CLASS_FROM_DATABASE=Non-Essential Instrumentation
+
pci:v*d*sv*sd*bcFF*
ID_PCI_CLASS_FROM_DATABASE=Unassigned class
pci:v00001000d0000005Dsv00001028sd00001F4A*
ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730 Mini (for blades))
+pci:v00001000d0000005Dsv00001028sd00001F4D*
+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xS)
+
+pci:v00001000d0000005Dsv00001028sd00001F4F*
+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC H730P Slim)
+
+pci:v00001000d0000005Dsv00001028sd00001F54*
+ ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (PERC FS33xD)
+
pci:v00001000d0000005Dsv000017AAsd00001052*
ID_MODEL_FROM_DATABASE=MegaRAID SAS-3 3108 [Invader] (ThinkServer RAID 720i)
ID_MODEL_FROM_DATABASE=Kaveri HDMI/DP Audio Controller
pci:v00001002d00001309*
- ID_MODEL_FROM_DATABASE=Kaveri [Radeon R7 Graphics]
+ ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6/R7 Graphics]
pci:v00001002d0000130A*
ID_MODEL_FROM_DATABASE=Kaveri [Radeon R6 Graphics]
ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T30)
pci:v00001002d00004C57sv00001014sd00000530*
- ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T42 2373-4WU)
+ ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (ThinkPad T4x Series)
pci:v00001002d00004C57sv00001028sd000000E6*
ID_MODEL_FROM_DATABASE=RV200/M7 [Mobility Radeon 7500] (Radeon Mobility M7 LW (Dell Inspiron 8100))
ID_MODEL_FROM_DATABASE=Jet ULT [Radeon R5 M230]
pci:v00001002d0000666F*
- ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M]
+ ID_MODEL_FROM_DATABASE=Sun LE [Radeon HD 8550M / R5 M230]
pci:v00001002d00006670*
ID_MODEL_FROM_DATABASE=Hainan
ID_MODEL_FROM_DATABASE=Tahiti
pci:v00001002d000067A0*
- ID_MODEL_FROM_DATABASE=Hawaii XT GL
+ ID_MODEL_FROM_DATABASE=Hawaii XT GL [FirePro W9100]
pci:v00001002d000067A1*
- ID_MODEL_FROM_DATABASE=Hawaii GL
+ ID_MODEL_FROM_DATABASE=Hawaii PRO GL [FirePro W8100]
pci:v00001002d000067A2*
ID_MODEL_FROM_DATABASE=Hawaii GL
ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290]
pci:v00001002d000067B9*
- ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295 X2]
+ ID_MODEL_FROM_DATABASE=Vesuvius [Radeon R9 295X2]
pci:v00001002d000067BE*
ID_MODEL_FROM_DATABASE=Hawaii LE
ID_MODEL_FROM_DATABASE=Cedar LE
pci:v00001002d00006900*
- ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260]
+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265]
+
+pci:v00001002d00006900sv00001028sd00000640*
+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M265)
+
+pci:v00001002d00006900sv00001179sd0000F934*
+ ID_MODEL_FROM_DATABASE=Topaz XT [Radeon R7 M260/M265] (Radeon R7 M260)
pci:v00001002d00006901*
ID_MODEL_FROM_DATABASE=Topaz PRO [Radeon R5 M255]
pci:v00001002d0000718B*
ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350]
+pci:v00001002d0000718Bsv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=RV516/M62 [Mobility Radeon X1350] (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00001002d0000718C*
ID_MODEL_FROM_DATABASE=RV516/M62-CSP64 [Mobility Radeon X1350]
pci:v00001002d0000983F*
ID_MODEL_FROM_DATABASE=Kabini
+pci:v00001002d00009840*
+ ID_MODEL_FROM_DATABASE=Kabini HDMI/DP Audio
+
pci:v00001002d00009850*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A6-6200 with R3 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics]
pci:v00001002d00009851*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R4/R5 Graphics]
pci:v00001002d00009852*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU A4-6000 with R2 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics]
pci:v00001002d00009853*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-4000 with R2 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics]
pci:v00001002d00009854*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU E2-3700 with R2 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R3 Graphics]
pci:v00001002d00009855*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2450M with R3 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R6 Graphics]
pci:v00001002d00009856*
- ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics]
+ ID_MODEL_FROM_DATABASE=Mullins [Radeon R2 Graphics]
pci:v00001002d00009857*
ID_MODEL_FROM_DATABASE=Mullins [Radeon APU XX-2200M with R2 Graphics]
pci:v0000102Bd00000532sv00001028sd000002A4*
ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (PowerEdge T310 MGA G200eW WPCM450)
+pci:v0000102Bd00000532sv000015D9sd00000624*
+ ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (X9SCM-F Motherboard)
+
pci:v0000102Bd00000532sv000015D9sd0000A811*
ID_MODEL_FROM_DATABASE=MGA G200eW WPCM450 (H8DGU)
pci:v00001039d00000018*
ID_MODEL_FROM_DATABASE=SiS85C503/5513 (LPC Bridge)
+pci:v00001039d00000163*
+ ID_MODEL_FROM_DATABASE=163 802.11b/g Wireless LAN Adapter
+
pci:v00001039d00000180*
ID_MODEL_FROM_DATABASE=RAID bus controller 180 SATA/PATA [SiS]
pci:v00001043*
ID_VENDOR_FROM_DATABASE=ASUSTeK Computer Inc.
+pci:v00001043d00000464*
+ ID_MODEL_FROM_DATABASE=Radeon R9 270x GPU
+
pci:v00001043d00000675*
ID_MODEL_FROM_DATABASE=ISDNLink P-IN100-ST-D
pci:v00001095d00003531*
ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller
+pci:v00001095d00003531sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=SiI 3531 [SATALink/SATARaid] Serial ATA Controller (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00001096*
ID_VENDOR_FROM_DATABASE=Alacron
pci:v000010DEd00000F01*
ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 620]
+pci:v000010DEd00000F02*
+ ID_MODEL_FROM_DATABASE=GF108 [GeForce GT 730]
+
pci:v000010DEd00000FC0*
ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 640 OEM]
pci:v000010DEd00000FC6sv00001043sd00008428*
ID_MODEL_FROM_DATABASE=GK107 [GeForce GTX 650] (GTX650-DC-1GD5)
+pci:v000010DEd00000FC8*
+ ID_MODEL_FROM_DATABASE=GK107 [GeForce GT 740]
+
pci:v000010DEd00000FCD*
ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 755M]
pci:v000010DEd00000FFF*
ID_MODEL_FROM_DATABASE=GK107GL [Quadro 410]
+pci:v000010DEd00001001*
+ ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX TITAN Z]
+
pci:v000010DEd00001003*
ID_MODEL_FROM_DATABASE=GK110 [GeForce GTX Titan LE]
pci:v000010DEd00001140sv00001025sd00000837*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M)
+pci:v000010DEd00001140sv00001025sd0000083E*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
pci:v000010DEd00001140sv00001025sd00000841*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M)
+pci:v000010DEd00001140sv00001025sd00000854*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000855*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000856*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000857*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000858*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000868*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000869*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M)
+
+pci:v000010DEd00001140sv00001025sd00000873*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000878*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd0000087B*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd0000087C*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M)
+
+pci:v000010DEd00001140sv00001025sd00000881*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd0000088A*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd0000090F*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001025sd00000921*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
pci:v000010DEd00001140sv00001028sd0000054D*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M)
pci:v000010DEd00001140sv00001043sd0000170D*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+pci:v000010DEd00001140sv00001043sd0000176D*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001043sd0000178D*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001043sd0000179D*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
+pci:v000010DEd00001140sv00001043sd000017DD*
+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M)
+
pci:v000010DEd00001140sv00001043sd00002132*
ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M)
pci:v000010DEd00001286*
ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 720]
+pci:v000010DEd00001287*
+ ID_MODEL_FROM_DATABASE=GK208 [GeForce GT 730]
+
pci:v000010DEd00001290*
ID_MODEL_FROM_DATABASE=GK208M [GeForce GT 730M]
pci:v000010DEd00001295*
ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M]
+pci:v000010DEd00001295sv0000103Csd00002B0D*
+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A)
+
+pci:v000010DEd00001295sv0000103Csd00002B0F*
+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A)
+
+pci:v000010DEd00001295sv0000103Csd00002B11*
+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 710A)
+
+pci:v000010DEd00001295sv0000103Csd00002B21*
+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A)
+
+pci:v000010DEd00001295sv0000103Csd00002B22*
+ ID_MODEL_FROM_DATABASE=GK208M [GeForce 710M] (GeForce GT 810A)
+
pci:v000010DEd00001296*
ID_MODEL_FROM_DATABASE=GK208M [GeForce 825M]
ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller
pci:v000010ECd00008136sv0000103Csd00002AB1*
- ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavillion p6774)
+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion p6774)
pci:v000010ECd00008136sv0000103Csd000030CC*
ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (Pavilion dv6700)
pci:v000010ECd00008136sv00001179sd0000FF64*
ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (RTL8102E PCI-E Fast Ethernet NIC)
+pci:v000010ECd00008136sv000017C0sd00001053*
+ ID_MODEL_FROM_DATABASE=RTL8101E/RTL8102E PCI Express Fast Ethernet controller (AzureWave AW-NE766 802.11B/G/N Mini PCIe Card Model RT2700E)
+
pci:v000010ECd00008138*
ID_MODEL_FROM_DATABASE=RT8139 (B/C) Cardbus Fast Ethernet Adapter
pci:v00001102d0000000Bsv00001102sd00000041*
ID_MODEL_FROM_DATABASE=EMU20k2 [X-Fi Titanium Series] (SB0880 [SoundBlaster X-Fi Titanium PCI-e])
+pci:v00001102d00000012*
+ ID_MODEL_FROM_DATABASE=SB Recon3D
+
pci:v00001102d00004001*
ID_MODEL_FROM_DATABASE=SB Audigy FireWire Port
pci:v00001106d0000E353*
ID_MODEL_FROM_DATABASE=VX800/VX820 PCI Express Root Port
+pci:v00001106d0000E410*
+ ID_MODEL_FROM_DATABASE=VX900 PCI Express Physical Layer Electrical Sub-block
+
pci:v00001106d0000F208*
ID_MODEL_FROM_DATABASE=PT890 PCI to PCI Bridge Controller
pci:v000011ABd00004354*
ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller
+pci:v000011ABd00004354sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (R730 Laptop)
+
pci:v000011ABd00004354sv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=88E8040 PCI-E Fast Ethernet Controller (Notebook N150P)
pci:v00001217d000000F7*
ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394)
+pci:v00001217d000000F7sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00001217d000000F7sv00001179sd0000FF50*
ID_MODEL_FROM_DATABASE=Firewire (IEEE 1394) (Satellite P305D-S8995E)
pci:v00001217d00007120*
ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller
+pci:v00001217d00007120sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00001217d00007120sv00001179sd0000FF50*
ID_MODEL_FROM_DATABASE=Integrated MMC/SD Controller (Satellite P305D-S8995E)
pci:v00001217d00007130*
ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller
+pci:v00001217d00007130sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00001217d00007130sv00001179sd0000FF50*
ID_MODEL_FROM_DATABASE=Integrated MS/xD Controller (Satellite P305D-S8995E)
ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller
pci:v00001425d00004084*
- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller
pci:v00001425d00004085*
ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller
ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller
pci:v00001425d00004484*
- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller
pci:v00001425d00004485*
ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller
ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller
pci:v00001425d00004584*
- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller
+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller
pci:v00001425d00004585*
ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller
ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Storage Controller
pci:v00001425d00004684*
- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Storage Controller
+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Storage Controller
pci:v00001425d00004685*
ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Storage Controller
ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller
pci:v00001425d00004784*
- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller
pci:v00001425d00004785*
ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller
ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller
pci:v00001425d00004801*
- ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00004802*
- ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T422-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00004803*
- ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00004804*
- ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-BCH Unified Wire Ethernet Controller [VF]
pci:v00001425d00004805*
- ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-BCH Unified Wire Ethernet Controller [VF]
pci:v00001425d00004806*
- ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-CH Unified Wire Ethernet Controller [VF]
pci:v00001425d00004807*
- ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-SO Unified Wire Ethernet Controller [VF]
pci:v00001425d00004808*
- ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-CX Unified Wire Ethernet Controller [VF]
pci:v00001425d00004809*
- ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d0000480A*
- ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T404-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d0000480B*
- ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=B420-SR Unified Wire Ethernet Controller [VF]
pci:v00001425d0000480C*
- ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=B404-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d0000480D*
- ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T480 Unified Wire Ethernet Controller [VF]
pci:v00001425d0000480E*
- ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-LP-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d0000480F*
- ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440 [Amsterdam] Unified Wire Ethernet Controller [VF]
pci:v00001425d00004880*
- ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T480-4080 T480 Unified Wire Ethernet Controller [VF]
pci:v00001425d00004881*
- ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440F-4081 T440-FCoE Unified Wire Ethernet Controller [VF]
pci:v00001425d00004882*
- ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-4082 Unified Wire Ethernet Controller [VF]
pci:v00001425d00004883*
- ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420X-4083 Unified Wire Ethernet Controller [VF]
pci:v00001425d00004884*
- ID_MODEL_FROM_DATABASE=T420-4084 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-4084 Unified Wire Ethernet Controller [VF]
pci:v00001425d00004885*
- ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T420-4085 SFP+ Unified Wire Ethernet Controller [VF]
pci:v00001425d00004886*
- ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-4086 10Gbase-T Unified Wire Ethernet Controller [VF]
pci:v00001425d00004887*
- ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440T-4087 Unified Wire Ethernet Controller [VF]
pci:v00001425d00004888*
- ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T440-4088 Unified Wire Ethernet Controller [VF]
pci:v00001425d00005001*
ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller
ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller
pci:v00001425d00005801*
- ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005802*
- ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T522-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005803*
- ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005804*
- ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T520-BCH Unified Wire Ethernet Controller [VF]
pci:v00001425d00005805*
- ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-BCH Unified Wire Ethernet Controller [VF]
pci:v00001425d00005806*
- ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-CH Unified Wire Ethernet Controller [VF]
pci:v00001425d00005807*
- ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T520-SO Unified Wire Ethernet Controller [VF]
pci:v00001425d00005808*
- ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T520-CX Unified Wire Ethernet Controller [VF]
pci:v00001425d00005809*
- ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T520-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d0000580A*
- ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T504-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d0000580B*
- ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=B520-SR Unified Wire Ethernet Controller [VF]
pci:v00001425d0000580C*
- ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=B504-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d0000580D*
- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d0000580E*
- ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-LP-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d0000580F*
- ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540 [Amsterdam] Unified Wire Ethernet Controller [VF]
pci:v00001425d00005810*
- ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T580-LP-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005811*
- ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T520-LL-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005812*
- ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T560-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005813*
- ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T580-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005814*
- ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T580-LP-SO-CR Unified Wire Ethernet Controller [VF]
pci:v00001425d00005815*
- ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T502-BT Unified Wire Ethernet Controller [VF]
pci:v00001425d00005880*
- ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-5080 Unified Wire Ethernet Controller [VF]
pci:v00001425d00005881*
- ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-5081 Unified Wire Ethernet Controller [VF]
pci:v00001425d00005883*
- ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T540-5083 Unified Wire Ethernet Controller [VF]
pci:v00001425d00005884*
- ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T580-5084 Unified Wire Ethernet Controller [VF]
pci:v00001425d00005885*
- ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller
+ ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller [VF]
pci:v00001425d0000A000*
ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller
pci:v0000148F*
ID_VENDOR_FROM_DATABASE=Plant Equipment, Inc.
+pci:v0000148Fd00005370*
+ ID_MODEL_FROM_DATABASE=Dexlink AUWL15I1
+
pci:v00001490*
ID_VENDOR_FROM_DATABASE=Stone Microsystems PTY Ltd.
pci:v000014E4d000016A2sv0000103Csd00001917*
ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II 10/20-Gigabit Ethernet (HP FlexFabric 20Gb 2-port 630M Adapter)
+pci:v000014E4d000016A3*
+ ID_MODEL_FROM_DATABASE=NetXtreme BCM57786 Gigabit Ethernet PCIe
+
pci:v000014E4d000016A4*
ID_MODEL_FROM_DATABASE=BCM57840 NetXtreme II Ethernet Multi Function
ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3]
pci:v000015B3d00001004*
- ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3 Virtual Function]
+ ID_MODEL_FROM_DATABASE=MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
pci:v000015B3d00001005*
ID_MODEL_FROM_DATABASE=MT27510 Family
pci:v000015B3d00001007*
ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro]
-pci:v000015B3d00001008*
- ID_MODEL_FROM_DATABASE=MT27520 Family [ConnectX-3 Pro Virtual Function]
-
pci:v000015B3d00001009*
ID_MODEL_FROM_DATABASE=MT27530 Family
pci:v0000168Cd0000002Bsv0000105Bsd0000E023*
ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.04 802.11bgn Wireless Half-size Mini PCIe Card)
+pci:v0000168Cd0000002Bsv0000105Bsd0000E025*
+ ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (T77H121.05 802.11bgn Wireless Half-size Mini PCIe Card)
+
pci:v0000168Cd0000002Bsv00001113sd0000E811*
ID_MODEL_FROM_DATABASE=AR9285 Wireless Network Adapter (PCI-Express) (WN7811A (Toshiba PA3722U-1MPC) 802.11bgn Wireless Half-size Mini PCIe Card)
pci:v00001814d00000781*
ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe
+pci:v00001814d00000781sv00001814sd00002790*
+ ID_MODEL_FROM_DATABASE=RT2790 Wireless 802.11n 1T/2R PCIe
+
pci:v00001814d00003060*
ID_MODEL_FROM_DATABASE=RT3060 Wireless 802.11n 1T/1R
pci:v00001969d00001063sv00001458sd0000E000*
ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (GA-G31M-ES2L Motherboard)
+pci:v00001969d00001063sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=AR8131 Gigabit Ethernet (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00001969d00001066*
ID_MODEL_FROM_DATABASE=Attansic L2c Gigabit Ethernet
pci:v00001A2Bd0000000E*
ID_MODEL_FROM_DATABASE=DSLP-104 v1.1
+pci:v00001A30*
+ ID_VENDOR_FROM_DATABASE=Lantiq
+
+pci:v00001A30d00000680*
+ ID_MODEL_FROM_DATABASE=MtW8171 [Hyperion II]
+
+pci:v00001A30d00000700*
+ ID_MODEL_FROM_DATABASE=Wave300 PSB8224 [Hyperion III]
+
+pci:v00001A30d00000710*
+ ID_MODEL_FROM_DATABASE=Wave300 PSB8231 [Hyperion III]
+
pci:v00001A32*
ID_VENDOR_FROM_DATABASE=Quanta Microsystems, Inc
ID_VENDOR_FROM_DATABASE=Virident Systems Inc.
pci:v00001A78d00000031*
- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive
+ ID_MODEL_FROM_DATABASE=FlashMAX Drive
pci:v00001A78d00000031sv00001A78sd00000034*
- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3])
+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3])
pci:v00001A78d00000031sv00001A78sd00000037*
- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 3D])
+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 3D])
pci:v00001A78d00000031sv00001A78sd00000038*
- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4])
+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4])
pci:v00001A78d00000031sv00001A78sd00000039*
- ID_MODEL_FROM_DATABASE=Virident FlashMAX Drive (FlashMAX PCIe SSD [rev 4D])
+ ID_MODEL_FROM_DATABASE=FlashMAX Drive (FlashMAX PCIe SSD [rev 4D])
pci:v00001A78d00000040*
ID_MODEL_FROM_DATABASE=FlashMAX II
pci:v00001A78d00000042*
ID_MODEL_FROM_DATABASE=FlashMAX II
+pci:v00001A78d00000050*
+ ID_MODEL_FROM_DATABASE=FlashMAX III
+
pci:v00001A84*
ID_VENDOR_FROM_DATABASE=Commex Technologies
pci:v00001AEDd00002001*
ID_MODEL_FROM_DATABASE=ioDrive2
+pci:v00001AEDd00003001*
+ ID_MODEL_FROM_DATABASE=ioMemory FHHL
+
+pci:v00001AEDd00003002*
+ ID_MODEL_FROM_DATABASE=ioMemory HHHL
+
+pci:v00001AEDd00003003*
+ ID_MODEL_FROM_DATABASE=ioMemory Mezzanine
+
pci:v00001AEE*
ID_VENDOR_FROM_DATABASE=Caustic Graphics Inc.
pci:v00001B21d00001080sv00001849sd00001080*
ID_MODEL_FROM_DATABASE=ASM1083/1085 PCIe to PCI Bridge (Motherboard)
+pci:v00001B21d00001142*
+ ID_MODEL_FROM_DATABASE=ASM1042A USB 3.0 Host Controller
+
pci:v00001B2C*
ID_VENDOR_FROM_DATABASE=Opal-RT Technologies Inc.
pci:v00001B55*
ID_VENDOR_FROM_DATABASE=NetUP Inc.
+pci:v00001B55d000018F6*
+ ID_MODEL_FROM_DATABASE=Dual DVB Universal CI card
+
pci:v00001B55d00002A2C*
ID_MODEL_FROM_DATABASE=Dual DVB-S2-CI card
pci:v00001CF7*
ID_VENDOR_FROM_DATABASE=Subspace Dynamics
+pci:v00001D21*
+ ID_VENDOR_FROM_DATABASE=Allo
+
pci:v00001D44*
ID_VENDOR_FROM_DATABASE=DPT
pci:v00008086d00000044sv00001025sd00000487*
ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (TravelMate 5742)
+pci:v00008086d00000044sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (R730 Laptop)
+
+pci:v00008086d00000044sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00000044sv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=Core Processor DRAM Controller (PC1-GROOVE)
pci:v00008086d00000045*
ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port
+pci:v00008086d00000045sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=Core Processor PCI Express x16 Root Port (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00000046*
ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller
+pci:v00008086d00000046sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (R730 Laptop)
+
+pci:v00008086d00000046sv000017C0sd000010D9*
+ ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00000046sv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=Core Processor Integrated Graphics Controller (PC1-GROOVE)
pci:v00008086d00000150sv00001043sd000084CA*
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (P8 series motherboard)
+pci:v00008086d00000150sv000015D9sd00000624*
+ ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (X9SCM-F Motherboard)
+
pci:v00008086d00000150sv00001849sd00000150*
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (Motherboard)
pci:v00008086d0000041A*
ID_MODEL_FROM_DATABASE=Xeon E3-1200 v3 Processor Integrated Graphics Controller
+pci:v00008086d0000041E*
+ ID_MODEL_FROM_DATABASE=4th Generation Core Processor Family Integrated Graphics Controller
+
pci:v00008086d00000433*
ID_MODEL_FROM_DATABASE=Coleto Creek ACC - ME/CPM interface
ID_MODEL_FROM_DATABASE=Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
pci:v00008086d00000F00*
- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit
-
-pci:v00008086d00000F01*
- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit
-
-pci:v00008086d00000F02*
- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit
-
-pci:v00008086d00000F03*
- ID_MODEL_FROM_DATABASE=ValleyView SSA-CUnit
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register
pci:v00008086d00000F04*
- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller
-
-pci:v00008086d00000F05*
- ID_MODEL_FROM_DATABASE=ValleyView High Definition Audio Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller
pci:v00008086d00000F06*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller
-
-pci:v00008086d00000F07*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 DMA Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 DMA Controller
pci:v00008086d00000F08*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller
pci:v00008086d00000F09*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 PWM Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 PWM Controller
pci:v00008086d00000F0A*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1
-
-pci:v00008086d00000F0B*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #1
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #1
pci:v00008086d00000F0C*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2
-
-pci:v00008086d00000F0D*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 HSUART Controller #2
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 HSUART Controller #2
pci:v00008086d00000F0E*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller
-
-pci:v00008086d00000F0F*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 SPI Controller
-
-pci:v00008086d00000F10*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller
-
-pci:v00008086d00000F11*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO1 Controller
-
-pci:v00008086d00000F12*
- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller
-
-pci:v00008086d00000F13*
- ID_MODEL_FROM_DATABASE=ValleyView SMBus Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO1 SPI Controller
pci:v00008086d00000F14*
- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller
pci:v00008086d00000F15*
- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller
pci:v00008086d00000F16*
- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller
-
-pci:v00008086d00000F17*
- ID_MODEL_FROM_DATABASE=ValleyView SDIO Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series SDIO Controller
pci:v00008086d00000F18*
- ID_MODEL_FROM_DATABASE=ValleyView SEC
-
-pci:v00008086d00000F19*
- ID_MODEL_FROM_DATABASE=ValleyView SEC
-
-pci:v00008086d00000F1A*
- ID_MODEL_FROM_DATABASE=ValleyView SEC
-
-pci:v00008086d00000F1B*
- ID_MODEL_FROM_DATABASE=ValleyView SEC
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine
pci:v00008086d00000F1C*
- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit
-
-pci:v00008086d00000F1D*
- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit
-
-pci:v00008086d00000F1E*
- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit
-
-pci:v00008086d00000F1F*
- ID_MODEL_FROM_DATABASE=ValleyView Power Control Unit
-
-pci:v00008086d00000F20*
- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller
-
-pci:v00008086d00000F21*
- ID_MODEL_FROM_DATABASE=ValleyView 4-Port SATA Storage Controller
-
-pci:v00008086d00000F22*
- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller
-
-pci:v00008086d00000F23*
- ID_MODEL_FROM_DATABASE=ValleyView 6-Port SATA AHCI Controller
-
-pci:v00008086d00000F24*
- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller
-
-pci:v00008086d00000F25*
- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller
-
-pci:v00008086d00000F26*
- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller
-
-pci:v00008086d00000F27*
- ID_MODEL_FROM_DATABASE=ValleyView 2-Port SATA Storage Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Power Control Unit
pci:v00008086d00000F28*
- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller
-
-pci:v00008086d00000F29*
- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller
-
-pci:v00008086d00000F2A*
- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller
-
-pci:v00008086d00000F2B*
- ID_MODEL_FROM_DATABASE=ValleyView LPE Audio Controller
-
-pci:v00008086d00000F2E*
- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller
-
-pci:v00008086d00000F2F*
- ID_MODEL_FROM_DATABASE=ValleyView SATA RAID Storage Controller
-
-pci:v00008086d00000F30*
- ID_MODEL_FROM_DATABASE=ValleyView Gen7
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPE Audio Controller
pci:v00008086d00000F31*
- ID_MODEL_FROM_DATABASE=ValleyView Gen7
-
-pci:v00008086d00000F32*
- ID_MODEL_FROM_DATABASE=ValleyView Gen7
-
-pci:v00008086d00000F33*
- ID_MODEL_FROM_DATABASE=ValleyView Gen7
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Graphics & Display
pci:v00008086d00000F34*
- ID_MODEL_FROM_DATABASE=ValleyView USB Enhanced Host Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB EHCI
pci:v00008086d00000F35*
- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller
-
-pci:v00008086d00000F36*
- ID_MODEL_FROM_DATABASE=ValleyView USB xHCI Host Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series USB xHCI
pci:v00008086d00000F37*
- ID_MODEL_FROM_DATABASE=ValleyView OTG
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series OTG USB Device
pci:v00008086d00000F38*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F39*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F3A*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F3B*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F3C*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F3D*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F3E*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
-
-pci:v00008086d00000F3F*
- ID_MODEL_FROM_DATABASE=ValleyView ISP
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series Camera ISP
pci:v00008086d00000F40*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 DMA Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 DMA Controller
pci:v00008086d00000F41*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #1
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #1
pci:v00008086d00000F42*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #2
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #2
pci:v00008086d00000F43*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #3
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #3
pci:v00008086d00000F44*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #4
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #4
pci:v00008086d00000F45*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #5
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #5
pci:v00008086d00000F46*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #6
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #6
pci:v00008086d00000F47*
- ID_MODEL_FROM_DATABASE=ValleyView LPIO2 I2C Controller #7
-
-pci:v00008086d00000F48*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F49*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F4A*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F4B*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F4C*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F4D*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F4E*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F4F*
- ID_MODEL_FROM_DATABASE=ValleyView PCI Express Root Port
-
-pci:v00008086d00000F50*
- ID_MODEL_FROM_DATABASE=ValleyView MIPI-HSI Controller
+ ID_MODEL_FROM_DATABASE=Atom Processor Z36xxx/Z37xxx Series LPIO2 I2C Controller #7
pci:v00008086d00001000*
ID_MODEL_FROM_DATABASE=82542 Gigabit Ethernet Controller (Fiber)
pci:v00008086d00001092*
ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection
+pci:v00008086d00001092sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=PRO/100 VE Network Connection (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d00001093*
ID_MODEL_FROM_DATABASE=PRO/100 VM Network Connection
ID_MODEL_FROM_DATABASE=Ethernet Server Adapter X520-4 (Ethernet Converged Network Adapter X520-4)
pci:v00008086d0000154C*
- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function
+ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function
pci:v00008086d0000154D*
ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X520 Adapter
ID_MODEL_FROM_DATABASE=Ethernet Connection I219-V
pci:v00008086d00001571*
- ID_MODEL_FROM_DATABASE=XL710 X710 Virtual Function
+ ID_MODEL_FROM_DATABASE=XL710/X710 Virtual Function
pci:v00008086d00001572*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+
pci:v00008086d00001572sv00001028sd00001F99*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710/I350 rNDC)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710/I350 rNDC)
+
+pci:v00008086d00001572sv00008086sd00000000*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710)
pci:v00008086d00001572sv00008086sd00000001*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4)
pci:v00008086d00001572sv00008086sd00000002*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4)
pci:v00008086d00001572sv00008086sd00000004*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-4)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-4)
pci:v00008086d00001572sv00008086sd00000005*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G 4P X710 Adapter)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710 Adapter)
pci:v00008086d00001572sv00008086sd00000006*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet 10G2P X710 Adapter)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 2P X710 Adapter)
pci:v00008086d00001572sv00008086sd00000007*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2)
pci:v00008086d00001572sv00008086sd00000008*
- ID_MODEL_FROM_DATABASE=Ethernet 10G 2P X710 Adapter (Ethernet Converged Network Adapter X710-2)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged Network Adapter X710-2)
pci:v00008086d0000157B*
ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection
ID_MODEL_FROM_DATABASE=I210 Gigabit Backplane Connection
pci:v00008086d00001580*
- ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40Gbe backplane
+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE backplane
pci:v00008086d00001581*
- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane
pci:v00008086d00001581sv00001028sd00001F98*
- ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10Gbe backplane (Ethernet 10G 4P X710-k bNDC)
+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE backplane (Ethernet 10G 4P X710-k bNDC)
pci:v00008086d00001583*
ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+
+pci:v00008086d00001583sv00008086sd00000000*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2)
+
pci:v00008086d00001583sv00008086sd00000001*
ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2)
pci:v00008086d00001584*
ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+
+pci:v00008086d00001584sv00008086sd00000000*
+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1)
+
pci:v00008086d00001584sv00008086sd00000001*
ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q1)
pci:v00008086d00002448sv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (D270S/D250S Motherboard)
+pci:v00008086d00002448sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d00002448sv0000144Dsd0000C00C*
ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (P30 notebook)
+pci:v00008086d00002448sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (R730 Laptop)
+
pci:v00008086d00002448sv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Notebook N150P)
pci:v00008086d00002448sv000017AAsd000020AE*
ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (ThinkPad T61/R61)
+pci:v00008086d00002448sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion Akoya E7214 Notebook PC [MD98410])
+
+pci:v00008086d00002448sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002448sv00008086sd0000544B*
ID_MODEL_FROM_DATABASE=82801 Mobile PCI Bridge (Desktop Board D425KT)
ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (NetVista A30p)
pci:v00008086d000024C5sv00001014sd00000537*
- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T41)
+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (ThinkPad T4x Series)
pci:v00008086d000024C5sv00001014sd0000055F*
ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (Thinkpad R50e model 1634)
ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller
pci:v00008086d000024C6sv00001014sd00000524*
- ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T41)
+ ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad T4x Series)
pci:v00008086d000024C6sv00001014sd00000525*
ID_MODEL_FROM_DATABASE=82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (ThinkPad)
pci:v00008086d000027A0sv00001043sd00001237*
ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (A6J-Q008)
+pci:v00008086d000027A0sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027A0sv000017AAsd00002015*
ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (ThinkPad T60)
pci:v00008086d000027A1sv0000103Csd000030A3*
ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Compaq nw8440)
+pci:v00008086d000027A1sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027A2*
ID_MODEL_FROM_DATABASE=Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
pci:v00008086d000027B9sv0000103Csd000030A3*
ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Compaq nw8440)
+pci:v00008086d000027B9sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027B9sv000010F7sd00008338*
ID_MODEL_FROM_DATABASE=82801GBM (ICH7-M) LPC Interface Bridge (Panasonic CF-Y5 laptop)
pci:v00008086d000027C4sv00001028sd000001D7*
ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (XPS M1210)
+pci:v00008086d000027C4sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027C4sv000017AAsd0000200E*
ID_MODEL_FROM_DATABASE=82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode] (ThinkPad T60)
pci:v00008086d000027C8sv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (D270S/D250S Motherboard)
+pci:v00008086d000027C8sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027C8sv0000107Bsd00005048*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #1 (E4500)
pci:v00008086d000027C9sv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (D270S/D250S Motherboard)
+pci:v00008086d000027C9sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027C9sv0000107Bsd00005048*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #2 (E4500)
pci:v00008086d000027CAsv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (D270S/D250S Motherboard)
+pci:v00008086d000027CAsv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027CAsv0000107Bsd00005048*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #3 (E4500)
pci:v00008086d000027CBsv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (D270S/D250S Motherboard)
+pci:v00008086d000027CBsv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027CBsv0000107Bsd00005048*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB UHCI Controller #4 (E4500)
pci:v00008086d000027CCsv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (D270S/D250S Motherboard)
+pci:v00008086d000027CCsv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027CCsv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family USB2 EHCI Controller (Notebook N150P)
pci:v00008086d000027D0sv0000103Csd000030A3*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Compaq nw8440)
+pci:v00008086d000027D0sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027D0sv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 1 (Notebook N150P)
pci:v00008086d000027D2sv0000103Csd000030A3*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Compaq nw8440)
+pci:v00008086d000027D2sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027D2sv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 2 (Notebook N150P)
pci:v00008086d000027D4*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3
+pci:v00008086d000027D4sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027D4sv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 3 (Notebook N150P)
pci:v00008086d000027D6sv0000103Csd000030A3*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Compaq nw8440)
+pci:v00008086d000027D6sv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027D6sv0000144Dsd0000C072*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family PCI Express Port 4 (Notebook N150P)
pci:v00008086d000027D8sv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (D270S/D250S Motherboard)
+pci:v00008086d000027D8sv00001071sd00008207*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027D8sv0000107Bsd00005048*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family High Definition Audio Controller (E4500)
pci:v00008086d000027DAsv0000105Bsd00000D7C*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (D270S/D250S Motherboard)
+pci:v00008086d000027DAsv00001071sd00008209*
+ ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Medion MIM 2240 Notebook PC [MD98100])
+
pci:v00008086d000027DAsv000010F7sd00008338*
ID_MODEL_FROM_DATABASE=NM10/ICH7 Family SMBus Controller (Panasonic CF-Y5 laptop)
pci:v00008086d00002815sv0000104Dsd0000902D*
ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (VAIO VGN-NR120E)
+pci:v00008086d00002815sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801HM (ICH8M) LPC Interface Controller (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002820*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) 4 port SATA Controller [IDE mode]
pci:v00008086d00002829sv000017AAsd000020A7*
ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (ThinkPad T61/R61)
+pci:v00008086d00002829sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002829sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (CCG-RUMBA)
pci:v00008086d00002830sv000017AAsd000020AA*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (ThinkPad T61/R61)
+pci:v00008086d00002830sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002830sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #1 (CCG-RUMBA)
pci:v00008086d00002831sv000017AAsd000020AA*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (ThinkPad T61/R61)
+pci:v00008086d00002831sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002831sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #2 (CCG-RUMBA)
pci:v00008086d00002832sv000017AAsd000020AA*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (ThinkPad T61/R61)
+pci:v00008086d00002832sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002832sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #3 (CCG-RUMBA)
pci:v00008086d00002834sv000017AAsd000020AA*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (ThinkPad T61/R61)
+pci:v00008086d00002834sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002834sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #4 (CCG-RUMBA)
pci:v00008086d00002835sv000017AAsd000020AA*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Thinkpad T61/R61)
+pci:v00008086d00002835sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002835sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB UHCI Controller #5 (CCG-RUMBA)
pci:v00008086d00002836sv000017AAsd000020AB*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (ThinkPad T61/R61)
+pci:v00008086d00002836sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002836sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #1 (CCG-RUMBA)
pci:v00008086d0000283Asv000017AAsd000020AB*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (ThinkPad T61/R61)
+pci:v00008086d0000283Asv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d0000283Asv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) USB2 EHCI Controller #2 (CCG-RUMBA)
pci:v00008086d0000283Esv000017AAsd000020A9*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (ThinkPad T61/R61)
+pci:v00008086d0000283Esv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d0000283Esv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) SMBus Controller (CCG-RUMBA)
pci:v00008086d0000283Fsv000017AAsd000020AD*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (ThinkPad T61/R61)
+pci:v00008086d0000283Fsv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 1 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002841*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2
pci:v00008086d00002841sv000017AAsd000020AD*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (ThinkPad T61/R61)
+pci:v00008086d00002841sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 2 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002843*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3
pci:v00008086d00002843sv000017AAsd000020AD*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (ThinkPad T61/R61)
+pci:v00008086d00002843sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 3 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002845*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4
pci:v00008086d00002845sv000017AAsd000020AD*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (ThinkPad T61/R61)
+pci:v00008086d00002845sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 4 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002847*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5
pci:v00008086d00002847sv000017AAsd000020AD*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (ThinkPad T61/R61)
+pci:v00008086d00002847sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 5 (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002849*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) PCI Express Port 6
pci:v00008086d0000284Bsv000017AAsd000020AC*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (ThinkPad T61/R61)
+pci:v00008086d0000284Bsv000017C0sd00004088*
+ ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d0000284Bsv00008384sd00007616*
ID_MODEL_FROM_DATABASE=82801H (ICH8 Family) HD Audio Controller (Dell Vostro 1400)
pci:v00008086d00002850sv000017AAsd000020A6*
ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (ThinkPad T61/R61)
+pci:v00008086d00002850sv000017C0sd00004083*
+ ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002850sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (CCG-RUMBA)
pci:v00008086d00002A00sv000017AAsd000020B3*
ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (ThinkPad T61/R61)
+pci:v00008086d00002A00sv000017C0sd00004082*
+ ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002A00sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=Mobile PM965/GM965/GL960 Memory Controller Hub (CCG-RUMBA)
pci:v00008086d00002A02sv000017AAsd000020B5*
ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (ThinkPad T61/R61)
+pci:v00008086d00002A02sv000017C0sd00004082*
+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002A02sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (primary) (CCG-RUMBA)
ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary)
pci:v00008086d00002A03sv00001028sd000001F3*
- ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Dell Inspiron 1420)
+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Inspiron 1420)
pci:v00008086d00002A03sv0000103Csd000030C0*
ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Compaq 6710b)
pci:v00008086d00002A03sv000017AAsd000020B5*
ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (ThinkPad T61/R61)
+pci:v00008086d00002A03sv000017C0sd00004082*
+ ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (Medion WIM 2210 Notebook PC [MD96850])
+
pci:v00008086d00002A03sv0000E4BFsd0000CC47*
ID_MODEL_FROM_DATABASE=Mobile GM965/GL960 Integrated Graphics Controller (secondary) (CCG-RUMBA)
ID_MODEL_FROM_DATABASE=Core Processor QPI Link 0
pci:v00008086d00002D11*
- ID_MODEL_FROM_DATABASE=Core Processor QPI Physical 0
+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor QPI Physical 0
pci:v00008086d00002D12*
- ID_MODEL_FROM_DATABASE=Core Processor Reserved
+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved
pci:v00008086d00002D13*
- ID_MODEL_FROM_DATABASE=Core Processor Reserved
+ ID_MODEL_FROM_DATABASE=1st Generation Core Processor Reserved
pci:v00008086d00002D81*
ID_MODEL_FROM_DATABASE=Xeon 5600 Series QuickPath Architecture System Address Decoder
pci:v00008086d00002E12*
ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller
+pci:v00008086d00002E12sv000017AAsd00003048*
+ ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller (ThinkCentre M6258)
+
pci:v00008086d00002E13*
ID_MODEL_FROM_DATABASE=4 Series Chipset Integrated Graphics Controller
pci:v00008086d00003B09sv00001025sd00000347*
ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Aspire 7740G)
+pci:v00008086d00003B09sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (R730 Laptop)
+
+pci:v00008086d00003B09sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=Mobile 5 Series Chipset LPC Interface Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B0A*
ID_MODEL_FROM_DATABASE=5 Series Chipset LPC Interface Controller
pci:v00008086d00003B28*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller
+pci:v00008086d00003B28sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (R730 Laptop)
+
+pci:v00008086d00003B28sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B29*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller
pci:v00008086d00003B29sv00001025sd00000347*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Aspire 7740G)
+pci:v00008086d00003B29sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (R730 Laptop)
+
+pci:v00008086d00003B29sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 4 port SATA AHCI Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B2C*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SATA RAID Controller
pci:v00008086d00003B2D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller
+pci:v00008086d00003B2Dsv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (R730 Laptop)
+
+pci:v00008086d00003B2Dsv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B2Dsv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset 2 port SATA IDE Controller (PC1-GROOVE)
pci:v00008086d00003B30sv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Latitude E6510)
+pci:v00008086d00003B30sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (R730 Laptop)
+
pci:v00008086d00003B30sv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (C7SIM-Q Motherboard)
+pci:v00008086d00003B30sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B30sv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset SMBus Controller (PC1-GROOVE)
pci:v00008086d00003B32sv00001025sd00000347*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Aspire 7740G)
+pci:v00008086d00003B32sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (R730 Laptop)
+
+pci:v00008086d00003B32sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset Thermal Subsystem (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B34*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller
pci:v00008086d00003B34sv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510)
+pci:v00008086d00003B34sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop)
+
pci:v00008086d00003B34sv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard)
+pci:v00008086d00003B34sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B34sv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE)
pci:v00008086d00003B3Csv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Latitude E6510)
+pci:v00008086d00003B3Csv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (R730 Laptop)
+
pci:v00008086d00003B3Csv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (C7SIM-Q Motherboard)
+pci:v00008086d00003B3Csv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B3Csv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller (PC1-GROOVE)
pci:v00008086d00003B42sv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Latitude E6510)
+pci:v00008086d00003B42sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (R730 Laptop)
+
pci:v00008086d00003B42sv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (C7SIM-Q Motherboard)
+pci:v00008086d00003B42sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 1 (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B44*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2
pci:v00008086d00003B44sv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (C7SIM-Q Motherboard)
+pci:v00008086d00003B44sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 2 (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B46*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3
pci:v00008086d00003B46sv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Latitude E6510)
+pci:v00008086d00003B46sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (R730 Laptop)
+
+pci:v00008086d00003B46sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 3 (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B48*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4
pci:v00008086d00003B48sv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (Latitude E6510)
+pci:v00008086d00003B48sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 4 (R730 Laptop)
+
pci:v00008086d00003B4A*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5
pci:v00008086d00003B4Asv00001028sd000002DA*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (OptiPlex 980)
+pci:v00008086d00003B4Asv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 5 (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B4C*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset PCI Express Root Port 6
pci:v00008086d00003B56sv00001028sd0000040B*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Latitude E6510)
+pci:v00008086d00003B56sv0000144Dsd0000C06A*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (R730 Laptop)
+
pci:v00008086d00003B56sv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (C7SIM-Q Motherboard)
+pci:v00008086d00003B56sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B56sv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset High Definition Audio (PC1-GROOVE)
pci:v00008086d00003B64sv000015D9sd0000060D*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (C7SIM-Q Motherboard)
+pci:v00008086d00003B64sv000017C0sd000010D2*
+ ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (Medion Akoya E7214 Notebook PC [MD98410])
+
pci:v00008086d00003B64sv0000E4BFsd000050C1*
ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset HECI Controller (PC1-GROOVE)
ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection)
pci:v00008086d00004222sv00008086sd00001001*
- ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945ABG Network Connection)
+ ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (WM3945ABG MOW2)
pci:v00008086d00004222sv00008086sd00001005*
ID_MODEL_FROM_DATABASE=PRO/Wireless 3945ABG [Golan] Network Connection (PRO/Wireless 3945BG Network Connection)
pci:v00008086d00008C5F*
ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family LPC Controller
+pci:v00008086d00008C80*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode]
+
+pci:v00008086d00008C81*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode]
+
+pci:v00008086d00008C82*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode]
+
+pci:v00008086d00008C83*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [AHCI Mode]
+
+pci:v00008086d00008C84*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode]
+
+pci:v00008086d00008C85*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode]
+
+pci:v00008086d00008C86*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode]
+
+pci:v00008086d00008C87*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode]
+
+pci:v00008086d00008C88*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode]
+
+pci:v00008086d00008C89*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [IDE Mode]
+
+pci:v00008086d00008C8E*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode]
+
+pci:v00008086d00008C8F*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SATA Controller [RAID Mode]
+
+pci:v00008086d00008C90*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 1
+
+pci:v00008086d00008C92*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 2
+
+pci:v00008086d00008C94*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 3
+
+pci:v00008086d00008C96*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 4
+
+pci:v00008086d00008C98*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 5
+
+pci:v00008086d00008C9A*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 6
+
+pci:v00008086d00008C9C*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 7
+
+pci:v00008086d00008C9E*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family PCI Express Root Port 8
+
+pci:v00008086d00008CA0*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HD Audio Controller
+
+pci:v00008086d00008CA2*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family SMBus Controller
+
+pci:v00008086d00008CA4*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Thermal Controller
+
+pci:v00008086d00008CA6*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #1
+
+pci:v00008086d00008CAD*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB EHCI Controller #2
+
+pci:v00008086d00008CB1*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family USB xHCI Controller
+
+pci:v00008086d00008CB3*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LAN Controller
+
+pci:v00008086d00008CBA*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #1
+
+pci:v00008086d00008CBB*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family ME Interface #2
+
+pci:v00008086d00008CBC*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family IDE-R Controller
+
+pci:v00008086d00008CBD*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family KT Controller
+
+pci:v00008086d00008CC1*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller
+
+pci:v00008086d00008CC2*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family LPC Controller
+
+pci:v00008086d00008CC3*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family HM97 LPC Controller
+
+pci:v00008086d00008CC4*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family Z97 LPC Controller
+
+pci:v00008086d00008CC6*
+ ID_MODEL_FROM_DATABASE=9 Series Chipset Family H97 Controller
+
pci:v00008086d00008D00*
ID_MODEL_FROM_DATABASE=Wellsburg 4-port SATA Controller [IDE mode]
ID_MODEL_FROM_DATABASE=Integrated RAID
pci:v00008086d00009C00*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode]
pci:v00008086d00009C01*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [IDE mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [IDE mode]
pci:v00008086d00009C02*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode]
pci:v00008086d00009C03*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode]
pci:v00008086d00009C03sv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [AHCI mode] (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [AHCI mode] (ThinkPad X240)
pci:v00008086d00009C04*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode]
pci:v00008086d00009C05*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode]
pci:v00008086d00009C06*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode]
pci:v00008086d00009C07*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode]
pci:v00008086d00009C08*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode]
pci:v00008086d00009C09*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 2 [IDE mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 2 [IDE mode]
pci:v00008086d00009C0A*
- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved]
pci:v00008086d00009C0B*
- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved]
pci:v00008086d00009C0C*
- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved]
pci:v00008086d00009C0D*
- ID_MODEL_FROM_DATABASE=LynxPoint-LP SATA Controller [Reserved]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller [Reserved]
pci:v00008086d00009C0E*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode]
pci:v00008086d00009C0F*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SATA Controller 1 [RAID mode]
+ ID_MODEL_FROM_DATABASE=8 Series SATA Controller 1 [RAID mode]
pci:v00008086d00009C10*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1
pci:v00008086d00009C11*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 1
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 1
pci:v00008086d00009C12*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2
pci:v00008086d00009C13*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 2
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 2
pci:v00008086d00009C14*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3
pci:v00008086d00009C15*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 3
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 3
pci:v00008086d00009C16*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4
pci:v00008086d00009C17*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 4
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 4
pci:v00008086d00009C18*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5
pci:v00008086d00009C19*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 5
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 5
pci:v00008086d00009C1A*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6
pci:v00008086d00009C1B*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 6
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 6
pci:v00008086d00009C1C*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7
pci:v00008086d00009C1D*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 7
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 7
pci:v00008086d00009C1E*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8
pci:v00008086d00009C1F*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP PCI Express Root Port 8
+ ID_MODEL_FROM_DATABASE=8 Series PCI Express Root Port 8
pci:v00008086d00009C20*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller
+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller
pci:v00008086d00009C20sv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller (ThinkPad X240)
pci:v00008086d00009C21*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HD Audio Controller
+ ID_MODEL_FROM_DATABASE=8 Series HD Audio Controller
pci:v00008086d00009C22*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller
+ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller
pci:v00008086d00009C22sv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SMBus Controller (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series SMBus Controller (ThinkPad X240)
pci:v00008086d00009C23*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP CHAP Counters
+ ID_MODEL_FROM_DATABASE=8 Series CHAP Counters
pci:v00008086d00009C24*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP Thermal
+ ID_MODEL_FROM_DATABASE=8 Series Thermal
pci:v00008086d00009C26*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1
+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1
pci:v00008086d00009C26sv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #1 (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #1 (ThinkPad X240)
pci:v00008086d00009C2D*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB EHCI #2
+ ID_MODEL_FROM_DATABASE=8 Series USB EHCI #2
pci:v00008086d00009C31*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC
+ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC
pci:v00008086d00009C31sv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP USB xHCI HC (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series USB xHCI HC (ThinkPad X240)
pci:v00008086d00009C35*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SDIO Controller
+ ID_MODEL_FROM_DATABASE=8 Series SDIO Controller
pci:v00008086d00009C36*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP Audio DSP Controller
+ ID_MODEL_FROM_DATABASE=8 Series Audio DSP Controller
pci:v00008086d00009C3A*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0
+ ID_MODEL_FROM_DATABASE=8 Series HECI #0
pci:v00008086d00009C3Asv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #0 (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series HECI #0 (ThinkPad X240)
pci:v00008086d00009C3B*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI #1
+ ID_MODEL_FROM_DATABASE=8 Series HECI #1
pci:v00008086d00009C3C*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI IDER
+ ID_MODEL_FROM_DATABASE=8 Series HECI IDER
pci:v00008086d00009C3D*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP HECI KT
+ ID_MODEL_FROM_DATABASE=8 Series HECI KT
pci:v00008086d00009C40*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C41*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C42*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C43*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C43sv000017AAsd00002214*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller (ThinkPad X240)
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller (ThinkPad X240)
pci:v00008086d00009C44*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C45*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C46*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C47*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP LPC Controller
+ ID_MODEL_FROM_DATABASE=8 Series LPC Controller
pci:v00008086d00009C60*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP Low Power Sub-System DMA
+ ID_MODEL_FROM_DATABASE=8 Series Low Power Sub-System DMA
pci:v00008086d00009C61*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #0
+ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #0
pci:v00008086d00009C62*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP I2C Controller #1
+ ID_MODEL_FROM_DATABASE=8 Series I2C Controller #1
pci:v00008086d00009C63*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #0
+ ID_MODEL_FROM_DATABASE=8 Series UART Controller #0
pci:v00008086d00009C64*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP UART Controller #1
+ ID_MODEL_FROM_DATABASE=8 Series UART Controller #1
pci:v00008086d00009C65*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #0
+ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #0
pci:v00008086d00009C66*
- ID_MODEL_FROM_DATABASE=Lynx Point-LP SPI Controller #1
+ ID_MODEL_FROM_DATABASE=8 Series SPI Controller #1
pci:v00008086d00009C83*
ID_MODEL_FROM_DATABASE=Wildcat Point-LP SATA Controller [AHCI Mode]
usb:v*p*d*dcEFdsc03dp01*
ID_USB_PROTOCOL_FROM_DATABASE=Cable Based Association
+usb:v*p*d*dcEFdsc05*
+ ID_USB_SUBCLASS_FROM_DATABASE=USB3 Vision
+
usb:v*p*d*dcFE*
ID_USB_CLASS_FROM_DATABASE=Application Specific Interface
usb:v03EBp2FE4*
ID_MODEL_FROM_DATABASE=ATxmega32A4U DFU bootloader
+usb:v03EBp2FE6*
+ ID_MODEL_FROM_DATABASE=Cactus V6 (DFU)
+
+usb:v03EBp2FEA*
+ ID_MODEL_FROM_DATABASE=Cactus RF60 (DFU)
+
usb:v03EBp2FF0*
ID_MODEL_FROM_DATABASE=atmega32u2 DFU bootloader
+usb:v03EBp2FF4*
+ ID_MODEL_FROM_DATABASE=atmega32u4 DFU bootloader
+
usb:v03EBp2FFA*
ID_MODEL_FROM_DATABASE=at90usb162 DFU bootloader
usb:v0424p2640*
ID_MODEL_FROM_DATABASE=USB 2.0 Hub
+usb:v0424p2660*
+ ID_MODEL_FROM_DATABASE=Hub
+
usb:v0424p4060*
ID_MODEL_FROM_DATABASE=Ultra Fast Media Reader
ID_MODEL_FROM_DATABASE=SiS162 usb Wireless LAN Adapter
usb:v0457p0163*
- ID_MODEL_FROM_DATABASE=802.11 Wireless LAN Adapter
+ ID_MODEL_FROM_DATABASE=SiS163U 802.11 Wireless LAN Adapter
usb:v0457p0817*
ID_MODEL_FROM_DATABASE=SiS-184-ASUS-4352.17 touch panel
usb:v046Dp0830*
ID_MODEL_FROM_DATABASE=QuickClip
+usb:v046Dp0837*
+ ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam
+
usb:v046Dp0840*
ID_MODEL_FROM_DATABASE=QuickCam Express
usb:v046DpC532*
ID_MODEL_FROM_DATABASE=Unifying Receiver
+usb:v046DpC534*
+ ID_MODEL_FROM_DATABASE=Unifying Receiver
+
usb:v046DpC603*
ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT
usb:v0480pA009*
ID_MODEL_FROM_DATABASE=Stor.E Basics
+usb:v0480pA00D*
+ ID_MODEL_FROM_DATABASE=STOR.E BASICS 500GB
+
usb:v0480pD010*
ID_MODEL_FROM_DATABASE=External Disk 3TB
usb:v04A9p319A*
ID_MODEL_FROM_DATABASE=EOS 7D
+usb:v04A9p319B*
+ ID_MODEL_FROM_DATABASE=EOS 50D
+
usb:v04A9p31AA*
ID_MODEL_FROM_DATABASE=SELPHY CP770
usb:v04A9p327D*
ID_MODEL_FROM_DATABASE=Powershot ELPH 115 IS / IXUS 132
+usb:v04A9p327F*
+ ID_MODEL_FROM_DATABASE=EOS Rebel T5 / EOS 1200D / EOS Kiss X70
+
+usb:v04A9p3284*
+ ID_MODEL_FROM_DATABASE=PowerShot D30
+
+usb:v04A9p3286*
+ ID_MODEL_FROM_DATABASE=PowerShot SX600 HS
+
usb:v04A9p3288*
ID_MODEL_FROM_DATABASE=Powershot ELPH 135 / IXUS 145
usb:v04D8p00E0*
ID_MODEL_FROM_DATABASE=PIC32 Starter Board
+usb:v04D8p04CD*
+ ID_MODEL_FROM_DATABASE=28Cxxx EEPROM Programmer
+
usb:v04D8p0A04*
ID_MODEL_FROM_DATABASE=AGP LIN Serial Analyzer
usb:v04E8p6032*
ID_MODEL_FROM_DATABASE=G2 Portable hard drive
+usb:v04E8p6033*
+ ID_MODEL_FROM_DATABASE=G2 Portable device
+
usb:v04E8p6034*
ID_MODEL_FROM_DATABASE=G2 Portable hard drive
usb:v04E8p60C4*
ID_MODEL_FROM_DATABASE=M2 Portable Hard Drive USB 3.0
+usb:v04E8p6124*
+ ID_MODEL_FROM_DATABASE=D3 Station External Hard Drive
+
usb:v04E8p61B6*
ID_MODEL_FROM_DATABASE=M3 Portable Hard Drive 1TB
usb:v04F9p0248*
ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer
+usb:v04F9p02B3*
+ ID_MODEL_FROM_DATABASE=MFC J4510DW
+
usb:v04F9p1000*
ID_MODEL_FROM_DATABASE=Printer
ID_MODEL_FROM_DATABASE=F8T013 Bluetooth Adapter
usb:v050Dp0017*
- ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1
+ ID_MODEL_FROM_DATABASE=B8T017 Bluetooth+EDR 2.1 / F4U017 USB 2.0 7-port Hub
usb:v050Dp003A*
ID_MODEL_FROM_DATABASE=Universal Media Reader
usb:v050Dp1109*
ID_MODEL_FROM_DATABASE=F9L1109v1 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU]
+usb:v050Dp110A*
+ ID_MODEL_FROM_DATABASE=F9L1101v2 802.11abgn Wireless Adapter [Realtek RTL8192DU]
+
usb:v050Dp11F2*
ID_MODEL_FROM_DATABASE=ISY Wireless Micro Adapter IWL 2000 [RTL8188CUS]
ID_MODEL_FROM_DATABASE=F5D6051 802.11b Wireless Network Adapter [ZyDAS ZD1201]
usb:v050Dp615A*
- ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101 802.11abgn Wireless Adapter [Broadcom BCM4323]
+ ID_MODEL_FROM_DATABASE=F7D4101 / F9L1101v1 802.11abgn Wireless Adapter [Broadcom BCM4323]
usb:v050Dp7050*
ID_MODEL_FROM_DATABASE=F5D7050 Wireless G Adapter v1000/v2000 [Intersil ISL3887]
usb:v0547p4D90*
ID_MODEL_FROM_DATABASE=AmScope MD1900 camera
+usb:v0547p7000*
+ ID_MODEL_FROM_DATABASE=PowerSpec MCE460 Front Panel LED Display
+
usb:v0547p7777*
ID_MODEL_FROM_DATABASE=Bluetooth Device
usb:v05F9p2602*
ID_MODEL_FROM_DATABASE=Datalogic Magellan 1100i Barcode Scanner
+usb:v05F9p4204*
+ ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4470 Fixed Scanner
+
usb:v05F9p5204*
ID_MODEL_FROM_DATABASE=Datalogic Gryphon GFS4170 (config mode)
usb:v068Ep00E2*
ID_MODEL_FROM_DATABASE=HFX OEM Joystick
+usb:v068Ep00F0*
+ ID_MODEL_FROM_DATABASE=Multi-Function Panel
+
usb:v068Ep00F1*
ID_MODEL_FROM_DATABASE=Pro Throttle
usb:v0781p74D1*
ID_MODEL_FROM_DATABASE=Sansa Clip+ (msc)
+usb:v0781p74E5*
+ ID_MODEL_FROM_DATABASE=Sansa Clip Zip
+
usb:v0781p8181*
ID_MODEL_FROM_DATABASE=Pen Flash
usb:v07AAp001C*
ID_MODEL_FROM_DATABASE=CG-WLUSB2GT 802.11g Wireless Adapter [Intersil ISL3880]
+usb:v07AAp0020*
+ ID_MODEL_FROM_DATABASE=CG-WLUSB2GTST 802.11g Wireless Adapter [Intersil ISL3887]
+
usb:v07AAp002E*
ID_MODEL_FROM_DATABASE=CG-WLUSB2GPX [Ralink RT2571W]
usb:v07CApA867*
ID_MODEL_FROM_DATABASE=AVerTV DVB-T (A867)
+usb:v07CApB300*
+ ID_MODEL_FROM_DATABASE=A300 DVB-T TV receiver
+
usb:v07CApB800*
ID_MODEL_FROM_DATABASE=MR800 FM Radio
usb:v083Ap4521*
ID_MODEL_FROM_DATABASE=Siemens S30863-S1016-R107-2 802.11g Wireless Adapter [Intersil ISL3887]
+usb:v083Ap4531*
+ ID_MODEL_FROM_DATABASE=T-Com Sinus 154 data II [Intersil ISL3887]
+
usb:v083Ap5046*
ID_MODEL_FROM_DATABASE=SpeedStream 10/100 Ethernet [pegasus]
usb:v0957p0A07*
ID_MODEL_FROM_DATABASE=34411A Multimeter
+usb:v0957p1507*
+ ID_MODEL_FROM_DATABASE=33210A Waveform Generator
+
usb:v0957p1745*
ID_MODEL_FROM_DATABASE=Test and Measurement Device (IVI)
ID_VENDOR_FROM_DATABASE=KRF Tech, Ltd
usb:v09DA*
- ID_VENDOR_FROM_DATABASE=A4 Tech Co., Ltd
+ ID_VENDOR_FROM_DATABASE=A4Tech Co., Ltd.
usb:v09DAp0006*
ID_MODEL_FROM_DATABASE=Optical Mouse WOP-35 / Trust 450L Optical Mouse
usb:v09DAp000A*
- ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D
+ ID_MODEL_FROM_DATABASE=Optical Mouse Opto 510D / OP-620D
usb:v09DAp000E*
ID_MODEL_FROM_DATABASE=X-F710F Optical Mouse 3xFire Gaming Mouse
usb:v0AB1p0002*
ID_MODEL_FROM_DATABASE=OBID RFID-Reader
+usb:v0AB1p0004*
+ ID_MODEL_FROM_DATABASE=OBID classic-pro
+
usb:v0ABA*
ID_VENDOR_FROM_DATABASE=Ellisys
ID_MODEL_FROM_DATABASE=Mass Storage Device
usb:v0B05p170B*
- ID_MODEL_FROM_DATABASE=Mass Storage Device
+ ID_MODEL_FROM_DATABASE=Multi card reader
usb:v0B05p170C*
ID_MODEL_FROM_DATABASE=WL-159g 802.11bg
usb:v0B05p17AB*
ID_MODEL_FROM_DATABASE=USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU]
+usb:v0B05p17C7*
+ ID_MODEL_FROM_DATABASE=WL-330NUL
+
usb:v0B05p17C9*
ID_MODEL_FROM_DATABASE=USB-AC53 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526]
usb:v0B05p5412*
ID_MODEL_FROM_DATABASE=MeMO Pad HD 7 (PTP mode)
+usb:v0B05p550F*
+ ID_MODEL_FROM_DATABASE=ASUS fonepad 7
+
usb:v0B05p6101*
ID_MODEL_FROM_DATABASE=Cable Modem
usb:v0B0E*
ID_VENDOR_FROM_DATABASE=GN Netcom
+usb:v0B0Ep034C*
+ ID_MODEL_FROM_DATABASE=Jabra UC Voice 750 MS
+
usb:v0B0Ep0420*
ID_MODEL_FROM_DATABASE=Jabra SPEAK 510
usb:v2659p1213*
ID_MODEL_FROM_DATABASE=MediaTV Pro III MiniPCIe (US)
+usb:v2676*
+ ID_VENDOR_FROM_DATABASE=Basler AG
+
+usb:v2676pBA02*
+ ID_MODEL_FROM_DATABASE=ace
+
usb:v2730*
ID_VENDOR_FROM_DATABASE=Citizen
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184331424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197612176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
for an example. Similarly,
<code class="function">SD_JOURNAL_FOREACH_BACKWARDS()</code>
may be used for iterating the journal in reverse
- order.</p></div><div class="refsect1"><a name="idm214184318032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
+ order.</p></div><div class="refsect1"><a name="idm214197598784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
<code class="function">sd_journal_previous()</code> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
- considered an EOF marker.</p></div><div class="refsect1"><a name="idm214184307648"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
+ considered an EOF marker.</p></div><div class="refsect1"><a name="idm214197588368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
<code class="function">sd_journal_next_skip()</code> and
<code class="function">sd_journal_previous_skip()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184302064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214197582832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214184298560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197579328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184331424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197612176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
for an example. Similarly,
<code class="function">SD_JOURNAL_FOREACH_BACKWARDS()</code>
may be used for iterating the journal in reverse
- order.</p></div><div class="refsect1"><a name="idm214184318032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
+ order.</p></div><div class="refsect1"><a name="idm214197598784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
<code class="function">sd_journal_previous()</code> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
- considered an EOF marker.</p></div><div class="refsect1"><a name="idm214184307648"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
+ considered an EOF marker.</p></div><div class="refsect1"><a name="idm214197588368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
<code class="function">sd_journal_next_skip()</code> and
<code class="function">sd_journal_previous_skip()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184302064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214197582832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214184298560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197579328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187428608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182872080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
having to decompress large compressed data objects in
full.</p><p><code class="function">sd_journal_get_data_threshold()</code>
returns the currently configured data field size
- threshold.</p></div><div class="refsect1"><a name="idm214187402928"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
+ threshold.</p></div><div class="refsect1"><a name="idm214182845904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
nothing. <code class="function">sd_journal_set_data_threshold()</code>
and <code class="function">sd_journal_get_threshold()</code>
return 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214187396880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
+ code.</p></div><div class="refsect1"><a name="idm214182839856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
<code class="function">sd_journal_enumerate_data()</code>,
<code class="function">sd_journal_restart_data()</code>,
<code class="function">sd_journal_set_data_threshold()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187390528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
+ file.</p></div><div class="refsect1"><a name="idm214177917392"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
for a complete example how to use
<code class="function">sd_journal_get_data()</code>.</p><p>Use the
entry:</p><pre class="programlisting">...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
-...</pre></div><div class="refsect1"><a name="idm214182417888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+...</pre></div><div class="refsect1"><a name="idm214177912896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170804784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197431712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
queries the journal for all unique values the
specified field can take. It takes two arguments: the
journal to query and the field name to look
influenced by matches set with
<code class="function">sd_journal_add_match()</code> but this
might change in a later version of this
- software.</p></div><div class="refsect1"><a name="idm214170790992"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ software.</p></div><div class="refsect1"><a name="idm214197493904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
returns 0 on success or a negative errno-style error
code. <code class="function">sd_journal_enumerate_unique()</code>
returns a positive integer if the next field data has
been read, 0 when no more fields are known, or a
negative errno-style error
code. <code class="function">sd_journal_restart_unique()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214170780096"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214197490352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
<code class="function">sd_journal_enumerate_unique()</code> and
<code class="function">sd_journal_restart_unique()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214170775216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
+ file.</p></div><div class="refsect1"><a name="idm214197485472"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
<code class="function">SD_JOURNAL_FOREACH_UNIQUE</code> macro
to iterate through all values a field of the journal
can take. The following example lists all unit names
printf("%.*s\n", (int) l, (const char*) d);
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214170770608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197482672"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171911712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193392656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
log entries that are generated via
<code class="function">sd_journal_send()</code>. Using
<code class="function">syslog()</code> has the benefit of being
- more portable.</p></div><div class="refsect1"><a name="idm214171870448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
+ more portable.</p></div><div class="refsect1"><a name="idm214193498576"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
errno-style error code. The
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>
variable itself is not altered.</p><p>If
<a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>
is not running (the socket is not present), those
- functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214166952576"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
+ functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214193495056"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
safe" in the meaning of <a href="signal.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>.
</p><p><code class="function">sd_journal_print</code>,
<code class="function">sd_journal_printv</code>,
<code class="function">sd_journal_send</code>, and
<code class="function">sd_journal_perror</code> are
- not async signal safe.</p></div><div class="refsect1"><a name="idm214166947408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
+ not async signal safe.</p></div><div class="refsect1"><a name="idm214193489376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
<code class="function">sd_journal_printv()</code>,
<code class="function">sd_journal_send()</code> and
<code class="function">sd_journal_sendv()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214166942448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188855456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_listen_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_listen_fds, SD_LISTEN_FDS_START — Check for file descriptors passed by the system manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><pre class="funcsynopsisinfo">#define SD_LISTEN_FDS_START 3</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_listen_fds</b>(</code></td><td>int <var class="pdparam">unset_environment</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192684512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_listen_fds()</code> shall be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_listen_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_listen_fds, SD_LISTEN_FDS_START — Check for file descriptors passed by the system manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><pre class="funcsynopsisinfo">#define SD_LISTEN_FDS_START 3</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_listen_fds</b>(</code></td><td>int <var class="pdparam">unset_environment</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197560512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_listen_fds()</code> shall be
called by a daemon to check for file descriptors
passed by the init system as part of the socket-based
activation logic.</p><p>If the <em class="parameter"><code>unset_environment</code></em>
datagram or stream socket matters a lot for the most
common program logics and should be checked.</p><p>This function call will set the FD_CLOEXEC flag
for all passed file descriptors to avoid further
- inheritance to children of the calling process.</p></div><div class="refsect1"><a name="idm214192892160"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
+ inheritance to children of the calling process.</p></div><div class="refsect1"><a name="idm214197624416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
errno-style error code. If
<code class="varname">$LISTEN_FDS</code>/<code class="varname">$LISTEN_PID</code>
was not set or was not correctly set for this daemon and
returned. Otherwise, the number of file descriptors
passed is returned. The application may find them
starting with file descriptor SD_LISTEN_FDS_START,
- i.e. file descriptor 3.</p></div><div class="refsect1"><a name="idm214194136768"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ i.e. file descriptor 3.</p></div><div class="refsect1"><a name="idm214197551888"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, this function checks whether the
variable, then sets the FD_CLOEXEC flag for the parsed
number of file descriptors starting from
SD_LISTEN_FDS_START. Finally, it returns the parsed
- number.</p></div><div class="refsect1"><a name="idm214192287840"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_PID"><span class="term"><code class="varname">$LISTEN_PID</code>, </span><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_PID">¶</a></dt><dd><p>Set by the init system
+ number.</p></div><div class="refsect1"><a name="idm214197548512"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_PID"><span class="term"><code class="varname">$LISTEN_PID</code>, </span><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_PID">¶</a></dt><dd><p>Set by the init system
for supervised processes that use
socket-based activation. This
environment variable specifies the
data
<code class="function">sd_listen_fds()</code>
parses. See above for
- details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193629840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197690240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
'\" t
-.TH "BINFMT\&.D" "5" "" "systemd 214" "binfmt.d"
+.TH "BINFMT\&.D" "5" "" "systemd 215" "binfmt.d"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="binfmt.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>binfmt.d — Configure additional binary formats for
- executables at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/binfmt.d/*.conf</code></p><p><code class="filename">/run/binfmt.d/*.conf</code></p><p><code class="filename">/usr/lib/binfmt.d/*.conf</code></p></div><div class="refsect1"><a name="idm214180113856"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>At boot,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="binfmt.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>binfmt.d — Configure additional binary formats for
+ executables at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/binfmt.d/*.conf</code></p><p><code class="filename">/run/binfmt.d/*.conf</code></p><p><code class="filename">/usr/lib/binfmt.d/*.conf</code></p></div><div class="refsect1"><a name="idm214170142016"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>At boot,
<a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a>
reads configuration files from the above directories
to register in the kernel additional binary
- formats for executables.</p></div><div class="refsect1"><a name="idm214180139264"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>Each file contains a list of binfmt_misc kernel
+ formats for executables.</p></div><div class="refsect1"><a name="idm214172795840"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>Each file contains a list of binfmt_misc kernel
binary format rules. Consult <a class="ulink" href="https://www.kernel.org/doc/Documentation/binfmt_misc.txt" target="_top">binfmt_misc.txt</a>
for more information on registration of additional
binary formats and how to write rules.</p><p>Empty lines and lines beginning with ; and # are
recommended way is to place a symlink to
<code class="filename">/dev/null</code> in
<code class="filename">/etc/binfmt.d/</code> bearing the
- same filename.</p></div><div class="refsect1"><a name="idm214176291712"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214176291040"></a><p class="title"><b>Example 1. /etc/binfmt.d/wine.conf example:</b></p><div class="example-contents"><pre class="programlisting"># Start WINE on Windows executables
-:DOSWin:M::MZ::/usr/bin/wine:</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214176289440"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ same filename.</p></div><div class="refsect1"><a name="idm214169046960"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214169046288"></a><p class="title"><b>Example 1. /etc/binfmt.d/wine.conf example:</b></p><div class="example-contents"><pre class="programlisting"># Start WINE on Windows executables
+:DOSWin:M::MZ::/usr/bin/wine:</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214169044640"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a>,
<a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>,
'\" t
-.TH "BOOTCHART\&.CONF" "5" "" "systemd 214" "bootchart.conf"
+.TH "BOOTCHART\&.CONF" "5" "" "systemd 215" "bootchart.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="bootchart.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bootchart.conf — Boot performance analysis graphing tool configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/bootchart.conf</code></p></div><div class="refsect1"><a name="idm214187346016"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When starting, systemd-bootchart will read the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="bootchart.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bootchart.conf — Boot performance analysis graphing tool configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/bootchart.conf</code></p></div><div class="refsect1"><a name="idm214168376384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When starting, systemd-bootchart will read the
configuration file <code class="filename">bootchart.conf</code>.
This configuration file determines logging parameters and
- graph output.</p></div><div class="refsect1"><a name="idm214191942832"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="Samples=500"><span class="term"><code class="varname">Samples=500</code></span><a class="headerlink" title="Permalink to this term" href="#Samples=500">¶</a></dt><dd><p>Configure the amount of samples to
+ graph output.</p></div><div class="refsect1"><a name="idm214170469440"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="Samples=500"><span class="term"><code class="varname">Samples=500</code></span><a class="headerlink" title="Permalink to this term" href="#Samples=500">¶</a></dt><dd><p>Configure the amount of samples to
record in total before bootchart exits. Each sample will
record at intervals defined by Frequency=.</p></dd><dt id="Frequency=25"><span class="term"><code class="varname">Frequency=25</code></span><a class="headerlink" title="Permalink to this term" href="#Frequency=25">¶</a></dt><dd><p>Configure the sample log frequency.
This can be a fractional number, but must be larger than
of processes' PSS memory consumption.</p></dd><dt id="PlotEntropyGraph=no"><span class="term"><code class="varname">PlotEntropyGraph=no</code></span><a class="headerlink" title="Permalink to this term" href="#PlotEntropyGraph=no">¶</a></dt><dd><p>If set to yes, enables logging and graphing
of the kernel random entropy pool size.</p></dd><dt id="ScaleX=100"><span class="term"><code class="varname">ScaleX=100</code></span><a class="headerlink" title="Permalink to this term" href="#ScaleX=100">¶</a></dt><dd><p>Horizontal scaling factor for all variable
graph components.</p></dd><dt id="ScaleY=20"><span class="term"><code class="varname">ScaleY=20</code></span><a class="headerlink" title="Permalink to this term" href="#ScaleY=20">¶</a></dt><dd><p>Vertical scaling factor for all variable
- graph components.</p></dd><dt id="ControlGroup=no"><span class="term"><code class="varname">ControlGroup=no</code></span><a class="headerlink" title="Permalink to this term" href="#ControlGroup=no">¶</a></dt><dd><p>Display process control group.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192067360"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ graph components.</p></dd><dt id="ControlGroup=no"><span class="term"><code class="varname">ControlGroup=no</code></span><a class="headerlink" title="Permalink to this term" href="#ControlGroup=no">¶</a></dt><dd><p>Display process control group.</p></dd></dl></div></div><div class="refsect1"><a name="idm214170612832"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>,
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
</p></div></div></body></html>
'\" t
-.TH "BOOTCTL" "1" "" "systemd 214" "bootctl"
+.TH "BOOTCTL" "1" "" "systemd 215" "bootctl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="bootctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bootctl — Control the firmware and boot manager settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">bootctl</code> [OPTIONS...] {COMMAND}</p></div></div><div class="refsect1"><a name="idm214192376192"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>bootctl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="bootctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bootctl — Control the firmware and boot manager settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">bootctl</code> [OPTIONS...] {COMMAND}</p></div></div><div class="refsect1"><a name="idm214180461680"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>bootctl</strong></span> may be used to
query or (in the future) change the firmware and boot
manager settings.</p><p>Firmware information is available only on EFI
systems.</p><p>Currently, only the <a href="gummiboot.html"><span class="citerefentry"><span class="refentrytitle">gummiboot</span>(8)</span></a> boot
manager implements the required boot loader interface
- to provide complete boot manager information.</p></div><div class="refsect1"><a name="idm214188563984"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ to provide complete boot manager information.</p></div><div class="refsect1"><a name="idm214180504032"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="status"><span class="term"><span class="command"><strong>status</strong></span></span><a class="headerlink" title="Permalink to this term" href="#status">¶</a></dt><dd><p>Show firmware and boot
manager information about the system,
including secure boot mode status and
selected firmware entry (where
- available).</p></dd></dl></div></div><div class="refsect1"><a name="idm214188557920"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214188556736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ available).</p></dd></dl></div></div><div class="refsect1"><a name="idm214176713504"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214176712320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface" target="_top">Boot loader interface</a>,
<a class="ulink" href="http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec" target="_top">Boot loader specification</a>,
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/gummiboot/" target="_top">gummiboot</a>
'\" t
-.TH "BOOTUP" "7" "" "systemd 214" "bootup"
+.TH "BOOTUP" "7" "" "systemd 215" "bootup"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="bootup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bootup — System bootup process</p></div><div class="refsect1"><a name="idm214173222816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A number of different components are involved in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="bootup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>bootup — System bootup process</p></div><div class="refsect1"><a name="idm214175133552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A number of different components are involved in
the system boot. Immediately after power-up, the
system BIOS will do minimal hardware initialization,
and hand control over to a boot loader stored on a
unmounts/detaches the root file system and the storage
it resides on. As a last step, the system is powered down.</p><p>Additional information about the system boot
process may be found in
- <a href="boot.html"><span class="citerefentry"><span class="refentrytitle">boot</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214169432720"></a><h2 id="System Manager Bootup">System Manager Bootup<a class="headerlink" title="Permalink to this headline" href="#System%20Manager%20Bootup">¶</a></h2><p>At boot, the system manager on the OS image is
+ <a href="boot.html"><span class="citerefentry"><span class="refentrytitle">boot</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214172705392"></a><h2 id="System Manager Bootup">System Manager Bootup<a class="headerlink" title="Permalink to this headline" href="#System%20Manager%20Bootup">¶</a></h2><p>At boot, the system manager on the OS image is
responsible for initializing the required file
systems, services and drivers that are necessary for
operation of the system. On
option (see
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>)
or by symlinking <code class="filename">default.target</code>
- to them.</p></div><div class="refsect1"><a name="idm214173316512"></a><h2 id="Bootup in the Initial RAM Disk (initrd)">Bootup in the Initial RAM Disk (initrd)<a class="headerlink" title="Permalink to this headline" href="#Bootup%20in%20the%20Initial%20RAM%20Disk%20(initrd)">¶</a></h2><p>The initial RAM disk implementation (initrd) can
+ to them.</p></div><div class="refsect1"><a name="idm214174200976"></a><h2 id="Bootup in the Initial RAM Disk (initrd)">Bootup in the Initial RAM Disk (initrd)<a class="headerlink" title="Permalink to this headline" href="#Bootup%20in%20the%20Initial%20RAM%20Disk%20(initrd)">¶</a></h2><p>The initial RAM disk implementation (initrd) can
be set up using systemd as well. In this case, boot up
inside the initrd follows the following
structure.</p><p>The default target in the initrd is
initrd-switch-root.service
|
v
- Transition to Host OS</pre></div><div class="refsect1"><a name="idm214173291536"></a><h2 id="System Manager Shutdown">System Manager Shutdown<a class="headerlink" title="Permalink to this headline" href="#System%20Manager%20Shutdown">¶</a></h2><p>System shutdown with systemd also consists of
+ Transition to Host OS</pre></div><div class="refsect1"><a name="idm214171319504"></a><h2 id="System Manager Shutdown">System Manager Shutdown<a class="headerlink" title="Permalink to this headline" href="#System%20Manager%20Shutdown">¶</a></h2><p>System shutdown with systemd also consists of
various target units with some minimal ordering
structure applied:</p><pre class="programlisting"> (conflicts with (conflicts with
all system all file system
systemd-reboot.service systemd-poweroff.service systemd-halt.service systemd-kexec.service
| | | |
v v v v
- <span class="emphasis"><em>reboot.target</em></span> <span class="emphasis"><em>poweroff.target</em></span> <span class="emphasis"><em>halt.target</em></span> <span class="emphasis"><em>kexec.target</em></span></pre><p>Commonly used system shutdown targets are <span class="emphasis"><em>emphasized</em></span>.</p></div><div class="refsect1"><a name="idm214173283648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <span class="emphasis"><em>reboot.target</em></span> <span class="emphasis"><em>poweroff.target</em></span> <span class="emphasis"><em>halt.target</em></span> <span class="emphasis"><em>kexec.target</em></span></pre><p>Commonly used system shutdown targets are <span class="emphasis"><em>emphasized</em></span>.</p></div><div class="refsect1"><a name="idm214172155856"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="boot.html"><span class="citerefentry"><span class="refentrytitle">boot</span>(7)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
'\" t
-.TH "BUSCTL" "1" "" "systemd 214" "busctl"
+.TH "BUSCTL" "1" "" "systemd 215" "busctl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="busctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>busctl — Introspect the bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">busctl</code> [OPTIONS...] [COMMAND] [<em class="replaceable"><code>NAME</code></em>...]</p></div></div><div class="refsect1"><a name="idm214177446480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>busctl</strong></span> may be used to
- introspect and monitor the D-Bus bus.</p></div><div class="refsect1"><a name="idm214177444736"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--address=ADDRESS"><span class="term"><code class="option">--address=<em class="replaceable"><code>ADDRESS</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--address=ADDRESS">¶</a></dt><dd><p>Connect to the bus specified by
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="busctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>busctl — Introspect the bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">busctl</code> [OPTIONS...] [COMMAND] [<em class="replaceable"><code>NAME</code></em>...]</p></div></div><div class="refsect1"><a name="idm214187534608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>busctl</strong></span> may be used to
+ introspect and monitor the D-Bus bus.</p></div><div class="refsect1"><a name="idm214188850608"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--address=ADDRESS"><span class="term"><code class="option">--address=<em class="replaceable"><code>ADDRESS</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--address=ADDRESS">¶</a></dt><dd><p>Connect to the bus specified by
<em class="replaceable"><code>ADDRESS</code></em> instead of using suitable
defaults for either the system or user bus (see
<code class="option">--system</code> and <code class="option">--user</code>
i.e. the column headers and the
footer.</p></dd><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="#--user">¶</a></dt><dd><p><a name="user-text"></a>Talk to the service manager of the calling user,
rather than the service manager of the system.</p></dd><dt id="--system"><span class="term"><code class="option">--system</code></span><a class="headerlink" title="Permalink to this term" href="#--system">¶</a></dt><dd><p><a name="system-text"></a>Talk to the service manager of the system. This is the
- implied default.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ implied default.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181322304"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list">¶</a></dt><dd><p>Show endpoints attached to the bus. This is
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187800176"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list">¶</a></dt><dd><p>Show endpoints attached to the bus. This is
the default if no command is specified.</p></dd><dt id="monitor NAME"><span class="term"><span class="command"><strong>monitor</strong></span> [<em class="replaceable"><code>NAME</code></em>...]</span><a class="headerlink" title="Permalink to this term" href="#monitor%20%20NAME">¶</a></dt><dd><p>Dump messages being exchanged. If
<em class="replaceable"><code>NAME</code></em> is specified, show messages
to or from this endpoint. Otherwise, show all messages on the
bus.</p></dd><dt id="status NAME"><span class="term"><span class="command"><strong>status</strong></span> <em class="replaceable"><code>NAME</code></em> </span><a class="headerlink" title="Permalink to this term" href="#status%20%20NAME">¶</a></dt><dd><p>Show process information and credentials of a
- bus endpoint.</p></dd><dt id="help"><span class="term"><span class="command"><strong>help</strong></span></span><a class="headerlink" title="Permalink to this term" href="#help">¶</a></dt><dd><p>Show command syntax help.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181303952"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ bus endpoint.</p></dd><dt id="help"><span class="term"><span class="command"><strong>help</strong></span></span><a class="headerlink" title="Permalink to this term" href="#help">¶</a></dt><dd><p>Show command syntax help.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188024640"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="dbus-daemon.html"><span class="citerefentry"><span class="refentrytitle">dbus-daemon</span>(1)</span></a>,
<a class="ulink" href="http://freedesktop.org/wiki/Software/dbus" target="_top">D-Bus</a>,
<a class="ulink" href="https://code.google.com/p/d-bus/" target="_top">kdbus</a>,
--- /dev/null
+'\" t
+.TH "COREDUMP\&.CONF" "5" "" "systemd 215" "coredump.conf"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+coredump.conf \- Coredump storage configuration file
+.SH "SYNOPSIS"
+.PP
+/etc/systemd/coredump\&.conf
+.SH "DESCRIPTION"
+.PP
+This file configures the behaviour of
+\fBsystemd\-coredump\fR, a handler for core dumps invoked by the kernel\&.
+.SH "OPTIONS"
+.PP
+All options are configured in the
+"[Coredump]"
+section:
+.PP
+\fIStorage=\fR
+.RS 4
+Controls where to store cores\&. One of
+"none",
+"external",
+"journal", and
+"both"\&. When
+"none", the coredumps will be logged but not stored permanently\&. When
+"external"
+(the default), cores will be stored in
+/var/lib/systemd/coredump\&. When
+"journal", cores will be stored in the journal and rotated following normal journal rotation patterns\&. When
+"both", cores will be stored in both locations\&.
+.sp
+When cores are stored in the journal, they might be compressed following journal compression settings, see
+\fBjournald.conf\fR(5)\&. When cores are stored externally, they will be compressed by default, see below\&.
+.RE
+.PP
+\fICompress=\fR
+.RS 4
+Controls the type of compression for external storage\&. Takes a boolean argument, defaults to
+"yes"\&.
+.RE
+.PP
+\fIProcessSizeMax=\fR
+.RS 4
+The maximum size in bytes of a core which will be processed\&. Coredumps exceeding this size will be logged, but the backtrace will not be generated and the core will not be stored\&.
+.RE
+.PP
+\fIExternalSizeMax=\fR, \fIJournalSizeMax=\fR
+.RS 4
+The maximum (uncompressed) size in bytes of a core to be saved\&.
+.RE
+.PP
+\fIMaxUse=\fR, \fIKeepFree=\fR
+.RS 4
+Enforce limits on the disk space taken up by externally stored coredumps\&.
+\fBMaxUse=\fR
+makes sure that old coredumps are removed as soon as the total disk space taken up by coredumps grows beyond this limit (defaults to 10% of the total disk size)\&.
+\fBKeepFree=\fR
+controls how much disk space to keep free at least (defaults to 15% of the total disk size)\&. Note that the disk space used by coredumps might temporarily exceed these limits while coredumps are processed\&. Note that old coredumps are also removed based on on time via
+\fBsystemd-tmpfiles\fR(8)\&.
+.RE
+.SH "SEE ALSO"
+.PP
+\fBsystemd-journald.service\fR(8),
+\fBcoredumpctl\fR(1),
+\fBsystemd-tmpfiles\fR(8)
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>coredump.conf</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="coredump.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>coredump.conf — Coredump storage configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/coredump.conf</code></p></div><div class="refsect1"><a name="idm214179163936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>This file configures the behaviour of <span class="command"><strong>systemd-coredump</strong></span>,
+ a handler for core dumps invoked by the kernel.</p></div><div class="refsect1"><a name="idm214183007376"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
+ "<code class="literal">[Coredump]</code>" section:</p><div class="variablelist"><dl class="variablelist"><dt id="Storage="><span class="term"><code class="varname">Storage=</code></span><a class="headerlink" title="Permalink to this term" href="#Storage=">¶</a></dt><dd><p>Controls where to store cores. One of
+ "<code class="literal">none</code>", "<code class="literal">external</code>",
+ "<code class="literal">journal</code>", and "<code class="literal">both</code>". When
+ "<code class="literal">none</code>", the coredumps will be logged but not
+ stored permanently. When "<code class="literal">external</code>" (the
+ default), cores will be stored in <code class="filename">/var/lib/systemd/coredump</code>.
+ When "<code class="literal">journal</code>", cores will be stored in
+ the journal and rotated following normal journal
+ rotation patterns. When "<code class="literal">both</code>", cores
+ will be stored in both locations.</p><p>When cores are stored in the journal, they might be
+ compressed following journal compression settings, see
+ <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>.
+ When cores are stored externally, they will be compressed
+ by default, see below.</p></dd><dt id="Compress="><span class="term"><code class="varname">Compress=</code></span><a class="headerlink" title="Permalink to this term" href="#Compress=">¶</a></dt><dd><p>Controls the type of compression for external
+ storage. Takes a boolean argument, defaults to
+ "<code class="literal">yes</code>".</p></dd><dt id="ProcessSizeMax="><span class="term"><code class="varname">ProcessSizeMax=</code></span><a class="headerlink" title="Permalink to this term" href="#ProcessSizeMax=">¶</a></dt><dd><p>The maximum size in bytes of a core
+ which will be processed. Coredumps exceeding this size
+ will be logged, but the backtrace will not be generated
+ and the core will not be stored.</p></dd><dt id="ExternalSizeMax="><span class="term"><code class="varname">ExternalSizeMax=</code>, </span><span class="term"><code class="varname">JournalSizeMax=</code></span><a class="headerlink" title="Permalink to this term" href="#ExternalSizeMax=">¶</a></dt><dd><p>The maximum (uncompressed) size in bytes of a
+ core to be saved.</p></dd><dt id="MaxUse="><span class="term"><code class="varname">MaxUse=</code>, </span><span class="term"><code class="varname">KeepFree=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxUse=">¶</a></dt><dd><p>Enforce limits on the disk space taken up by
+ externally stored coredumps. <code class="option">MaxUse=</code> makes
+ sure that old coredumps are removed as soon as the total disk
+ space taken up by coredumps grows beyond this limit (defaults
+ to 10% of the total disk size). <code class="option">KeepFree=</code>
+ controls how much disk space to keep free at least (defaults
+ to 15% of the total disk size). Note that the disk space used
+ by coredumps might temporarily exceed these limits while
+ coredumps are processed. Note that old coredumps are also
+ removed based on on time via
+ <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183150560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
+ <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>,
+ <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version='1.0'?> <!--*-nxml-*-->
+<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Zbigniew Jędrzejewski-Szmek
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="coredump.conf" conditional="ENABLE_COREDUMP">
+ <refentryinfo>
+ <title>coredump.conf</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>coredump.conf</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>coredump.conf</refname>
+ <refpurpose>Coredump storage configuration file</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>/etc/systemd/coredump.conf</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>This file configures the behaviour of <command>systemd-coredump</command>,
+ a handler for core dumps invoked by the kernel.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>All options are configured in the
+ <literal>[Coredump]</literal> section:</para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><varname>Storage=</varname></term>
+
+ <listitem><para>Controls where to store cores. One of
+ <literal>none</literal>, <literal>external</literal>,
+ <literal>journal</literal>, and <literal>both</literal>. When
+ <literal>none</literal>, the coredumps will be logged but not
+ stored permanently. When <literal>external</literal> (the
+ default), cores will be stored in <filename>/var/lib/systemd/coredump</filename>.
+ When <literal>journal</literal>, cores will be stored in
+ the journal and rotated following normal journal
+ rotation patterns. When <literal>both</literal>, cores
+ will be stored in both locations.</para>
+
+ <para>When cores are stored in the journal, they might be
+ compressed following journal compression settings, see
+ <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ When cores are stored externally, they will be compressed
+ by default, see below.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>Compress=</varname></term>
+
+ <listitem><para>Controls the type of compression for external
+ storage. Takes a boolean argument, defaults to
+ <literal>yes</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ProcessSizeMax=</varname></term>
+
+ <listitem><para>The maximum size in bytes of a core
+ which will be processed. Coredumps exceeding this size
+ will be logged, but the backtrace will not be generated
+ and the core will not be stored.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExternalSizeMax=</varname></term>
+ <term><varname>JournalSizeMax=</varname></term>
+
+ <listitem><para>The maximum (uncompressed) size in bytes of a
+ core to be saved.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>MaxUse=</varname></term>
+ <term><varname>KeepFree=</varname></term>
+
+ <listitem><para>Enforce limits on the disk space taken up by
+ externally stored coredumps. <option>MaxUse=</option> makes
+ sure that old coredumps are removed as soon as the total disk
+ space taken up by coredumps grows beyond this limit (defaults
+ to 10% of the total disk size). <option>KeepFree=</option>
+ controls how much disk space to keep free at least (defaults
+ to 15% of the total disk size). Note that the disk space used
+ by coredumps might temporarily exceed these limits while
+ coredumps are processed. Note that old coredumps are also
+ removed based on on time via
+ <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para></listitem>
+ </varlistentry>
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
--- /dev/null
+'\" t
+.TH "COREDUMPCTL" "1" "" "systemd 215" "coredumpctl"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+coredumpctl \- Retrieve coredumps from the journal
+.SH "SYNOPSIS"
+.HP \w'\fBcoredumpctl\fR\ 'u
+\fBcoredumpctl\fR [OPTIONS...] {COMMAND} [PID|COMM|EXE|MATCH...]
+.SH "DESCRIPTION"
+.PP
+\fBcoredumpctl\fR
+may be used to retrieve coredumps from
+\fBsystemd-journald\fR(8)\&.
+.SH "OPTIONS"
+.PP
+The following options are understood:
+.PP
+\fB\-\-no\-legend\fR
+.RS 4
+Do not print the column headers\&.
+.RE
+.PP
+\fB\-1\fR
+.RS 4
+Show information of a single coredump only, instead of listing all known coredumps\&.
+.RE
+.PP
+\fB\-F\fR, \fB\-\-field=\fR
+.RS 4
+Print all possible data values the specified field takes in matching coredump entries of the journal\&.
+.RE
+.PP
+\fB\-o\fR, \fB\-\-output=FILE\fR
+.RS 4
+Write the core to
+\fBFILE\fR\&.
+.RE
+.PP
+\fB\-h\fR, \fB\-\-help\fR
+.RS 4
+Print a short help text and exit\&.
+.RE
+.PP
+\fB\-\-version\fR
+.RS 4
+Print a short version string and exit\&.
+.RE
+.PP
+\fB\-\-no\-pager\fR
+.RS 4
+Do not pipe output into a pager\&.
+.RE
+.PP
+The following commands are understood:
+.PP
+\fBlist\fR
+.RS 4
+List coredumps captured in the journal matching specified characteristics\&. If no command is specified, this is the implied default\&.
+.RE
+.PP
+\fBinfo\fR
+.RS 4
+Show detailed information about coredumps captured in the journal\&.
+.RE
+.PP
+\fBdump\fR
+.RS 4
+Extract the last coredump matching specified characteristics\&. The coredump will be written on standard output, unless an output file is specified with
+\fB\-o/\-\-output\fR\&.
+.RE
+.PP
+\fBgdb\fR
+.RS 4
+Invoke the GNU debugger on the last coredump matching specified characteristics\&.
+.RE
+.SH "MATCHING"
+.PP
+A match can be:
+.PP
+\fIPID\fR
+.RS 4
+Process ID of the process that dumped core\&. An integer\&.
+.RE
+.PP
+\fICOMM\fR
+.RS 4
+Name of the executable (matches
+\fBCOREDUMP_COMM=\fR)\&. Must not contain slashes\&.
+.RE
+.PP
+\fIEXE\fR
+.RS 4
+Path to the executable (matches
+\fBCOREDUMP_EXE=\fR)\&. Must contain at least one slash\&.
+.RE
+.PP
+\fIMATCH\fR
+.RS 4
+General journalctl predicates (see
+\fBjournalctl\fR(1))\&. Must contain an equal sign\&.
+.RE
+.SH "EXIT STATUS"
+.PP
+On success, 0 is returned; otherwise, a non\-zero failure code is returned\&. Not finding any matching coredumps is treated as failure\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd-journald.service\fR(8),
+\fBgdb\fR(1)
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>coredumpctl</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="coredumpctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>coredumpctl — Retrieve coredumps from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">coredumpctl</code> [OPTIONS...] {COMMAND} [PID|COMM|EXE|MATCH...]</p></div></div><div class="refsect1"><a name="idm214194795776"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>coredumpctl</strong></span> may be used to
+ retrieve coredumps from
+ <a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214194840048"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p>Do not print the column headers.
+ </p></dd><dt id="-1"><span class="term"><code class="option">-1</code></span><a class="headerlink" title="Permalink to this term" href="#-1">¶</a></dt><dd><p>Show information of a
+ single coredump only, instead of
+ listing all known coredumps.
+ </p></dd><dt id="-F"><span class="term"><code class="option">-F</code>, </span><span class="term"><code class="option">--field=</code></span><a class="headerlink" title="Permalink to this term" href="#-F">¶</a></dt><dd><p>Print all possible
+ data values the specified field
+ takes in matching coredump entries of the
+ journal.</p></dd><dt id="-o"><span class="term"><code class="option">-o</code>, </span><span class="term"><code class="option">--output=FILE</code></span><a class="headerlink" title="Permalink to this term" href="#-o">¶</a></dt><dd><p>Write the core to
+ <code class="option">FILE</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list">¶</a></dt><dd><p>List coredumps
+ captured in the journal matching
+ specified characteristics. If no
+ command is specified, this is the
+ implied default.</p></dd><dt id="info"><span class="term"><span class="command"><strong>info</strong></span></span><a class="headerlink" title="Permalink to this term" href="#info">¶</a></dt><dd><p>Show detailed
+ information about coredumps captured
+ in the journal.</p></dd><dt id="dump"><span class="term"><span class="command"><strong>dump</strong></span></span><a class="headerlink" title="Permalink to this term" href="#dump">¶</a></dt><dd><p>Extract the last coredump
+ matching specified characteristics.
+ The coredump will be written on standard output,
+ unless an output file is specified with
+ <code class="option">-o/--output</code>.
+ </p></dd><dt id="gdb"><span class="term"><span class="command"><strong>gdb</strong></span></span><a class="headerlink" title="Permalink to this term" href="#gdb">¶</a></dt><dd><p>Invoke the GNU
+ debugger on the last coredump matching
+ specified characteristics.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214194937296"></a><h2 id="Matching">Matching<a class="headerlink" title="Permalink to this headline" href="#Matching">¶</a></h2><p>A match can be:</p><div class="variablelist"><dl class="variablelist"><dt id="PID"><span class="term"><em class="replaceable"><code>PID</code></em></span><a class="headerlink" title="Permalink to this term" href="#PID">¶</a></dt><dd><p>Process ID of the
+ process that dumped
+ core. An integer.</p></dd><dt id="COMM"><span class="term"><em class="replaceable"><code>COMM</code></em></span><a class="headerlink" title="Permalink to this term" href="#COMM">¶</a></dt><dd><p>Name of the executable
+ (matches <code class="option">COREDUMP_COMM=</code>).
+ Must not contain slashes.
+ </p></dd><dt id="EXE"><span class="term"><em class="replaceable"><code>EXE</code></em></span><a class="headerlink" title="Permalink to this term" href="#EXE">¶</a></dt><dd><p>Path to the executable
+ (matches <code class="option">COREDUMP_EXE=</code>).
+ Must contain at least one slash.
+ </p></dd><dt id="MATCH"><span class="term"><em class="replaceable"><code>MATCH</code></em></span><a class="headerlink" title="Permalink to this term" href="#MATCH">¶</a></dt><dd><p>General journalctl predicates
+ (see <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>).
+ Must contain an equal sign.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214194927856"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned; otherwise, a non-zero failure
+ code is returned. Not finding any matching coredumps is treated
+ as failure.
+ </p></div><div class="refsect1"><a name="idm214194926480"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
+ <a href="gdb.html"><span class="citerefentry"><span class="refentrytitle">gdb</span>(1)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2012 Zbigniew Jędrzejewski-Szmek
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>coredumpctl</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Zbigniew</firstname>
+ <surname>Jędrzejewski-Szmek</surname>
+ <email>zbyszek@in.waw.pl</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>coredumpctl</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>coredumpctl</refname>
+ <refpurpose>Retrieve coredumps from the journal</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>coredumpctl</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
+ <arg choice="req">COMMAND</arg>
+ <arg choice="opt" rep="repeat">PID|COMM|EXE|MATCH</arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>coredumpctl</command> may be used to
+ retrieve coredumps from
+ <citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>The following options are understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>--no-legend</option></term>
+
+ <listitem><para>Do not print the column headers.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-1</option></term>
+
+ <listitem><para>Show information of a
+ single coredump only, instead of
+ listing all known coredumps.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-F</option></term>
+ <term><option>--field=</option></term>
+
+ <listitem><para>Print all possible
+ data values the specified field
+ takes in matching coredump entries of the
+ journal.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-o</option></term>
+ <term><option>--output=FILE</option></term>
+
+ <listitem><para>Write the core to
+ <option>FILE</option>.</para></listitem>
+ </varlistentry>
+
+ <xi:include href="standard-options.xml" xpointer="help" />
+ <xi:include href="standard-options.xml" xpointer="version" />
+ <xi:include href="standard-options.xml" xpointer="no-pager" />
+
+ </variablelist>
+
+ <para>The following commands are understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>list</command></term>
+
+ <listitem><para>List coredumps
+ captured in the journal matching
+ specified characteristics. If no
+ command is specified, this is the
+ implied default.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>info</command></term>
+
+ <listitem><para>Show detailed
+ information about coredumps captured
+ in the journal.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>dump</command></term>
+
+ <listitem><para>Extract the last coredump
+ matching specified characteristics.
+ The coredump will be written on standard output,
+ unless an output file is specified with
+ <option>-o/--output</option>.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>gdb</command></term>
+
+ <listitem><para>Invoke the GNU
+ debugger on the last coredump matching
+ specified characteristics.
+ </para></listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Matching</title>
+
+ <para>A match can be:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><replaceable>PID</replaceable></term>
+
+ <listitem><para>Process ID of the
+ process that dumped
+ core. An integer.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>COMM</replaceable></term>
+
+ <listitem><para>Name of the executable
+ (matches <option>COREDUMP_COMM=</option>).
+ Must not contain slashes.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>EXE</replaceable></term>
+
+ <listitem><para>Path to the executable
+ (matches <option>COREDUMP_EXE=</option>).
+ Must contain at least one slash.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>MATCH</replaceable></term>
+
+ <listitem><para>General journalctl predicates
+ (see <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
+ Must contain an equal sign.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Exit status</title>
+ <para>On success, 0 is returned; otherwise, a non-zero failure
+ code is returned. Not finding any matching coredumps is treated
+ as failure.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
'\" t
-.TH "CRYPTTAB" "5" "" "systemd 214" "crypttab"
+.TH "CRYPTTAB" "5" "" "systemd 215" "crypttab"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
The fourth field, if present, is a comma\-delimited list of options\&. The following options are recognized:
.PP
-\fIdiscard\fR
+\fBdiscard\fR
.RS 4
Allow discard requests to be passed through the encrypted block device\&. This improves performance on SSD storage but has security implications\&.
.RE
.PP
-\fIcipher=\fR
+\fBcipher=\fR
.RS 4
Specifies the cipher to use\&. See
\fBcryptsetup\fR(8)
"aes\-cbc\-essiv:sha256", is recommended\&.
.RE
.PP
-\fIhash=\fR
+\fBhash=\fR
.RS 4
Specifies the hash to use for password hashing\&. See
\fBcryptsetup\fR(8)
for possible values and the default value of this option\&.
.RE
.PP
-\fIkeyfile\-offset=\fR
+\fBkeyfile\-offset=\fR
.RS 4
Specifies the number of bytes to skip at the start of the key file\&. See
\fBcryptsetup\fR(8)
for possible values and the default value of this option\&.
.RE
.PP
-\fIkeyfile\-size=\fR
+\fBkeyfile\-size=\fR
.RS 4
Specifies the maximum number of bytes to read from the key file\&. See
\fBcryptsetup\fR(8)
for possible values and the default value of this option\&. This option is ignored in plain encryption mode, as the key file size is then given by the key size\&.
.RE
.PP
-\fIkey\-slot=\fR
+\fBkey\-slot=\fR
.RS 4
Specifies the key slot to compare the passphrase or key against\&. If the key slot does not match the given passphrase or key, but another would, the setup of the device will fail regardless\&. This option implies
-\fIluks\fR\&. See
+\fBluks\fR\&. See
\fBcryptsetup\fR(8)
for possible values\&. The default is to try all key slots in sequential order\&.
.RE
.PP
-\fIluks\fR
+\fBluks\fR
.RS 4
Force LUKS mode\&. When this mode is used, the following options are ignored since they are provided by the LUKS header on the device:
-\fIcipher=\fR,
-\fIhash=\fR,
-\fIsize=\fR\&.
+\fBcipher=\fR,
+\fBhash=\fR,
+\fBsize=\fR\&.
.RE
.PP
-\fInoauto\fR
+\fBnoauto\fR
.RS 4
This device will not be automatically unlocked on boot\&.
.RE
.PP
-\fInofail\fR
+\fBnofail\fR
.RS 4
The system will not wait for the device to show up and be unlocked at boot, and not fail the boot if it does not show up\&.
.RE
.PP
-\fIplain\fR
+\fBplain\fR
.RS 4
Force plain encryption mode\&.
.RE
.PP
-\fIread\-only\fR, \fIreadonly\fR
+\fBread\-only\fR, \fBreadonly\fR
.RS 4
Set up the encrypted block device in read\-only mode\&.
.RE
.PP
-\fIsize=\fR
+\fBsize=\fR
.RS 4
Specifies the key size in bits\&. See
\fBcryptsetup\fR(8)
for possible values and the default value of this option\&.
.RE
.PP
-\fIswap\fR
+\fBswap\fR
.RS 4
The encrypted block device will be used as a swap device, and will be formatted accordingly after setting up the encrypted block device, with
\fBmkswap\fR(8)\&. This option implies
-\fIplain\fR\&.
+\fBplain\fR\&.
.sp
WARNING: Using the
-\fIswap\fR
+\fBswap\fR
option will destroy the contents of the named partition during every boot, so make sure the underlying block device is specified correctly\&.
.RE
.PP
-\fItcrypt\fR
+\fBtcrypt\fR
.RS 4
Use TrueCrypt encryption mode\&. When this mode is used, the following options are ignored since they are provided by the TrueCrypt header on the device or do not apply:
-\fIcipher=\fR,
-\fIhash=\fR,
-\fIkeyfile\-offset=\fR,
-\fIkeyfile\-size=\fR,
-\fIsize=\fR\&.
+\fBcipher=\fR,
+\fBhash=\fR,
+\fBkeyfile\-offset=\fR,
+\fBkeyfile\-size=\fR,
+\fBsize=\fR\&.
.sp
When this mode is used, the passphrase is read from the key file given in the third field\&. Only the first line of this file is read, excluding the new line character\&.
.sp
Note that the TrueCrypt format uses both passphrase and key files to derive a password for the volume\&. Therefore, the passphrase and all key files need to be provided\&. Use
-\fItcrypt\-keyfile=\fR
+\fBtcrypt\-keyfile=\fR
to provide the absolute path to all key files\&. When using an empty passphrase in combination with one or more key files, use
"/dev/null"
as the password file in the third field\&.
.RE
.PP
-\fItcrypt\-hidden\fR
+\fBtcrypt\-hidden\fR
.RS 4
Use the hidden TrueCrypt volume\&. This option implies
-\fItcrypt\fR\&.
+\fBtcrypt\fR\&.
.sp
This will map the hidden volume that is inside of the volume provided in the second field\&. Please note that there is no protection for the hidden volume if the outer volume is mounted instead\&. See
\fBcryptsetup\fR(8)
for more information on this limitation\&.
.RE
.PP
-\fItcrypt\-keyfile=\fR
+\fBtcrypt\-keyfile=\fR
.RS 4
Specifies the absolute path to a key file to use for a TrueCrypt volume\&. This implies
-\fItcrypt\fR
+\fBtcrypt\fR
and can be used more than once to provide several key files\&.
.sp
See the entry for
-\fItcrypt\fR
+\fBtcrypt\fR
on the behavior of the passphrase and key files when using TrueCrypt encryption mode\&.
.RE
.PP
-\fItcrypt\-system\fR
+\fBtcrypt\-system\fR
.RS 4
Use TrueCrypt in system encryption mode\&. This option implies
-\fItcrypt\fR\&.
+\fBtcrypt\fR\&.
.RE
.PP
-\fItimeout=\fR
+\fBtimeout=\fR
.RS 4
Specifies the timeout for querying for a password\&. If no unit is specified, seconds is used\&. Supported units are s, ms, us, min, h, d\&. A timeout of 0 waits indefinitely (which is the default)\&.
.RE
.PP
-\fItmp\fR
+\fBtmp\fR
.RS 4
The encrypted block device will be prepared for using it as
/tmp; it will be formatted using
\fBmke2fs\fR(8)\&. This option implies
-\fIplain\fR\&.
+\fBplain\fR\&.
.sp
WARNING: Using the
-\fItmp\fR
+\fBtmp\fR
option will destroy the contents of the named partition during every boot, so make sure the underlying block device is specified correctly\&.
.RE
.PP
-\fItries=\fR
+\fBtries=\fR
.RS 4
Specifies the maximum number of times the user is queried for a password\&. The default is 3\&. If set to 0, the user is queried for a password indefinitely\&.
.RE
.PP
-\fIverify\fR
+\fBverify\fR
.RS 4
If the encryption password is read from console, it has to be entered twice to prevent typos\&.
.RE
luks UUID=2505567a\-9e27\-4efe\-a4d5\-15ad146c258b
swap /dev/sda7 /dev/urandom swap
truecrypt /dev/sda2 /etc/container_password tcrypt
-hidden /mnt/tc_hidden /null tcrypt\-hidden,tcrypt\-keyfile=/etc/keyfile
+hidden /mnt/tc_hidden /dev/null tcrypt\-hidden,tcrypt\-keyfile=/etc/keyfile
.fi
.if n \{\
.RE
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="crypttab"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>crypttab — Configuration for encrypted block devices</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/crypttab</code></p></div><div class="refsect1"><a name="idm214191735008"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/crypttab</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="crypttab"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>crypttab — Configuration for encrypted block devices</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/crypttab</code></p></div><div class="refsect1"><a name="idm214179029408"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/crypttab</code> file
describes encrypted block devices that are set up
during system boot.</p><p>Empty lines and lines starting with the "<code class="literal">#</code>"
character are ignored. Each of the remaining lines
completion if the system does not have enough entropy
to generate a truly random encryption key.</p><p>The fourth field, if present, is a
comma-delimited list of options. The following
- options are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="discard"><span class="term"><code class="varname">discard</code></span><a class="headerlink" title="Permalink to this term" href="#discard">¶</a></dt><dd><p>Allow discard requests to be
+ options are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="discard"><span class="term"><code class="option">discard</code></span><a class="headerlink" title="Permalink to this term" href="#discard">¶</a></dt><dd><p>Allow discard requests to be
passed through the encrypted block device. This
improves performance on SSD storage but has
- security implications.</p></dd><dt id="cipher="><span class="term"><code class="varname">cipher=</code></span><a class="headerlink" title="Permalink to this term" href="#cipher=">¶</a></dt><dd><p>Specifies the cipher to use. See
+ security implications.</p></dd><dt id="cipher="><span class="term"><code class="option">cipher=</code></span><a class="headerlink" title="Permalink to this term" href="#cipher=">¶</a></dt><dd><p>Specifies the cipher to use. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
for possible values and the default value of
this option. A cipher with unpredictable IV
values, such as "<code class="literal">aes-cbc-essiv:sha256</code>",
- is recommended.</p></dd><dt id="hash="><span class="term"><code class="varname">hash=</code></span><a class="headerlink" title="Permalink to this term" href="#hash=">¶</a></dt><dd><p>Specifies the hash to use for
+ is recommended.</p></dd><dt id="hash="><span class="term"><code class="option">hash=</code></span><a class="headerlink" title="Permalink to this term" href="#hash=">¶</a></dt><dd><p>Specifies the hash to use for
password hashing. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
for possible values and the default value of
- this option.</p></dd><dt id="keyfile-offset="><span class="term"><code class="varname">keyfile-offset=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-offset=">¶</a></dt><dd><p>Specifies the number of bytes to
+ this option.</p></dd><dt id="keyfile-offset="><span class="term"><code class="option">keyfile-offset=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-offset=">¶</a></dt><dd><p>Specifies the number of bytes to
skip at the start of the key file. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
for possible values and the default value of
- this option.</p></dd><dt id="keyfile-size="><span class="term"><code class="varname">keyfile-size=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-size=">¶</a></dt><dd><p>Specifies the maximum number
+ this option.</p></dd><dt id="keyfile-size="><span class="term"><code class="option">keyfile-size=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-size=">¶</a></dt><dd><p>Specifies the maximum number
of bytes to read from the key file. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
for possible values and the default value of
this option. This option is ignored in plain
encryption mode, as the key file size is then
- given by the key size.</p></dd><dt id="key-slot="><span class="term"><code class="varname">key-slot=</code></span><a class="headerlink" title="Permalink to this term" href="#key-slot=">¶</a></dt><dd><p>Specifies the key slot to
+ given by the key size.</p></dd><dt id="key-slot="><span class="term"><code class="option">key-slot=</code></span><a class="headerlink" title="Permalink to this term" href="#key-slot=">¶</a></dt><dd><p>Specifies the key slot to
compare the passphrase or key against.
If the key slot does not match the given
passphrase or key, but another would, the
setup of the device will fail regardless.
- This option implies <code class="varname">luks</code>. See
+ This option implies <code class="option">luks</code>. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
for possible values. The default is to try
- all key slots in sequential order.</p></dd><dt id="luks"><span class="term"><code class="varname">luks</code></span><a class="headerlink" title="Permalink to this term" href="#luks">¶</a></dt><dd><p>Force LUKS mode. When this mode
+ all key slots in sequential order.</p></dd><dt id="luks"><span class="term"><code class="option">luks</code></span><a class="headerlink" title="Permalink to this term" href="#luks">¶</a></dt><dd><p>Force LUKS mode. When this mode
is used, the following options are ignored since
they are provided by the LUKS header on the
- device: <code class="varname">cipher=</code>,
- <code class="varname">hash=</code>,
- <code class="varname">size=</code>.</p></dd><dt id="noauto"><span class="term"><code class="varname">noauto</code></span><a class="headerlink" title="Permalink to this term" href="#noauto">¶</a></dt><dd><p>This device will not be
- automatically unlocked on boot.</p></dd><dt id="nofail"><span class="term"><code class="varname">nofail</code></span><a class="headerlink" title="Permalink to this term" href="#nofail">¶</a></dt><dd><p>The system will not wait for the
+ device: <code class="option">cipher=</code>,
+ <code class="option">hash=</code>,
+ <code class="option">size=</code>.</p></dd><dt id="noauto"><span class="term"><code class="option">noauto</code></span><a class="headerlink" title="Permalink to this term" href="#noauto">¶</a></dt><dd><p>This device will not be
+ automatically unlocked on boot.</p></dd><dt id="nofail"><span class="term"><code class="option">nofail</code></span><a class="headerlink" title="Permalink to this term" href="#nofail">¶</a></dt><dd><p>The system will not wait for the
device to show up and be unlocked at boot, and
- not fail the boot if it does not show up.</p></dd><dt id="plain"><span class="term"><code class="varname">plain</code></span><a class="headerlink" title="Permalink to this term" href="#plain">¶</a></dt><dd><p>Force plain encryption mode.</p></dd><dt id="read-only"><span class="term"><code class="varname">read-only</code>, </span><span class="term"><code class="varname">readonly</code></span><a class="headerlink" title="Permalink to this term" href="#read-only">¶</a></dt><dd><p>Set up the encrypted block
- device in read-only mode.</p></dd><dt id="size="><span class="term"><code class="varname">size=</code></span><a class="headerlink" title="Permalink to this term" href="#size=">¶</a></dt><dd><p>Specifies the key size
+ not fail the boot if it does not show up.</p></dd><dt id="plain"><span class="term"><code class="option">plain</code></span><a class="headerlink" title="Permalink to this term" href="#plain">¶</a></dt><dd><p>Force plain encryption mode.</p></dd><dt id="read-only"><span class="term"><code class="option">read-only</code>, </span><span class="term"><code class="option">readonly</code></span><a class="headerlink" title="Permalink to this term" href="#read-only">¶</a></dt><dd><p>Set up the encrypted block
+ device in read-only mode.</p></dd><dt id="size="><span class="term"><code class="option">size=</code></span><a class="headerlink" title="Permalink to this term" href="#size=">¶</a></dt><dd><p>Specifies the key size
in bits. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
for possible values and the default value of
- this option.</p></dd><dt id="swap"><span class="term"><code class="varname">swap</code></span><a class="headerlink" title="Permalink to this term" href="#swap">¶</a></dt><dd><p>The encrypted block device will
+ this option.</p></dd><dt id="swap"><span class="term"><code class="option">swap</code></span><a class="headerlink" title="Permalink to this term" href="#swap">¶</a></dt><dd><p>The encrypted block device will
be used as a swap device, and will be formatted
accordingly after setting up the encrypted
block device, with
<a href="mkswap.html"><span class="citerefentry"><span class="refentrytitle">mkswap</span>(8)</span></a>.
- This option implies <code class="varname">plain</code>.</p><p>WARNING: Using the <code class="varname">swap</code>
+ This option implies <code class="option">plain</code>.</p><p>WARNING: Using the <code class="option">swap</code>
option will destroy the contents of the named
partition during every boot, so make sure the
- underlying block device is specified correctly.</p></dd><dt id="tcrypt"><span class="term"><code class="varname">tcrypt</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt">¶</a></dt><dd><p>Use TrueCrypt encryption mode.
+ underlying block device is specified correctly.</p></dd><dt id="tcrypt"><span class="term"><code class="option">tcrypt</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt">¶</a></dt><dd><p>Use TrueCrypt encryption mode.
When this mode is used, the following options are
ignored since they are provided by the TrueCrypt
header on the device or do not apply:
- <code class="varname">cipher=</code>,
- <code class="varname">hash=</code>,
- <code class="varname">keyfile-offset=</code>,
- <code class="varname">keyfile-size=</code>,
- <code class="varname">size=</code>.</p><p>When this mode is used, the passphrase is
+ <code class="option">cipher=</code>,
+ <code class="option">hash=</code>,
+ <code class="option">keyfile-offset=</code>,
+ <code class="option">keyfile-size=</code>,
+ <code class="option">size=</code>.</p><p>When this mode is used, the passphrase is
read from the key file given in the third field.
Only the first line of this file is read,
excluding the new line character.</p><p>Note that the TrueCrypt format uses both
passphrase and key files to derive a password
for the volume. Therefore, the passphrase and
all key files need to be provided. Use
- <code class="varname">tcrypt-keyfile=</code> to provide
+ <code class="option">tcrypt-keyfile=</code> to provide
the absolute path to all key files. When using
an empty passphrase in combination with one or
more key files, use "<code class="literal">/dev/null</code>"
- as the password file in the third field.</p></dd><dt id="tcrypt-hidden"><span class="term"><code class="varname">tcrypt-hidden</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-hidden">¶</a></dt><dd><p>Use the hidden TrueCrypt volume.
- This option implies <code class="varname">tcrypt</code>.</p><p>This will map the hidden volume that is
+ as the password file in the third field.</p></dd><dt id="tcrypt-hidden"><span class="term"><code class="option">tcrypt-hidden</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-hidden">¶</a></dt><dd><p>Use the hidden TrueCrypt volume.
+ This option implies <code class="option">tcrypt</code>.</p><p>This will map the hidden volume that is
inside of the volume provided in the second
field. Please note that there is no protection
for the hidden volume if the outer volume is
mounted instead. See
<a href="cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">cryptsetup</span>(8)</span></a>
- for more information on this limitation.</p></dd><dt id="tcrypt-keyfile="><span class="term"><code class="varname">tcrypt-keyfile=</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-keyfile=">¶</a></dt><dd><p>Specifies the absolute path to a
+ for more information on this limitation.</p></dd><dt id="tcrypt-keyfile="><span class="term"><code class="option">tcrypt-keyfile=</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-keyfile=">¶</a></dt><dd><p>Specifies the absolute path to a
key file to use for a TrueCrypt volume. This
- implies <code class="varname">tcrypt</code> and can be
+ implies <code class="option">tcrypt</code> and can be
used more than once to provide several key
- files.</p><p>See the entry for <code class="varname">tcrypt</code>
+ files.</p><p>See the entry for <code class="option">tcrypt</code>
on the behavior of the passphrase and key files
- when using TrueCrypt encryption mode.</p></dd><dt id="tcrypt-system"><span class="term"><code class="varname">tcrypt-system</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-system">¶</a></dt><dd><p>Use TrueCrypt in system
+ when using TrueCrypt encryption mode.</p></dd><dt id="tcrypt-system"><span class="term"><code class="option">tcrypt-system</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-system">¶</a></dt><dd><p>Use TrueCrypt in system
encryption mode. This option implies
- <code class="varname">tcrypt</code>.</p></dd><dt id="timeout="><span class="term"><code class="varname">timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#timeout=">¶</a></dt><dd><p>Specifies the timeout for
+ <code class="option">tcrypt</code>.</p></dd><dt id="timeout="><span class="term"><code class="option">timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#timeout=">¶</a></dt><dd><p>Specifies the timeout for
querying for a password. If no unit is
specified, seconds is used. Supported units are
s, ms, us, min, h, d. A timeout of 0 waits
- indefinitely (which is the default).</p></dd><dt id="tmp"><span class="term"><code class="varname">tmp</code></span><a class="headerlink" title="Permalink to this term" href="#tmp">¶</a></dt><dd><p>The encrypted block device will
+ indefinitely (which is the default).</p></dd><dt id="tmp"><span class="term"><code class="option">tmp</code></span><a class="headerlink" title="Permalink to this term" href="#tmp">¶</a></dt><dd><p>The encrypted block device will
be prepared for using it as <code class="filename">/tmp</code>;
it will be formatted using
<a href="mke2fs.html"><span class="citerefentry"><span class="refentrytitle">mke2fs</span>(8)</span></a>.
- This option implies <code class="varname">plain</code>.</p><p>WARNING: Using the <code class="varname">tmp</code>
+ This option implies <code class="option">plain</code>.</p><p>WARNING: Using the <code class="option">tmp</code>
option will destroy the contents of the named
partition during every boot, so make sure the
- underlying block device is specified correctly.</p></dd><dt id="tries="><span class="term"><code class="varname">tries=</code></span><a class="headerlink" title="Permalink to this term" href="#tries=">¶</a></dt><dd><p>Specifies the maximum number of
+ underlying block device is specified correctly.</p></dd><dt id="tries="><span class="term"><code class="option">tries=</code></span><a class="headerlink" title="Permalink to this term" href="#tries=">¶</a></dt><dd><p>Specifies the maximum number of
times the user is queried for a password.
The default is 3. If set to 0, the user is
- queried for a password indefinitely.</p></dd><dt id="verify"><span class="term"><code class="varname">verify</code></span><a class="headerlink" title="Permalink to this term" href="#verify">¶</a></dt><dd><p> If the encryption password is
+ queried for a password indefinitely.</p></dd><dt id="verify"><span class="term"><code class="option">verify</code></span><a class="headerlink" title="Permalink to this term" href="#verify">¶</a></dt><dd><p> If the encryption password is
read from console, it has to be entered twice to
prevent typos.</p></dd></dl></div><p>At early boot and when the system manager
configuration is reloaded, this file is translated into
native systemd units
- by <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214194879488"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214194878816"></a><p class="title"><b>Example 1. /etc/crypttab example</b></p><div class="example-contents"><p>Set up four encrypted block devices. One using
+ by <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214174457600"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214174456960"></a><p class="title"><b>Example 1. /etc/crypttab example</b></p><div class="example-contents"><p>Set up four encrypted block devices. One using
LUKS for normal storage, another one for usage as a swap
device and two TrueCrypt volumes.</p><pre class="programlisting">luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b
swap /dev/sda7 /dev/urandom swap
truecrypt /dev/sda2 /etc/container_password tcrypt
-hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214193239680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214174454576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a>,
<a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>,
comma-delimited list of options. The following
options are recognized:</para>
- <variablelist class='crypttab-options'>
+ <variablelist class='fstab-options'>
<varlistentry>
- <term><varname>discard</varname></term>
+ <term><option>discard</option></term>
<listitem><para>Allow discard requests to be
passed through the encrypted block device. This
</varlistentry>
<varlistentry>
- <term><varname>cipher=</varname></term>
+ <term><option>cipher=</option></term>
<listitem><para>Specifies the cipher to use. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</varlistentry>
<varlistentry>
- <term><varname>hash=</varname></term>
+ <term><option>hash=</option></term>
<listitem><para>Specifies the hash to use for
password hashing. See
</varlistentry>
<varlistentry>
- <term><varname>keyfile-offset=</varname></term>
+ <term><option>keyfile-offset=</option></term>
<listitem><para>Specifies the number of bytes to
skip at the start of the key file. See
</varlistentry>
<varlistentry>
- <term><varname>keyfile-size=</varname></term>
+ <term><option>keyfile-size=</option></term>
<listitem><para>Specifies the maximum number
of bytes to read from the key file. See
</varlistentry>
<varlistentry>
- <term><varname>key-slot=</varname></term>
+ <term><option>key-slot=</option></term>
<listitem><para>Specifies the key slot to
compare the passphrase or key against.
If the key slot does not match the given
passphrase or key, but another would, the
setup of the device will fail regardless.
- This option implies <varname>luks</varname>. See
+ This option implies <option>luks</option>. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values. The default is to try
all key slots in sequential order.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>luks</varname></term>
+ <term><option>luks</option></term>
<listitem><para>Force LUKS mode. When this mode
is used, the following options are ignored since
they are provided by the LUKS header on the
- device: <varname>cipher=</varname>,
- <varname>hash=</varname>,
- <varname>size=</varname>.</para></listitem>
+ device: <option>cipher=</option>,
+ <option>hash=</option>,
+ <option>size=</option>.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>noauto</varname></term>
+ <term><option>noauto</option></term>
<listitem><para>This device will not be
automatically unlocked on boot.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>nofail</varname></term>
+ <term><option>nofail</option></term>
<listitem><para>The system will not wait for the
device to show up and be unlocked at boot, and
</varlistentry>
<varlistentry>
- <term><varname>plain</varname></term>
+ <term><option>plain</option></term>
<listitem><para>Force plain encryption mode.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>read-only</varname></term><term><varname>readonly</varname></term>
+ <term><option>read-only</option></term><term><option>readonly</option></term>
<listitem><para>Set up the encrypted block
device in read-only mode.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>size=</varname></term>
+ <term><option>size=</option></term>
<listitem><para>Specifies the key size
in bits. See
</varlistentry>
<varlistentry>
- <term><varname>swap</varname></term>
+ <term><option>swap</option></term>
<listitem><para>The encrypted block device will
be used as a swap device, and will be formatted
accordingly after setting up the encrypted
block device, with
<citerefentry><refentrytitle>mkswap</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- This option implies <varname>plain</varname>.</para>
+ This option implies <option>plain</option>.</para>
- <para>WARNING: Using the <varname>swap</varname>
+ <para>WARNING: Using the <option>swap</option>
option will destroy the contents of the named
partition during every boot, so make sure the
underlying block device is specified correctly.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>tcrypt</varname></term>
+ <term><option>tcrypt</option></term>
<listitem><para>Use TrueCrypt encryption mode.
When this mode is used, the following options are
ignored since they are provided by the TrueCrypt
header on the device or do not apply:
- <varname>cipher=</varname>,
- <varname>hash=</varname>,
- <varname>keyfile-offset=</varname>,
- <varname>keyfile-size=</varname>,
- <varname>size=</varname>.</para>
+ <option>cipher=</option>,
+ <option>hash=</option>,
+ <option>keyfile-offset=</option>,
+ <option>keyfile-size=</option>,
+ <option>size=</option>.</para>
<para>When this mode is used, the passphrase is
read from the key file given in the third field.
passphrase and key files to derive a password
for the volume. Therefore, the passphrase and
all key files need to be provided. Use
- <varname>tcrypt-keyfile=</varname> to provide
+ <option>tcrypt-keyfile=</option> to provide
the absolute path to all key files. When using
an empty passphrase in combination with one or
more key files, use <literal>/dev/null</literal>
</varlistentry>
<varlistentry>
- <term><varname>tcrypt-hidden</varname></term>
+ <term><option>tcrypt-hidden</option></term>
<listitem><para>Use the hidden TrueCrypt volume.
- This option implies <varname>tcrypt</varname>.</para>
+ This option implies <option>tcrypt</option>.</para>
<para>This will map the hidden volume that is
inside of the volume provided in the second
</varlistentry>
<varlistentry>
- <term><varname>tcrypt-keyfile=</varname></term>
+ <term><option>tcrypt-keyfile=</option></term>
<listitem><para>Specifies the absolute path to a
key file to use for a TrueCrypt volume. This
- implies <varname>tcrypt</varname> and can be
+ implies <option>tcrypt</option> and can be
used more than once to provide several key
files.</para>
- <para>See the entry for <varname>tcrypt</varname>
+ <para>See the entry for <option>tcrypt</option>
on the behavior of the passphrase and key files
when using TrueCrypt encryption mode.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>tcrypt-system</varname></term>
+ <term><option>tcrypt-system</option></term>
<listitem><para>Use TrueCrypt in system
encryption mode. This option implies
- <varname>tcrypt</varname>.</para></listitem>
+ <option>tcrypt</option>.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>timeout=</varname></term>
+ <term><option>timeout=</option></term>
<listitem><para>Specifies the timeout for
querying for a password. If no unit is
</varlistentry>
<varlistentry>
- <term><varname>tmp</varname></term>
+ <term><option>tmp</option></term>
<listitem><para>The encrypted block device will
be prepared for using it as <filename>/tmp</filename>;
it will be formatted using
<citerefentry><refentrytitle>mke2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
- This option implies <varname>plain</varname>.</para>
+ This option implies <option>plain</option>.</para>
- <para>WARNING: Using the <varname>tmp</varname>
+ <para>WARNING: Using the <option>tmp</option>
option will destroy the contents of the named
partition during every boot, so make sure the
underlying block device is specified correctly.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>tries=</varname></term>
+ <term><option>tries=</option></term>
<listitem><para>Specifies the maximum number of
times the user is queried for a password.
</varlistentry>
<varlistentry>
- <term><varname>verify</varname></term>
+ <term><option>verify</option></term>
<listitem><para> If the encryption password is
read from console, it has to be entered twice to
<programlisting>luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b
swap /dev/sda7 /dev/urandom swap
truecrypt /dev/sda2 /etc/container_password tcrypt
-hidden /mnt/tc_hidden /null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
+hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
</example>
</refsect1>
'\" t
-.TH "DAEMON" "7" "" "systemd 214" "daemon"
+.TH "DAEMON" "7" "" "systemd 215" "daemon"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
call to log directly to the system syslog service, a new\-style daemon may choose to simply log to standard error via
\fBfprintf()\fR, which is then forwarded to syslog by the init system\&. If log priorities are necessary, these can be encoded by prefixing individual log lines with strings like "<4>" (for log priority 4 "WARNING" in the syslog priority scheme), following a similar style as the Linux kernel\*(Aqs
\fBprintk()\fR
-priority system\&. In fact, using this style of logging also enables the init system to optionally direct all application logging to the kernel log buffer (kmsg), as accessible via
-\fBdmesg\fR(1)\&. This kind of logging may be enabled by setting
-\fIStandardError=syslog\fR
-in the service unit file\&. For details, see
+priority system\&. For details, see
\fBsd-daemon\fR(3)
and
\fBsystemd.exec\fR(5)\&.
.\}
If the daemon exposes interfaces via D\-Bus, write and install a D\-Bus activation file for the service, see above for details\&.
.RE
+.SH "PLACING DAEMON DATA"
+.PP
+It is recommended to follow the general guidelines for placing package files, as discussed in
+\fBfile-hierarchy\fR(7)\&.
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsd_listen_fds\fR(3),
\fBsd_notify\fR(3),
\fBdaemon\fR(3),
-\fBsystemd.service\fR(5)
+\fBsystemd.service\fR(5),
+\fBfile-hierarchy\fR(7)
.SH "NOTES"
.IP " 1." 4
LSB recommendations for SysV init scripts
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>daemon — Writing and packaging system daemons</p></div><div class="refsect1"><a name="idm214176733072"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A daemon is a service process that runs in the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>daemon — Writing and packaging system daemons</p></div><div class="refsect1"><a name="idm214179512176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A daemon is a service process that runs in the
background and supervises the system or provides
functionality to other processes. Traditionally,
daemons are implemented following a scheme originating
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>. This
manual page covers both schemes, and in
particular includes recommendations for daemons that
- shall be included in the systemd init system.</p><div class="refsect2"><a name="idm214172947136"></a><h3 id="SysV Daemons">SysV Daemons<a class="headerlink" title="Permalink to this headline" href="#SysV%20Daemons">¶</a></h3><p>When a traditional SysV daemon
+ shall be included in the systemd init system.</p><div class="refsect2"><a name="idm214177063248"></a><h3 id="SysV Daemons">SysV Daemons<a class="headerlink" title="Permalink to this headline" href="#SysV%20Daemons">¶</a></h3><p>When a traditional SysV daemon
starts, it should execute the following steps
as part of the initialization. Note that these
steps are unnecessary for new-style daemons (see below),
behavior optional and configurable via a
command line argument to ease debugging as
well as to simplify integration into systems
- using systemd.</p></div><div class="refsect2"><a name="idm214176819824"></a><h3 id="New-Style Daemons">New-Style Daemons<a class="headerlink" title="Permalink to this headline" href="#New-Style%20Daemons">¶</a></h3><p>Modern services for Linux should be
+ using systemd.</p></div><div class="refsect2"><a name="idm214175728384"></a><h3 id="New-Style Daemons">New-Style Daemons<a class="headerlink" title="Permalink to this headline" href="#New-Style%20Daemons">¶</a></h3><p>Modern services for Linux should be
implemented as new-style daemons. This makes it
easier to supervise and control them at
runtime and simplifies their
via the
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>
interface.</p></li><li class="listitem"><p>Instead of using the
- <code class="function">syslog()</code> call to log directly to the
- system syslog service, a new-style daemon may
- choose to simply log to standard error via
- <code class="function">fprintf()</code>, which is then forwarded to
- syslog by the init system. If log
- priorities are necessary, these can be
- encoded by prefixing individual log
- lines with strings like "<4>"
- (for log priority 4 "WARNING" in the
- syslog priority scheme), following a
- similar style as the Linux kernel's
- <code class="function">printk()</code> priority system. In fact,
- using this style of logging also
- enables the init system to optionally
- direct all application logging to the
- kernel log buffer (kmsg), as
- accessible via
- <a href="dmesg.html"><span class="citerefentry"><span class="refentrytitle">dmesg</span>(1)</span></a>. This
- kind of logging may be enabled by
- setting
- <code class="varname">StandardError=syslog</code>
- in the service unit file. For details,
- see
+ <code class="function">syslog()</code> call to
+ log directly to the system syslog
+ service, a new-style daemon may choose
+ to simply log to standard error via
+ <code class="function">fprintf()</code>, which
+ is then forwarded to syslog by the
+ init system. If log priorities are
+ necessary, these can be encoded by
+ prefixing individual log lines with
+ strings like "<4>" (for log
+ priority 4 "WARNING" in the syslog
+ priority scheme), following a similar
+ style as the Linux kernel's
+ <code class="function">printk()</code> priority
+ system. For details, see
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>
and
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>.</p></li></ol></div><p>These recommendations are similar but
not identical to the <a class="ulink" href="https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html" target="_top">Apple
- MacOS X Daemon Requirements</a>.</p></div></div><div class="refsect1"><a name="idm214171871376"></a><h2 id="Activation">Activation<a class="headerlink" title="Permalink to this headline" href="#Activation">¶</a></h2><p>New-style init systems provide multiple
+ MacOS X Daemon Requirements</a>.</p></div></div><div class="refsect1"><a name="idm214178358368"></a><h2 id="Activation">Activation<a class="headerlink" title="Permalink to this headline" href="#Activation">¶</a></h2><p>New-style init systems provide multiple
additional mechanisms to activate services, as
detailed below. It is common that services are
configured to be activated via more than one mechanism
request is lost because client requests will be queued
by the bus system (in case of D-Bus) or the kernel (in
case of sockets) until the activation is
- completed.</p><div class="refsect2"><a name="idm214171868144"></a><h3 id="Activation on Boot">Activation on Boot<a class="headerlink" title="Permalink to this headline" href="#Activation%20on%20Boot">¶</a></h3><p>Old-style daemons are usually activated
+ completed.</p><div class="refsect2"><a name="idm214177474608"></a><h3 id="Activation on Boot">Activation on Boot<a class="headerlink" title="Permalink to this headline" href="#Activation%20on%20Boot">¶</a></h3><p>Old-style daemons are usually activated
exclusively on boot (and manually by the
administrator) via SysV init scripts, as
detailed in the <a class="ulink" href="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html" target="_top">LSB
for details about the
<code class="filename">.wants/</code> directories, and
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>
- for details about the two boot targets.</p></div><div class="refsect2"><a name="idm214171860432"></a><h3 id="Socket-Based Activation">Socket-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Socket-Based%20Activation">¶</a></h3><p>In order to maximize the possible
+ for details about the two boot targets.</p></div><div class="refsect2"><a name="idm214175963792"></a><h3 id="Socket-Based Activation">Socket-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Socket-Based%20Activation">¶</a></h3><p>In order to maximize the possible
parallelization and robustness and simplify
configuration and development, it is
recommended for all new-style daemons that
example from
<code class="filename">multi-user.target</code> or
suchlike) when one is installed in
- <code class="filename">sockets.target</code>.</p></div><div class="refsect2"><a name="idm214171846960"></a><h3 id="Bus-Based Activation">Bus-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Bus-Based%20Activation">¶</a></h3><p>When the D-Bus IPC system is used for
+ <code class="filename">sockets.target</code>.</p></div><div class="refsect2"><a name="idm214176756752"></a><h3 id="Bus-Based Activation">Bus-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Bus-Based%20Activation">¶</a></h3><p>When the D-Bus IPC system is used for
communication with clients, new-style daemons
should employ bus activation so that they are
automatically activated when a client
<code class="filename">rtkit-daemon.service</code>. This
is needed to make sure that the daemon is
started in a race-free fashion when activated
- via multiple mechanisms simultaneously.</p></div><div class="refsect2"><a name="idm214171842480"></a><h3 id="Device-Based Activation">Device-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Device-Based%20Activation">¶</a></h3><p>Often, daemons that manage a particular
+ via multiple mechanisms simultaneously.</p></div><div class="refsect2"><a name="idm214178044384"></a><h3 id="Device-Based Activation">Device-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Device-Based%20Activation">¶</a></h3><p>Often, daemons that manage a particular
type of hardware should be activated only when
the hardware of the respective kind is plugged
in or otherwise becomes available. In a
<span class="command"><strong>enable</strong></span> of
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>
instead of manipulating the udev
- ruleset.</p></div><div class="refsect2"><a name="idm214176892432"></a><h3 id="Path-Based Activation">Path-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Path-Based%20Activation">¶</a></h3><p>Often, runtime of daemons processing
+ ruleset.</p></div><div class="refsect2"><a name="idm214178026080"></a><h3 id="Path-Based Activation">Path-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Path-Based%20Activation">¶</a></h3><p>Often, runtime of daemons processing
spool files or directories (such as a printing
system) can be delayed until these file system
objects change state, or become
path-based activation configured in
<code class="filename">.path</code> units, as outlined
in
- <a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>.</p></div><div class="refsect2"><a name="idm214171821840"></a><h3 id="Timer-Based Activation">Timer-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Timer-Based%20Activation">¶</a></h3><p>Some daemons that implement clean-up
+ <a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>.</p></div><div class="refsect2"><a name="idm214176776224"></a><h3 id="Timer-Based Activation">Timer-Based Activation<a class="headerlink" title="Permalink to this headline" href="#Timer-Based%20Activation">¶</a></h3><p>Some daemons that implement clean-up
jobs that are intended to be executed in
regular intervals benefit from timer-based
activation. In systemd, this is implemented
via <code class="filename">.timer</code> units, as
described in
- <a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>.</p></div><div class="refsect2"><a name="idm214171818912"></a><h3 id="Other Forms of Activation">Other Forms of Activation<a class="headerlink" title="Permalink to this headline" href="#Other%20Forms%20of%20Activation">¶</a></h3><p>Other forms of activation have been
+ <a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>.</p></div><div class="refsect2"><a name="idm214176252752"></a><h3 id="Other Forms of Activation">Other Forms of Activation<a class="headerlink" title="Permalink to this headline" href="#Other%20Forms%20of%20Activation">¶</a></h3><p>Other forms of activation have been
suggested and implemented in some
systems. However, there are often simpler or
better alternatives, or they can be put
activation to schedule background jobs during
runtime and with minimal impact on the system,
and remove it from the boot phase
- itself.</p></div></div><div class="refsect1"><a name="idm214171812272"></a><h2 id="Integration with Systemd">Integration with Systemd<a class="headerlink" title="Permalink to this headline" href="#Integration%20with%20Systemd">¶</a></h2><div class="refsect2"><a name="idm214171811632"></a><h3 id="Writing Systemd Unit Files">Writing Systemd Unit Files<a class="headerlink" title="Permalink to this headline" href="#Writing%20Systemd%20Unit%20Files">¶</a></h3><p>When writing systemd unit files, it is
+ itself.</p></div></div><div class="refsect1"><a name="idm214176372608"></a><h2 id="Integration with Systemd">Integration with Systemd<a class="headerlink" title="Permalink to this headline" href="#Integration%20with%20Systemd">¶</a></h2><div class="refsect2"><a name="idm214178809840"></a><h3 id="Writing Systemd Unit Files">Writing Systemd Unit Files<a class="headerlink" title="Permalink to this headline" href="#Writing%20Systemd%20Unit%20Files">¶</a></h3><p>When writing systemd unit files, it is
recommended to consider the following
suggestions:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If possible, do not use
the <code class="varname">Type=forking</code>
your service file
<code class="filename">foo.service</code>, for
a hypothetical program
- <code class="filename">foo</code>.</p></li></ol></div></div><div class="refsect2"><a name="idm214171796080"></a><h3 id="Installing Systemd Service Files">Installing Systemd Service Files<a class="headerlink" title="Permalink to this headline" href="#Installing%20Systemd%20Service%20Files">¶</a></h3><p>At the build installation time
+ <code class="filename">foo</code>.</p></li></ol></div></div><div class="refsect2"><a name="idm214177358624"></a><h3 id="Installing Systemd Service Files">Installing Systemd Service Files<a class="headerlink" title="Permalink to this headline" href="#Installing%20Systemd%20Service%20Files">¶</a></h3><p>At the build installation time
(e.g. <span class="command"><strong>make install</strong></span> during
package build), packages are recommended to
install their systemd unit files in the
specific to Fedora which can be used to check
whether a SysV init script is enabled. Other
operating systems will have to use different
- commands here.</p></div></div><div class="refsect1"><a name="idm214171768368"></a><h2 id="Porting Existing Daemons">Porting Existing Daemons<a class="headerlink" title="Permalink to this headline" href="#Porting%20Existing%20Daemons">¶</a></h2><p>Since new-style init systems such as systemd are
+ commands here.</p></div></div><div class="refsect1"><a name="idm214178311488"></a><h2 id="Porting Existing Daemons">Porting Existing Daemons<a class="headerlink" title="Permalink to this headline" href="#Porting%20Existing%20Daemons">¶</a></h2><p>Since new-style init systems such as systemd are
compatible with traditional SysV init systems, it is
not strictly necessary to port existing daemons to the
new style. However, doing so offers additional
details.</p></li><li class="listitem"><p>If the daemon exposes
interfaces via D-Bus, write and install a
D-Bus activation file for the service, see
- above for details.</p></li></ol></div></div><div class="refsect1"><a name="idm214171757872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ above for details.</p></li></ol></div></div><div class="refsect1"><a name="idm214180581568"></a><h2 id="Placing Daemon Data">Placing Daemon Data<a class="headerlink" title="Permalink to this headline" href="#Placing%20Daemon%20Data">¶</a></h2><p>It is recommended to follow the general
+ guidelines for placing package files, as discussed in
+ <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214180579440"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
<a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(3)</span></a>,
- <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>
+ <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
+ <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>
</p></div></div></body></html>
interface.</para></listitem>
<listitem><para>Instead of using the
- <function>syslog()</function> call to log directly to the
- system syslog service, a new-style daemon may
- choose to simply log to standard error via
- <function>fprintf()</function>, which is then forwarded to
- syslog by the init system. If log
- priorities are necessary, these can be
- encoded by prefixing individual log
- lines with strings like "<4>"
- (for log priority 4 "WARNING" in the
- syslog priority scheme), following a
- similar style as the Linux kernel's
- <function>printk()</function> priority system. In fact,
- using this style of logging also
- enables the init system to optionally
- direct all application logging to the
- kernel log buffer (kmsg), as
- accessible via
- <citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>1</manvolnum></citerefentry>. This
- kind of logging may be enabled by
- setting
- <varname>StandardError=syslog</varname>
- in the service unit file. For details,
- see
+ <function>syslog()</function> call to
+ log directly to the system syslog
+ service, a new-style daemon may choose
+ to simply log to standard error via
+ <function>fprintf()</function>, which
+ is then forwarded to syslog by the
+ init system. If log priorities are
+ necessary, these can be encoded by
+ prefixing individual log lines with
+ strings like "<4>" (for log
+ priority 4 "WARNING" in the syslog
+ priority scheme), following a similar
+ style as the Linux kernel's
+ <function>printk()</function> priority
+ system. For details, see
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
</orderedlist>
</refsect1>
+ <refsect1>
+ <title>Placing Daemon Data</title>
+
+ <para>It is recommended to follow the general
+ guidelines for placing package files, as discussed in
+ <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
+ </refsect1>
+
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
--- /dev/null
+'\" t
+.TH "FILE\-HIERARCHY" "7" "" "systemd 215" "file-hierarchy"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+file-hierarchy \- File system hierarchy overview
+.SH "DESCRIPTION"
+.PP
+Operating systems using the
+\fBsystemd\fR(1)
+system and service manager are organized based on a file system hierarchy inspired by UNIX, more specifically the hierarchy described in the
+\m[blue]\fBFile System Hierarchy\fR\m[]\&\s-2\u[1]\d\s+2
+specification and
+\fBhier\fR(7)\&. This manual page describes a more minimal, modernized subset of these specifications that defines more strictly the suggestions and restrictions systemd makes on the file system hierarchy\&.
+.PP
+Many of the paths described here are queriable with the
+\fBsystemd-path\fR(1)
+tool\&.
+.SH "GENERAL STRUCTURE"
+.PP
+/
+.RS 4
+The file system root\&. Usually writable, but this is not required\&. Possibly a temporary file system ("tmpfs")\&. Not shared with other hosts (unless read\-only)\&.
+.RE
+.PP
+/boot
+.RS 4
+The boot partition used for bringing up the system\&. On EFI systems this is possibly the EFI System Partition, also see
+\fBsystemd-efi-boot-generator\fR(8)\&. This directory is usually strictly local to the host, and should be considered read\-only, except when a new kernel or boot loader is installed\&. This directory only exists on systems that run on physical or emulated hardware that requires boot loaders\&.
+.RE
+.PP
+/etc
+.RS 4
+System\-specific configuration\&. This directory may or may not be read\-only\&. Frequently, this directory is pre\-populated with vendor\-supplied configuration files, but applications should not make assumptions about this directory being fully populated or populated at all, and should fall back to defaults if configuration is missing\&.
+.RE
+.PP
+/home
+.RS 4
+The location for normal user\*(Aqs home directories\&. Possibly shared with other systems, and never read\-only\&. This directory should only be used for normal users, never for system users\&. This directory and possibly the directories contained within it might only become available or writable in late boot or even only after user authentication\&. This directory might be placed on limited\-functionality network file systems, hence applications should not assume the full set of file API is available on this directory\&. Applications should generally not reference this directory directly, but via the per\-user
+\fI$HOME\fR
+environment variable, or via the home directory field of the user database\&.
+.RE
+.PP
+/root
+.RS 4
+The home directory of the root user\&. The root user\*(Aqs home directory is located outside of
+/home
+in order to make sure the root user may log in even without
+/home
+being available and mounted\&.
+.RE
+.PP
+/srv
+.RS 4
+The place to store general server payload, managed by the administrator\&. No restrictions are made how this directory is organized internally\&. Generally writable, and possibly shared among systems\&. This directory might become available or writable only very late during boot\&.
+.RE
+.PP
+/tmp
+.RS 4
+The place for small temporary files\&. This directory is usually mounted as a
+"tmpfs"
+instance, and should hence not be used for larger files\&. (Use
+/var/tmp
+for larger files\&.) Since the directory is accessible to other users of the system it is essential that this directory is only written to with the
+\fBmkstemp\fR(3),
+\fBmkdtemp\fR(3)
+and related calls\&. This directory is usually flushed at boot\-up\&. Also, files that are not accessed within a certain time are usually automatically deleted\&. If applications find the environment variable
+\fI$TMPDIR\fR
+set they should prefer using the directory specified in it over directly referencing
+/tmp
+(see
+\fBenviron\fR(7)
+for details)\&.
+.RE
+.SH "RUNTIME DATA"
+.PP
+/run
+.RS 4
+A
+"tmpfs"
+file system for system packages to place runtime data in\&. This directory is flushed on boot, and generally writable for privileged programs only\&. Always writable\&.
+.RE
+.PP
+/run/log
+.RS 4
+Runtime system logs\&. System components may place private logs in this directory\&. Always writable, even when
+/var/log
+might not be accessible yet\&.
+.RE
+.PP
+/run/user
+.RS 4
+Contains per\-user runtime directories, each usually individually mounted
+"tmpfs"
+instances\&. Always writable, flushed at each reboot and when the user logs out\&. User code should not reference this directory directly, but via the
+\fI$XDG_RUNTIME_DIR\fR
+environment variable, as documented in the
+\m[blue]\fBXDG Base Directory Specification\fR\m[]\&\s-2\u[2]\d\s+2\&.
+.RE
+.SH "VENDOR-SUPPLIED OPERATING SYSTEM RESOURCES"
+.PP
+/usr
+.RS 4
+Vendor\-supplied operating system resources\&. Usually read\-only, but this is not required\&. Possibly shared between multiple hosts\&. This directory should not be modified by the administrator, except when installing or removing vendor\-supplied packages\&.
+.RE
+.PP
+/usr/bin
+.RS 4
+Binaries and executables for user commands, that shall appear in the
+\fI$PATH\fR
+search path\&. It is recommended not to place binaries in this directory that are not useful for invocation from a shell (such as daemon binaries); these should be placed in a subdirectory of
+/usr/lib
+instead\&.
+.RE
+.PP
+/usr/include
+.RS 4
+C and C++ API header files of system libraries\&.
+.RE
+.PP
+/usr/lib
+.RS 4
+Static, private vendor data that is compatible with all architectures (though not necessarily architecture\-independent)\&. Note that this includes internal executables or other binaries that are not regularly invoked from a shell\&. Such binaries may be for any architecture supported by the system\&. Do not place public libraries in this directory, use
+\fI$libdir\fR
+(see below), instead\&.
+.RE
+.PP
+/usr/lib/\fIarch\-id\fR
+.RS 4
+Location for placing dynamic libraries, also called
+\fI$libdir\fR\&. The architecture identifier to use is defined on
+\m[blue]\fBMultiarch Architecture Specifiers (Tuples)\fR\m[]\&\s-2\u[3]\d\s+2
+list\&. Legacy locations of
+\fI$libdir\fR
+are
+/usr/lib,
+/usr/lib64\&. This directory should not be used for package\-specific data, unless this data is architecture\-dependent, too\&. To query
+\fI$libdir\fR
+for the primary architecture of the system, invoke:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# pkg\-config \-\-variable=libdir systemd
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+or
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# systemd\-path system\-library\-arch
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.RE
+.PP
+/usr/share
+.RS 4
+Resources shared between multiple packages, such as documentation, man pages, time zone information, fonts and other resources\&. Usually, the precise location and format of files stored below this directory is subject to specifications that ensure interoperability\&.
+.RE
+.PP
+/usr/share/doc
+.RS 4
+Documentation for the operating system or system packages\&.
+.RE
+.PP
+/usr/share/factory/etc
+.RS 4
+Repository for vendor\-supplied default configuration files\&. This directory should be populated with pristine vendor versions of all configuration files that may be placed in
+/etc\&. This is useful to compare the local configuration of a system with vendor defaults and to populate the local configuration with defaults\&.
+.RE
+.PP
+/usr/share/factory/var
+.RS 4
+Similar to
+/usr/share/factory/etc
+but for vendor versions of files in the variable, persistent data directory
+/var\&.
+.RE
+.SH "PERSISTENT VARIABLE SYSTEM DATA"
+.PP
+/var
+.RS 4
+Persistent, variable system data\&. Must be writable\&. This directory might be pre\-populated with vendor\-supplied data, but applications should be able to reconstruct necessary files and directories in this subhierarchy should they be missing, as the system might start up without this directory being populated\&. Persistency is recommended, but optional, to support ephemeral systems\&. This directory might become available or writable only very late during boot\&. Components that are required to operate during early boot hence shall not unconditionally rely on this directory\&.
+.RE
+.PP
+/var/cache
+.RS 4
+Persistent system cache data\&. System components may place non\-essential data in this directory\&. Flushing this directory should have no effect on operation of programs, except for increased runtimes necessary to rebuild these caches\&.
+.RE
+.PP
+/var/lib
+.RS 4
+Persistent system data\&. System components may place private data in this directory\&.
+.RE
+.PP
+/var/log
+.RS 4
+Persistent system logs\&. System components may place private logs in this directory, though it is recommended to do most logging via the
+\fBsyslog\fR(3)
+and
+\fBsd_journal_print\fR(3)
+calls\&.
+.RE
+.PP
+/var/spool
+.RS 4
+Persistent system spool data, such as printer or mail queues\&.
+.RE
+.PP
+/var/tmp
+.RS 4
+The place for larger and persistent temporary files\&. In contrast to
+/tmp
+this directory is usually mounted from a persistent physical file system and can thus accept larger files\&. (Use
+/tmp
+for smaller files\&.) This directory is generally not flushed at boot\-up, but time\-based cleanup of files that have not been accessed for a certain time is applied\&. The same security restrictions as with
+/tmp
+apply, and hence only
+\fBmkstemp\fR(3),
+\fBmkdtemp\fR(3)
+or similar calls should be used to make use of this directory\&. If applications find the environment variable
+\fI$TMPDIR\fR
+set they should prefer using the directory specified in it over directly referencing
+/var/tmp
+(see
+\fBenviron\fR(7)
+for details)\&.
+.RE
+.SH "VIRTUAL KERNEL AND API FILE SYSTEMS"
+.PP
+/dev
+.RS 4
+The root directory for device nodes\&. Usually this directory is mounted as a
+"devtmpfs"
+instance, but might be of a different type in sandboxed/containerized setups\&. This directory is managed jointly by the kernel and
+\fBsystemd-udevd\fR(8), and should not be written to by other components\&. A number of special purpose virtual file systems might be mounted below this directory\&.
+.RE
+.PP
+/dev/shm
+.RS 4
+Place for POSIX shared memory segments, as created via
+\fBshm_open\fR(3)\&. This directory is flushed on boot, and is a
+"tmpfs"
+file system\&. Since all users have write access to this directory, special care should be taken to avoid name clashes and vulnerabilities\&. For normal users, shared memory segments in this directory are usually deleted when the user logs out\&. Usually it is a better idea to use memory mapped files in
+/run
+(for system programs) or
+\fI$XDG_RUNTIME_DIR\fR
+(for user programs) instead of POSIX shared memory segments, since those directories are not world\-writable and hence not vulnerable to security\-sensitive name clashes\&.
+.RE
+.PP
+/proc
+.RS 4
+A virtual kernel file system exposing the process list and other functionality\&. This file system is mostly an API to interface with the kernel and not a place where normal files may be stored\&. For details, see
+\fBproc\fR(5)\&. A number of special purpose virtual file systems might be mounted below this directory\&.
+.RE
+.PP
+/proc/sys
+.RS 4
+A hierarchy below
+/proc
+that exposes a number of kernel tunables\&. The primary way to configure the settings in this API file tree is via
+\fBsysctl.d\fR(5)
+files\&. In sandboxed/containerized setups this directory is generally mounted read\-only\&.
+.RE
+.PP
+/sys
+.RS 4
+A virtual kernel file system exposing discovered devices and other functionality\&. This file system is mostly an API to interface with the kernel and not a place where normal files may be stored\&. In sandboxed/containerized setups this directory is generally mounted read\-only\&. A number of special purpose virtual file systems might be mounted below this directory\&.
+.RE
+.SH "COMPATIBILITY SYMLINKS"
+.PP
+/bin, /sbin, /usr/sbin
+.RS 4
+These compatibility symlinks point to
+/usr/bin, ensuring that scripts and binaries referencing these legacy paths correctly find their binaries\&.
+.RE
+.PP
+/lib
+.RS 4
+This compatibility symlink points to
+/usr/lib, ensuring that programs referencing this legacy path correctly find their resources\&.
+.RE
+.PP
+/lib64
+.RS 4
+On some architecture ABIs this compatibility symlink points to
+\fI$libdir\fR, ensuring that binaries referencing this legacy path correctly find their dynamic loader\&. This symlink only exists on architectures whose ABI places the dynamic loader in this path\&.
+.RE
+.PP
+/var/run
+.RS 4
+This compatibility symlink points to
+/run, ensuring that programs referencing this legacy path correctly find their runtime data\&.
+.RE
+.SH "HOME DIRECTORY"
+.PP
+User applications may want to place files and directories in the user\*(Aqs home directory\&. They should follow the following basic structure\&. Note that some of these directories are also standardized (though more weakly) by the
+\m[blue]\fBXDG Base Directory Specification\fR\m[]\&\s-2\u[2]\d\s+2\&. Additional locations for high\-level user resources are defined by
+\m[blue]\fBxdg\-user\-dirs\fR\m[]\&\s-2\u[4]\d\s+2\&.
+.PP
+~/\&.cache
+.RS 4
+Persistent user cache data\&. User programs may place non\-essential data in this directory\&. Flushing this directory should have no effect on operation of programs, except for increased runtimes necessary to rebuild these caches\&. If an application finds
+\fI$XDG_CACHE_HOME\fR
+set is should use the directory specified in it instead of this directory\&.
+.RE
+.PP
+~/\&.config
+.RS 4
+Application configuration and state\&. When a new user is created this directory will be empty or not exist at all\&. Applications should fall back to defaults should their configuration or state in this directory be missing\&. If an application finds
+\fI$XDG_CONFIG_HOME\fR
+set is should use the directory specified in it instead of this directory\&.
+.RE
+.PP
+~/\&.local/bin
+.RS 4
+Executables that shall appear in the user\*(Aqs
+\fI$PATH\fR
+search path\&. It is recommended not to place executables in this directory that are not useful for invocation from a shell; these should be placed in a subdirectory of
+~/\&.local/lib
+instead\&. Care should be taken when placing architecture\-dependent binaries in this place which might be problematic if the home directory is shared between multiple hosts with different architectures\&.
+.RE
+.PP
+~/\&.local/lib
+.RS 4
+Static, private vendor data that is compatible with all architectures\&.
+.RE
+.PP
+~/\&.local/lib/\fIarch\-id\fR
+.RS 4
+Location for placing public dynamic libraries\&. The architecture identifier to use, is defined on
+\m[blue]\fBMultiarch Architecture Specifiers (Tuples)\fR\m[]\&\s-2\u[3]\d\s+2
+list\&.
+.RE
+.PP
+~/\&.local/share
+.RS 4
+Resources shared between multiple packages, such as fonts or artwork\&. Usually, the precise location and format of files stored below this directory is subject to specifications that ensure interoperability\&. If an application finds
+\fI$XDG_DATA_HOME\fR
+set is should use the directory specified in it instead of this directory\&.
+.RE
+.SH "UNPRIVILEGED WRITE ACCESS"
+.PP
+Unprivileged processes generally lack write access to most of the hierarchy\&.
+.PP
+The exceptions for normal users are
+/tmp,
+/var/tmp,
+/dev/shm, as well as the home directory
+\fI$HOME\fR
+(usually found below
+/home) and the runtime directory
+\fI$XDG_RUNTIME_DIR\fR
+(found below
+/run/user) of the user, which are all writable\&.
+.PP
+For unprivileged system processes only
+/tmp,
+/var/tmp
+and
+/dev/shm
+are writable\&. If an unprivileged system process needs a private, writable directory in
+/var
+or
+/run, it is recommended to either create it before dropping privileges in the daemon code, to create it via
+\fBtmpfiles.d\fR(5)
+fragments during boot, or via the
+\fIRuntimeDirectory=\fR
+directive of service units (see
+\fBsystemd.unit\fR(5)
+for details)\&.
+.SH "NODE TYPES"
+.PP
+Unix file systems support different types of file nodes, including regular files, directories, symlinks, character and block device nodes, sockets and FIFOs\&.
+.PP
+It is strongly recommended that
+/dev
+is the only location below which device nodes shall be placed\&. Similar,
+/run
+shall be the only location to place sockets and FIFOs\&. Regular files, directories and symlinks may be used in all directories\&.
+.SH "SYSTEM PACKAGES"
+.PP
+Developers of system packages should follow strict rules when placing their own files in the file system\&. The following table lists recommended locations for specific types of files supplied by the vendor\&.
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.B Table\ \&1.\ \&System Package Vendor Files Locations
+.TS
+allbox tab(:);
+lB lB.
+T{
+Directory
+T}:T{
+Purpose
+T}
+.T&
+l l
+l l
+l l
+l l
+l l.
+T{
+/usr/bin
+T}:T{
+Package executables that shall appear in the \fI$PATH\fR executable search path, compiled for any of the supported architectures compatible with the operating system\&. It is not recommended to place internal binaries or binaries that are not commonly invoked from the shell in this directory, such as daemon binaries\&. As this directory is shared with most other packages of the system special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package\*(Aqs files\&.
+T}
+T{
+/usr/lib/\fIarch\-id\fR
+T}:T{
+Public shared libraries of the package\&. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes\&.
+T}
+T{
+/usr/lib/\fIpackage\fR
+T}:T{
+Private, static vendor resources of the package, including private binaries and libraries, or any other kind of read\-only vendor data\&.
+T}
+T{
+/usr/lib/\fIarch\-id\fR/\fIpackage\fR
+T}:T{
+Private other vendor resources of the package that are architecture\-specific and cannot be shared between architectures\&. Note that this generally does not include private executables since binaries of a specific architecture may be freely invoked from any other supported system architecture\&.
+T}
+T{
+/usr/include/\fIpackage\fR
+T}:T{
+Public C/C++ APIs of public shared libraries of the package\&.
+T}
+.TE
+.sp 1
+.PP
+Additional static vendor files may be installed in the
+/usr/share
+hierarchy, to the locations defined by the various relevant specifications\&.
+.PP
+During runtime and for local configuration and state additional directories are defined:
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.B Table\ \&2.\ \&System Package Variable Files Locations
+.TS
+allbox tab(:);
+lB lB.
+T{
+Directory
+T}:T{
+Purpose
+T}
+.T&
+l l
+l l
+l l
+l l
+l l
+l l
+l l.
+T{
+/etc/\fIpackage\fR
+T}:T{
+System\-specific configuration for the package\&. It is recommended to default to safe fallbacks if this configuration is missing, if this is possible\&. Alternatively, a \fBtmpfiles.d\fR(5) fragment may be used to copy or symlink the necessary files and directories from /usr/share/factory during boot, via the "L" or "C" directives\&.
+T}
+T{
+/run/\fIpackage\fR
+T}:T{
+Runtime data for the package\&. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot\&. Alternatively, a \fBtmpfiles.d\fR(5) fragment may be used to create the necessary directories during boot\&. Alternatively, the \fIRuntimeDirectory=\fR directive of service units may be used (see \fBsystemd.unit\fR(5) for details\&.)
+T}
+T{
+/run/log/\fIpackage\fR
+T}:T{
+Runtime log data for the package\&. As above, the package needs to make sure to create this directory if necessary, as it will be flushed on every boot\&.
+T}
+T{
+/var/cache/\fIpackage\fR
+T}:T{
+Persistent cache data of the package\&. If this directory is flushed the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files\&. The application must be capable of recreating this directory should it be missing and necessary\&.
+T}
+T{
+/var/lib/\fIpackage\fR
+T}:T{
+Persistent private data of the package\&. This is the primary place to put persistent data that does not fall into the other categories listed\&. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot\&. Alternatively, a \fBtmpfiles.d\fR(5) fragment may be used to create the necessary directories during boot\&.
+T}
+T{
+/var/log/\fIpackage\fR
+T}:T{
+Persistent log data of the package\&. As above, the package should make sure to create this directory if necessary, as it might be missing\&.
+T}
+T{
+/var/spool/\fIpackage\fR
+T}:T{
+Persistent spool/queue data of the package\&. As above, the package should make sure to create this directory if necessary, as it might be missing\&.
+T}
+.TE
+.sp 1
+.SH "USER PACKAGES"
+.PP
+Programs running in user context should follow strict rules when placing their own files in the user\*(Aqs home directory\&. The following table lists recommended locations in the home directory for specific types of files supplied by the vendor if the application is installed in the home directory\&. (Note however, that user applications installed system\-wide should follow the rules outlined above regarding placing vendor files\&.)
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.B Table\ \&3.\ \&User Package Vendor File Locations
+.TS
+allbox tab(:);
+lB lB.
+T{
+Directory
+T}:T{
+Purpose
+T}
+.T&
+l l
+l l
+l l
+l l.
+T{
+~/\&.local/bin
+T}:T{
+Package executables that shall appear in the \fI$PATH\fR executable search path\&. It is not recommended to place internal executables or executables that are not commonly invoked from the shell in this directory, such as daemon executables\&. As this directory is shared with most other packages of the user special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package\*(Aqs files\&.
+T}
+T{
+~/\&.local/lib/\fIarch\-id\fR
+T}:T{
+Public shared libraries of the package\&. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes\&.
+T}
+T{
+~/\&.local/lib/\fIpackage\fR
+T}:T{
+Private, static vendor resources of the package, compatible wih any architecture, or any other kind of read\-only vendor data\&.
+T}
+T{
+~/\&.local/lib/\fIarch\-id\fR/\fIpackage\fR
+T}:T{
+Private other vendor resources of the package that are architecture\-specific and cannot be shared between architectures\&.
+T}
+.TE
+.sp 1
+.PP
+Additional static vendor files may be installed in the
+~/\&.local/share
+hierarchy, to the locations defined by the various relevant specifications\&.
+.PP
+During runtime and for local configuration and state additional directories are defined:
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.B Table\ \&4.\ \&User Package Variable File Locations
+.TS
+allbox tab(:);
+lB lB.
+T{
+Directory
+T}:T{
+Purpose
+T}
+.T&
+l l
+l l
+l l.
+T{
+~/\&.config/\fIpackage\fR
+T}:T{
+User\-specific configuration and state for the package\&. It is required to default to safe fallbacks if this configuration is missing\&.
+T}
+T{
+\fI$XDG_RUNTIME_DIR\fR/\fIpackage\fR
+T}:T{
+User runtime data for the package\&.
+T}
+T{
+~/\&.cache/\fIpackage\fR
+T}:T{
+Persistent cache data of the package\&. If this directory is flushed the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files\&. The application must be capable of recreating this directory should it be missing and necessary\&.
+T}
+.TE
+.sp 1
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBhier\fR(7),
+\fBsystemd-path\fR(1),
+\fBsystemd-efi-boot-generator\fR(8),
+\fBsysctl.d\fR(5),
+\fBtmpfiles.d\fR(5),
+\fBpkg-config\fR(1),
+\fBsystemd.unit\fR(5)
+.SH "NOTES"
+.IP " 1." 4
+File System Hierarchy
+.RS 4
+\%http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html
+.RE
+.IP " 2." 4
+XDG Base Directory Specification
+.RS 4
+\%http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
+.RE
+.IP " 3." 4
+Multiarch Architecture Specifiers (Tuples)
+.RS 4
+\%https://wiki.debian.org/Multiarch/Tuples
+.RE
+.IP " 4." 4
+xdg-user-dirs
+.RS 4
+\%http://www.freedesktop.org/wiki/Software/xdg-user-dirs/
+.RE
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>file-hierarchy</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="file-hierarchy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>file-hierarchy — File system hierarchy overview</p></div><div class="refsect1"><a name="idm214174576496"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Operating systems using the
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
+ system and service manager are organized based on a
+ file system hierarchy inspired by UNIX, more
+ specifically the hierarchy described in the <a class="ulink" href="http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html" target="_top">File
+ System Hierarchy</a> specification and
+ <a href="hier.html"><span class="citerefentry"><span class="refentrytitle">hier</span>(7)</span></a>. This
+ manual page describes a more minimal, modernized
+ subset of these specifications that defines more
+ strictly the suggestions and restrictions systemd
+ makes on the file system hierarchy.</p><p>Many of the paths described here are queriable
+ with the
+ <a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a>
+ tool.</p></div><div class="refsect1"><a name="idm214173152608"></a><h2 id="General Structure">General Structure<a class="headerlink" title="Permalink to this headline" href="#General%20Structure">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/"><span class="term"><code class="filename">/</code></span><a class="headerlink" title="Permalink to this term" href="#/">¶</a></dt><dd><p>The file system
+ root. Usually writable, but this is
+ not required. Possibly a temporary
+ file system ("<code class="literal">tmpfs</code>"). Not shared with
+ other hosts (unless read-only).
+ </p></dd><dt id="/boot"><span class="term"><code class="filename">/boot</code></span><a class="headerlink" title="Permalink to this term" href="#/boot">¶</a></dt><dd><p>The boot partition
+ used for bringing up the system. On
+ EFI systems this is possibly the EFI
+ System Partition, also see
+ <a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a>. This
+ directory is usually strictly local
+ to the host, and should be considered
+ read-only, except when a new kernel or
+ boot loader is installed. This
+ directory only exists on systems that
+ run on physical or emulated hardware
+ that requires boot
+ loaders.</p></dd><dt id="/etc"><span class="term"><code class="filename">/etc</code></span><a class="headerlink" title="Permalink to this term" href="#/etc">¶</a></dt><dd><p>System-specific
+ configuration. This directory may or
+ may not be read-only. Frequently, this
+ directory is pre-populated with
+ vendor-supplied configuration files,
+ but applications should not make
+ assumptions about this directory
+ being fully populated or populated at
+ all, and should fall back to defaults
+ if configuration is missing.</p></dd><dt id="/home"><span class="term"><code class="filename">/home</code></span><a class="headerlink" title="Permalink to this term" href="#/home">¶</a></dt><dd><p>The location for
+ normal user's home
+ directories. Possibly shared with
+ other systems, and never
+ read-only. This directory should only
+ be used for normal users, never for
+ system users. This directory and
+ possibly the directories contained
+ within it might only become available
+ or writable in late boot or even only
+ after user authentication. This directory
+ might be placed on limited-functionality
+ network file systems, hence
+ applications should not assume the
+ full set of file API is available on
+ this directory. Applications should
+ generally not reference this directory
+ directly, but via the per-user
+ <code class="varname">$HOME</code> environment
+ variable, or via the home directory
+ field of the user
+ database.</p></dd><dt id="/root"><span class="term"><code class="filename">/root</code></span><a class="headerlink" title="Permalink to this term" href="#/root">¶</a></dt><dd><p>The home directory of
+ the root user. The root user's home
+ directory is located outside of
+ <code class="filename">/home</code> in order to
+ make sure the root user may log in
+ even without <code class="filename">/home</code>
+ being available and
+ mounted.</p></dd><dt id="/srv"><span class="term"><code class="filename">/srv</code></span><a class="headerlink" title="Permalink to this term" href="#/srv">¶</a></dt><dd><p>The place to store
+ general server payload, managed by the
+ administrator. No restrictions are
+ made how this directory is organized
+ internally. Generally writable, and
+ possibly shared among systems. This
+ directory might become available or
+ writable only very late during
+ boot.</p></dd><dt id="/tmp"><span class="term"><code class="filename">/tmp</code></span><a class="headerlink" title="Permalink to this term" href="#/tmp">¶</a></dt><dd><p>The place for small
+ temporary files. This directory is
+ usually mounted as
+ a "<code class="literal">tmpfs</code>" instance, and
+ should hence not be used for larger
+ files. (Use
+ <code class="filename">/var/tmp</code> for
+ larger files.) Since the directory is
+ accessible to other users of the
+ system it is essential that this
+ directory is only written to with the
+ <a href="mkstemp.html"><span class="citerefentry"><span class="refentrytitle">mkstemp</span>(3)</span></a>,
+ <a href="mkdtemp.html"><span class="citerefentry"><span class="refentrytitle">mkdtemp</span>(3)</span></a>
+ and related calls. This directory is
+ usually flushed at boot-up. Also,
+ files that are not accessed within a
+ certain time are usually automatically
+ deleted. If applications find the
+ environment variable
+ <code class="varname">$TMPDIR</code> set they
+ should prefer using the directory
+ specified in it over directly
+ referencing
+ <code class="filename">/tmp</code> (see <a href="environ.html"><span class="citerefentry"><span class="refentrytitle">environ</span>(7)</span></a> for details).</p></dd></dl></div></div><div class="refsect1"><a name="idm214170719280"></a><h2 id="Runtime Data">Runtime Data<a class="headerlink" title="Permalink to this headline" href="#Runtime%20Data">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/run"><span class="term"><code class="filename">/run</code></span><a class="headerlink" title="Permalink to this term" href="#/run">¶</a></dt><dd><p>A
+ "<code class="literal">tmpfs</code>" file system
+ for system packages to place runtime
+ data in. This directory is flushed on
+ boot, and generally writable for
+ privileged programs
+ only. Always writable.</p></dd><dt id="/run/log"><span class="term"><code class="filename">/run/log</code></span><a class="headerlink" title="Permalink to this term" href="#/run/log">¶</a></dt><dd><p>Runtime system
+ logs. System components may place
+ private logs in this directory. Always
+ writable, even when
+ <code class="filename">/var/log</code> might
+ not be accessible
+ yet.</p></dd><dt id="/run/user"><span class="term"><code class="filename">/run/user</code></span><a class="headerlink" title="Permalink to this term" href="#/run/user">¶</a></dt><dd><p>Contains per-user
+ runtime directories, each usually
+ individually mounted
+ "<code class="literal">tmpfs</code>"
+ instances. Always writable, flushed at
+ each reboot and when the user logs
+ out. User code should not reference
+ this directory directly, but via the
+ <code class="varname">$XDG_RUNTIME_DIR</code>
+ environment variable, as documented in
+ the <a class="ulink" href="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html" target="_top">XDG
+ Base Directory
+ Specification</a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174010496"></a><h2 id="Vendor-supplied Operating System Resources">Vendor-supplied Operating System Resources<a class="headerlink" title="Permalink to this headline" href="#Vendor-supplied%20Operating%20System%20Resources">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/usr"><span class="term"><code class="filename">/usr</code></span><a class="headerlink" title="Permalink to this term" href="#/usr">¶</a></dt><dd><p>Vendor-supplied
+ operating system resources. Usually
+ read-only, but this is not
+ required. Possibly shared between
+ multiple hosts. This directory should
+ not be modified by the administrator,
+ except when installing or removing
+ vendor-supplied
+ packages.</p></dd><dt id="/usr/bin"><span class="term"><code class="filename">/usr/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin">¶</a></dt><dd><p>Binaries and
+ executables for user commands, that
+ shall appear in the
+ <code class="varname">$PATH</code> search
+ path. It is recommended not to place
+ binaries in this directory that are
+ not useful for invocation from a shell
+ (such as daemon binaries); these
+ should be placed in a subdirectory of
+ <code class="filename">/usr/lib</code>
+ instead.</p></dd><dt id="/usr/include"><span class="term"><code class="filename">/usr/include</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/include">¶</a></dt><dd><p>C and C++ API header
+ files of system
+ libraries.</p></dd><dt id="/usr/lib"><span class="term"><code class="filename">/usr/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib">¶</a></dt><dd><p>Static, private vendor
+ data that is compatible with all
+ architectures (though not necessarily
+ architecture-independent). Note that
+ this includes internal executables or
+ other binaries that are not regularly
+ invoked from a shell. Such binaries
+ may be for any architecture supported
+ by the system. Do not place public
+ libraries in this directory, use
+ <code class="varname">$libdir</code> (see
+ below), instead.</p></dd><dt id="/usr/lib/arch-id"><span class="term"><code class="filename">/usr/lib/<em class="replaceable"><code>arch-id</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/arch-id">¶</a></dt><dd><p>Location for placing
+ dynamic libraries, also called <code class="varname">$libdir</code>.
+ The architecture identifier to use is defined on <a class="ulink" href="https://wiki.debian.org/Multiarch/Tuples" target="_top">Multiarch Architecture Specifiers (Tuples)</a>
+ list. Legacy locations of <code class="varname">$libdir</code> are
+ <code class="filename">/usr/lib</code>,
+ <code class="filename">/usr/lib64</code>.
+ This directory should not
+ be used for package-specific data,
+ unless this data is
+ architecture-dependent, too. To query
+ <code class="varname">$libdir</code> for the
+ primary architecture of the system,
+ invoke:
+ </p><pre class="programlisting"># pkg-config --variable=libdir systemd</pre><p> or
+ </p><pre class="programlisting"># systemd-path system-library-arch</pre><p>
+ </p></dd><dt id="/usr/share"><span class="term"><code class="filename">/usr/share</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share">¶</a></dt><dd><p>Resources shared
+ between multiple packages, such as
+ documentation, man pages, time zone
+ information, fonts and other
+ resources. Usually, the precise
+ location and format of files stored
+ below this directory is subject to
+ specifications that ensure
+ interoperability.</p></dd><dt id="/usr/share/doc"><span class="term"><code class="filename">/usr/share/doc</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/doc">¶</a></dt><dd><p>Documentation for the
+ operating system or system
+ packages.</p></dd><dt id="/usr/share/factory/etc"><span class="term"><code class="filename">/usr/share/factory/etc</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/factory/etc">¶</a></dt><dd><p>Repository for
+ vendor-supplied default configuration
+ files. This directory should be
+ populated with pristine vendor versions
+ of all configuration files that may be
+ placed in
+ <code class="filename">/etc</code>. This is
+ useful to compare the local
+ configuration of a system with vendor
+ defaults and to populate the local
+ configuration with
+ defaults.</p></dd><dt id="/usr/share/factory/var"><span class="term"><code class="filename">/usr/share/factory/var</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/factory/var">¶</a></dt><dd><p>Similar to
+ <code class="filename">/usr/share/factory/etc</code>
+ but for vendor versions of files in
+ the variable, persistent data
+ directory
+ <code class="filename">/var</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214171094480"></a><h2 id="Persistent Variable System Data">Persistent Variable System Data<a class="headerlink" title="Permalink to this headline" href="#Persistent%20Variable%20System%20Data">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/var"><span class="term"><code class="filename">/var</code></span><a class="headerlink" title="Permalink to this term" href="#/var">¶</a></dt><dd><p>Persistent, variable
+ system data. Must be writable. This
+ directory might be pre-populated with
+ vendor-supplied data, but applications
+ should be able to reconstruct
+ necessary files and directories in
+ this subhierarchy should they be
+ missing, as the system might start up
+ without this directory being
+ populated. Persistency is recommended,
+ but optional, to support ephemeral
+ systems. This directory might become
+ available or writable only very late
+ during boot. Components that are
+ required to operate during early boot
+ hence shall not unconditionally rely
+ on this directory.</p></dd><dt id="/var/cache"><span class="term"><code class="filename">/var/cache</code></span><a class="headerlink" title="Permalink to this term" href="#/var/cache">¶</a></dt><dd><p>Persistent system
+ cache data. System components may
+ place non-essential data in this
+ directory. Flushing this directory
+ should have no effect on operation of
+ programs, except for increased
+ runtimes necessary to rebuild these
+ caches.</p></dd><dt id="/var/lib"><span class="term"><code class="filename">/var/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib">¶</a></dt><dd><p>Persistent system
+ data. System components may
+ place private data in this
+ directory.</p></dd><dt id="/var/log"><span class="term"><code class="filename">/var/log</code></span><a class="headerlink" title="Permalink to this term" href="#/var/log">¶</a></dt><dd><p>Persistent system
+ logs. System components may place
+ private logs in this directory, though
+ it is recommended to do most logging
+ via the
+ <a href="syslog.html"><span class="citerefentry"><span class="refentrytitle">syslog</span>(3)</span></a>
+ and
+ <a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>
+ calls.</p></dd><dt id="/var/spool"><span class="term"><code class="filename">/var/spool</code></span><a class="headerlink" title="Permalink to this term" href="#/var/spool">¶</a></dt><dd><p>Persistent system
+ spool data, such as printer or mail
+ queues.</p></dd><dt id="/var/tmp"><span class="term"><code class="filename">/var/tmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/tmp">¶</a></dt><dd><p>The place for larger
+ and persistent temporary files. In
+ contrast to <code class="filename">/tmp</code>
+ this directory is usually mounted from
+ a persistent physical file system and
+ can thus accept larger files. (Use
+ <code class="filename">/tmp</code> for smaller
+ files.) This directory is generally
+ not flushed at boot-up, but time-based
+ cleanup of files that have not been
+ accessed for a certain time is
+ applied. The same security
+ restrictions as with
+ <code class="filename">/tmp</code> apply, and
+ hence only
+ <a href="mkstemp.html"><span class="citerefentry"><span class="refentrytitle">mkstemp</span>(3)</span></a>,
+ <a href="mkdtemp.html"><span class="citerefentry"><span class="refentrytitle">mkdtemp</span>(3)</span></a>
+ or similar calls should be used to
+ make use of this directory. If
+ applications find the environment
+ variable <code class="varname">$TMPDIR</code>
+ set they should prefer using the
+ directory specified in it over
+ directly referencing
+ <code class="filename">/var/tmp</code> (see <a href="environ.html"><span class="citerefentry"><span class="refentrytitle">environ</span>(7)</span></a> for details).
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214172285296"></a><h2 id="Virtual Kernel and API File Systems">Virtual Kernel and API File Systems<a class="headerlink" title="Permalink to this headline" href="#Virtual%20Kernel%20and%20API%20File%20Systems">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/dev"><span class="term"><code class="filename">/dev</code></span><a class="headerlink" title="Permalink to this term" href="#/dev">¶</a></dt><dd><p>The root directory for
+ device nodes. Usually this directory
+ is mounted as a
+ "<code class="literal">devtmpfs</code>" instance,
+ but might be of a different type in
+ sandboxed/containerized setups. This
+ directory is managed jointly by the
+ kernel and
+ <a href="systemd-udevd.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd</span>(8)</span></a>,
+ and should not be written to by other
+ components. A number of special
+ purpose virtual file systems might be
+ mounted below this
+ directory.</p></dd><dt id="/dev/shm"><span class="term"><code class="filename">/dev/shm</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/shm">¶</a></dt><dd><p>Place for POSIX shared
+ memory segments, as created via
+ <a href="shm_open.html"><span class="citerefentry"><span class="refentrytitle">shm_open</span>(3)</span></a>. This
+ directory is flushed on boot, and is a
+ "<code class="literal">tmpfs</code>" file
+ system. Since all users have write
+ access to this directory, special care
+ should be taken to avoid name clashes
+ and vulnerabilities. For normal users,
+ shared memory segments in this
+ directory are usually deleted when the
+ user logs out. Usually it is a better
+ idea to use memory mapped files in
+ <code class="filename">/run</code> (for system
+ programs) or
+ <code class="varname">$XDG_RUNTIME_DIR</code>
+ (for user programs) instead of POSIX
+ shared memory segments, since those
+ directories are not world-writable and
+ hence not vulnerable to
+ security-sensitive name
+ clashes.</p></dd><dt id="/proc"><span class="term"><code class="filename">/proc</code></span><a class="headerlink" title="Permalink to this term" href="#/proc">¶</a></dt><dd><p>A virtual kernel file
+ system exposing the process list and
+ other functionality. This file system
+ is mostly an API to interface with the
+ kernel and not a place where normal
+ files may be stored. For details, see
+ <a href="proc.html"><span class="citerefentry"><span class="refentrytitle">proc</span>(5)</span></a>. A
+ number of special purpose virtual file
+ systems might be mounted below this
+ directory.</p></dd><dt id="/proc/sys"><span class="term"><code class="filename">/proc/sys</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys">¶</a></dt><dd><p>A hierarchy below
+ <code class="filename">/proc</code> that
+ exposes a number of kernel
+ tunables. The primary way to configure
+ the settings in this API file tree is
+ via
+ <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>
+ files. In sandboxed/containerized
+ setups this directory is generally
+ mounted read-only.</p></dd><dt id="/sys"><span class="term"><code class="filename">/sys</code></span><a class="headerlink" title="Permalink to this term" href="#/sys">¶</a></dt><dd><p>A virtual kernel file
+ system exposing discovered devices and
+ other functionality. This file system
+ is mostly an API to interface with the
+ kernel and not a place where normal
+ files may be stored. In
+ sandboxed/containerized setups this
+ directory is generally mounted
+ read-only. A number of special purpose
+ virtual file systems might be mounted
+ below this
+ directory.</p></dd></dl></div></div><div class="refsect1"><a name="idm214170710752"></a><h2 id="Compatibility Symlinks">Compatibility Symlinks<a class="headerlink" title="Permalink to this headline" href="#Compatibility%20Symlinks">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/bin"><span class="term"><code class="filename">/bin</code>, </span><span class="term"><code class="filename">/sbin</code>, </span><span class="term"><code class="filename">/usr/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/bin">¶</a></dt><dd><p>These compatibility
+ symlinks point to
+ <code class="filename">/usr/bin</code>,
+ ensuring that scripts and binaries
+ referencing these legacy paths
+ correctly find their binaries.</p></dd><dt id="/lib"><span class="term"><code class="filename">/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/lib">¶</a></dt><dd><p>This compatibility
+ symlink points to
+ <code class="filename">/usr/lib</code>,
+ ensuring that programs referencing
+ this legacy path correctly find
+ their resources.</p></dd><dt id="/lib64"><span class="term"><code class="filename">/lib64</code></span><a class="headerlink" title="Permalink to this term" href="#/lib64">¶</a></dt><dd><p>On some architecture
+ ABIs this compatibility symlink points
+ to <code class="varname">$libdir</code>,
+ ensuring that binaries referencing
+ this legacy path correctly find their
+ dynamic loader. This symlink only
+ exists on architectures whose ABI
+ places the dynamic loader in this
+ path.</p></dd><dt id="/var/run"><span class="term"><code class="filename">/var/run</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run">¶</a></dt><dd><p>This compatibility
+ symlink points to
+ <code class="filename">/run</code>, ensuring
+ that programs referencing this legacy
+ path correctly find their runtime
+ data.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172491616"></a><h2 id="Home Directory">Home Directory<a class="headerlink" title="Permalink to this headline" href="#Home%20Directory">¶</a></h2><p>User applications may want to place files and
+ directories in the user's home directory. They should
+ follow the following basic structure. Note that some
+ of these directories are also standardized (though
+ more weakly) by the <a class="ulink" href="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html" target="_top">XDG
+ Base Directory Specification</a>. Additional
+ locations for high-level user resources are defined by
+ <a class="ulink" href="http://www.freedesktop.org/wiki/Software/xdg-user-dirs/" target="_top">xdg-user-dirs</a>.</p><div class="variablelist"><dl class="variablelist"><dt id="~/.cache"><span class="term"><code class="filename">~/.cache</code></span><a class="headerlink" title="Permalink to this term" href="#~/.cache">¶</a></dt><dd><p>Persistent user cache
+ data. User programs may place
+ non-essential data in this
+ directory. Flushing this directory
+ should have no effect on operation of
+ programs, except for increased
+ runtimes necessary to rebuild these
+ caches. If an application finds
+ <code class="varname">$XDG_CACHE_HOME</code> set
+ is should use the directory specified
+ in it instead of this
+ directory.</p></dd><dt id="~/.config"><span class="term"><code class="filename">~/.config</code></span><a class="headerlink" title="Permalink to this term" href="#~/.config">¶</a></dt><dd><p>Application
+ configuration and state. When a new
+ user is created this directory will be
+ empty or not exist at
+ all. Applications should fall back to
+ defaults should their configuration or
+ state in this directory be missing. If
+ an application finds
+ <code class="varname">$XDG_CONFIG_HOME</code> set
+ is should use the directory specified
+ in it instead of this
+ directory.</p></dd><dt id="~/.local/bin"><span class="term"><code class="filename">~/.local/bin</code></span><a class="headerlink" title="Permalink to this term" href="#~/.local/bin">¶</a></dt><dd><p>Executables that shall
+ appear in the user's
+ <code class="varname">$PATH</code> search
+ path. It is recommended not to place
+ executables in this directory that are
+ not useful for invocation from a
+ shell; these should be placed in a
+ subdirectory of
+ <code class="filename">~/.local/lib</code>
+ instead. Care should be taken when
+ placing architecture-dependent
+ binaries in this place which might be
+ problematic if the home directory is
+ shared between multiple hosts with
+ different
+ architectures.</p></dd><dt id="~/.local/lib"><span class="term"><code class="filename">~/.local/lib</code></span><a class="headerlink" title="Permalink to this term" href="#~/.local/lib">¶</a></dt><dd><p>Static, private vendor
+ data that is compatible with all
+ architectures.</p></dd><dt id="~/.local/lib/arch-id"><span class="term"><code class="filename">~/.local/lib/<em class="replaceable"><code>arch-id</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#~/.local/lib/arch-id">¶</a></dt><dd><p>Location for placing
+ public dynamic libraries. The architecture
+ identifier to use, is defined on <a class="ulink" href="https://wiki.debian.org/Multiarch/Tuples" target="_top">Multiarch Architecture Specifiers (Tuples)</a>
+ list.</p></dd><dt id="~/.local/share"><span class="term"><code class="filename">~/.local/share</code></span><a class="headerlink" title="Permalink to this term" href="#~/.local/share">¶</a></dt><dd><p>Resources shared
+ between multiple packages, such as
+ fonts or artwork. Usually, the precise
+ location and format of files stored
+ below this directory is subject to
+ specifications that ensure
+ interoperability. If
+ an application finds
+ <code class="varname">$XDG_DATA_HOME</code> set
+ is should use the directory specified
+ in it instead of this
+ directory.</p></dd></dl></div></div><div class="refsect1"><a name="idm214175546688"></a><h2 id="Unprivileged Write Access">Unprivileged Write Access<a class="headerlink" title="Permalink to this headline" href="#Unprivileged%20Write%20Access">¶</a></h2><p>Unprivileged processes generally lack
+ write access to most of the hierarchy.</p><p>The exceptions for normal users are
+ <code class="filename">/tmp</code>,
+ <code class="filename">/var/tmp</code>,
+ <code class="filename">/dev/shm</code>, as well as the home
+ directory <code class="varname">$HOME</code> (usually found
+ below <code class="filename">/home</code>) and the runtime
+ directory <code class="varname">$XDG_RUNTIME_DIR</code> (found
+ below <code class="filename">/run/user</code>) of the
+ user, which are all writable.</p><p>For unprivileged system processes only
+ <code class="filename">/tmp</code>,
+ <code class="filename">/var/tmp</code> and
+ <code class="filename">/dev/shm</code> are writable. If an
+ unprivileged system process needs a private, writable
+ directory in <code class="filename">/var</code> or
+ <code class="filename">/run</code>, it is recommended to either
+ create it before dropping privileges in the daemon
+ code, to create it via
+ <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
+ fragments during boot, or via the
+ <code class="varname">RuntimeDirectory=</code> directive of
+ service units (see
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
+ for details).</p></div><div class="refsect1"><a name="idm214173794992"></a><h2 id="Node Types">Node Types<a class="headerlink" title="Permalink to this headline" href="#Node%20Types">¶</a></h2><p>Unix file systems support different types of file
+ nodes, including regular files, directories, symlinks,
+ character and block device nodes, sockets and FIFOs.</p><p>It is strongly recommended that
+ <code class="filename">/dev</code> is the only location below
+ which device nodes shall be placed. Similar,
+ <code class="filename">/run</code> shall be the only location
+ to place sockets and FIFOs. Regular files,
+ directories and symlinks may be used in all
+ directories.</p></div><div class="refsect1"><a name="idm214173791552"></a><h2 id="System Packages">System Packages<a class="headerlink" title="Permalink to this headline" href="#System%20Packages">¶</a></h2><p>Developers of system packages should follow
+ strict rules when placing their own files in the file
+ system. The following table lists recommended
+ locations for specific types of files supplied by the
+ vendor.</p><div class="table"><a name="idm214173790208"></a><p class="title"><b>Table 1. System Package Vendor Files Locations</b></p><div class="table-contents"><table summary="System Package Vendor Files Locations" border="1"><colgroup><col align="left" class="directory"><col align="left" class="purpose"></colgroup><thead><tr><th align="left">Directory</th><th align="left">Purpose</th></tr></thead><tbody><tr><td align="left"><code class="filename">/usr/bin</code></td><td align="left">Package executables that shall appear in the <code class="varname">$PATH</code> executable search path, compiled for any of the supported architectures compatible with the operating system. It is not recommended to place internal binaries or binaries that are not commonly invoked from the shell in this directory, such as daemon binaries. As this directory is shared with most other packages of the system special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package's files.</td></tr><tr><td align="left"><code class="filename">/usr/lib/<em class="replaceable"><code>arch-id</code></em></code></td><td align="left">Public shared libraries of the package. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes.</td></tr><tr><td align="left"><code class="filename">/usr/lib/<em class="replaceable"><code>package</code></em></code></td><td align="left">Private, static vendor resources of the package, including private binaries and libraries, or any other kind of read-only vendor data.</td></tr><tr><td align="left"><code class="filename">/usr/lib/<em class="replaceable"><code>arch-id</code></em>/<em class="replaceable"><code>package</code></em></code></td><td align="left">Private other vendor resources of the package that are architecture-specific and cannot be shared between architectures. Note that this generally does not include private executables since binaries of a specific architecture may be freely invoked from any other supported system architecture.</td></tr><tr><td align="left"><code class="filename">/usr/include/<em class="replaceable"><code>package</code></em></code></td><td align="left">Public C/C++ APIs of public shared libraries of the package.</td></tr></tbody></table></div></div><br class="table-break"><p>Additional static vendor files may be installed
+ in the <code class="filename">/usr/share</code> hierarchy, to
+ the locations defined by the various relevant
+ specifications.</p><p>During runtime and for local configuration and
+ state additional directories are defined:</p><div class="table"><a name="idm214173772160"></a><p class="title"><b>Table 2. System Package Variable Files Locations</b></p><div class="table-contents"><table summary="System Package Variable Files Locations" border="1"><colgroup><col align="left" class="directory"><col align="left" class="purpose"></colgroup><thead><tr><th align="left">Directory</th><th align="left">Purpose</th></tr></thead><tbody><tr><td align="left"><code class="filename">/etc/<em class="replaceable"><code>package</code></em></code></td><td align="left">System-specific configuration for the package. It is recommended to default to safe fallbacks if this configuration is missing, if this is possible. Alternatively, a <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> fragment may be used to copy or symlink the necessary files and directories from <code class="filename">/usr/share/factory</code> during boot, via the "<code class="literal">L</code>" or "<code class="literal">C</code>" directives.</td></tr><tr><td align="left"><code class="filename">/run/<em class="replaceable"><code>package</code></em></code></td><td align="left">Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> fragment may be used to create the necessary directories during boot. Alternatively, the <code class="varname">RuntimeDirectory=</code> directive of service units may be used (see <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> for details.)</td></tr><tr><td align="left"><code class="filename">/run/log/<em class="replaceable"><code>package</code></em></code></td><td align="left">Runtime log data for the package. As above, the package needs to make sure to create this directory if necessary, as it will be flushed on every boot.</td></tr><tr><td align="left"><code class="filename">/var/cache/<em class="replaceable"><code>package</code></em></code></td><td align="left">Persistent cache data of the package. If this directory is flushed the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary.</td></tr><tr><td align="left"><code class="filename">/var/lib/<em class="replaceable"><code>package</code></em></code></td><td align="left">Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. Alternatively, a <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> fragment may be used to create the necessary directories during boot.</td></tr><tr><td align="left"><code class="filename">/var/log/<em class="replaceable"><code>package</code></em></code></td><td align="left">Persistent log data of the package. As above, the package should make sure to create this directory if necessary, as it might be missing.</td></tr><tr><td align="left"><code class="filename">/var/spool/<em class="replaceable"><code>package</code></em></code></td><td align="left">Persistent spool/queue data of the package. As above, the package should make sure to create this directory if necessary, as it might be missing.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect1"><a name="idm214173746304"></a><h2 id="User Packages">User Packages<a class="headerlink" title="Permalink to this headline" href="#User%20Packages">¶</a></h2><p>Programs running in user context should follow
+ strict rules when placing their own files in the
+ user's home directory. The following table lists
+ recommended locations in the home directory for
+ specific types of files supplied by the vendor if the
+ application is installed in the home directory. (Note
+ however, that user applications installed system-wide
+ should follow the rules outlined above regarding
+ placing vendor files.)</p><div class="table"><a name="idm214173744672"></a><p class="title"><b>Table 3. User Package Vendor File Locations</b></p><div class="table-contents"><table summary="User Package Vendor File Locations" border="1"><colgroup><col align="left" class="directory"><col align="left" class="purpose"></colgroup><thead><tr><th align="left">Directory</th><th align="left">Purpose</th></tr></thead><tbody><tr><td align="left"><code class="filename">~/.local/bin</code></td><td align="left">Package executables that shall appear in the <code class="varname">$PATH</code> executable search path. It is not recommended to place internal executables or executables that are not commonly invoked from the shell in this directory, such as daemon executables. As this directory is shared with most other packages of the user special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package's files.</td></tr><tr><td align="left"><code class="filename">~/.local/lib/<em class="replaceable"><code>arch-id</code></em></code></td><td align="left">Public shared libraries of the package. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes.</td></tr><tr><td align="left"><code class="filename">~/.local/lib/<em class="replaceable"><code>package</code></em></code></td><td align="left">Private, static vendor resources of the package, compatible wih any architecture, or any other kind of read-only vendor data.</td></tr><tr><td align="left"><code class="filename">~/.local/lib/<em class="replaceable"><code>arch-id</code></em>/<em class="replaceable"><code>package</code></em></code></td><td align="left">Private other vendor resources of the package that are architecture-specific and cannot be shared between architectures.</td></tr></tbody></table></div></div><br class="table-break"><p>Additional static vendor files may be installed
+ in the <code class="filename">~/.local/share</code> hierarchy,
+ to the locations defined by the various relevant
+ specifications.</p><p>During runtime and for local configuration and
+ state additional directories are defined:</p><div class="table"><a name="idm214173728816"></a><p class="title"><b>Table 4. User Package Variable File Locations</b></p><div class="table-contents"><table summary="User Package Variable File Locations" border="1"><colgroup><col align="left" class="directory"><col align="left" class="purpose"></colgroup><thead><tr><th align="left">Directory</th><th align="left">Purpose</th></tr></thead><tbody><tr><td align="left"><code class="filename">~/.config/<em class="replaceable"><code>package</code></em></code></td><td align="left">User-specific configuration and state for the package. It is required to default to safe fallbacks if this configuration is missing.</td></tr><tr><td align="left"><code class="filename"><code class="varname">$XDG_RUNTIME_DIR</code>/<em class="replaceable"><code>package</code></em></code></td><td align="left">User runtime data for the package.</td></tr><tr><td align="left"><code class="filename">~/.cache/<em class="replaceable"><code>package</code></em></code></td><td align="left">Persistent cache data of the package. If this directory is flushed the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect1"><a name="idm214173717072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="hier.html"><span class="citerefentry"><span class="refentrytitle">hier</span>(7)</span></a>,
+ <a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a>,
+ <a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a>,
+ <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>,
+ <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>,
+ <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>,
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="file-hierarchy">
+
+ <refentryinfo>
+ <title>file-hierarchy</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>file-hierarchy</refentrytitle>
+ <manvolnum>7</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>file-hierarchy</refname>
+ <refpurpose>File system hierarchy overview</refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>Operating systems using the
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ system and service manager are organized based on a
+ file system hierarchy inspired by UNIX, more
+ specifically the hierarchy described in the <ulink
+ url="http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html">File
+ System Hierarchy</ulink> specification and
+ <citerefentry><refentrytitle>hier</refentrytitle><manvolnum>7</manvolnum></citerefentry>. This
+ manual page describes a more minimal, modernized
+ subset of these specifications that defines more
+ strictly the suggestions and restrictions systemd
+ makes on the file system hierarchy.</para>
+
+ <para>Many of the paths described here are queriable
+ with the
+ <citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ tool.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>General Structure</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>/</filename></term>
+ <listitem><para>The file system
+ root. Usually writable, but this is
+ not required. Possibly a temporary
+ file system (<literal>tmpfs</literal>). Not shared with
+ other hosts (unless read-only).
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/boot</filename></term>
+ <listitem><para>The boot partition
+ used for bringing up the system. On
+ EFI systems this is possibly the EFI
+ System Partition, also see
+ <citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>. This
+ directory is usually strictly local
+ to the host, and should be considered
+ read-only, except when a new kernel or
+ boot loader is installed. This
+ directory only exists on systems that
+ run on physical or emulated hardware
+ that requires boot
+ loaders.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/etc</filename></term>
+ <listitem><para>System-specific
+ configuration. This directory may or
+ may not be read-only. Frequently, this
+ directory is pre-populated with
+ vendor-supplied configuration files,
+ but applications should not make
+ assumptions about this directory
+ being fully populated or populated at
+ all, and should fall back to defaults
+ if configuration is missing.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/home</filename></term>
+ <listitem><para>The location for
+ normal user's home
+ directories. Possibly shared with
+ other systems, and never
+ read-only. This directory should only
+ be used for normal users, never for
+ system users. This directory and
+ possibly the directories contained
+ within it might only become available
+ or writable in late boot or even only
+ after user authentication. This directory
+ might be placed on limited-functionality
+ network file systems, hence
+ applications should not assume the
+ full set of file API is available on
+ this directory. Applications should
+ generally not reference this directory
+ directly, but via the per-user
+ <varname>$HOME</varname> environment
+ variable, or via the home directory
+ field of the user
+ database.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/root</filename></term>
+ <listitem><para>The home directory of
+ the root user. The root user's home
+ directory is located outside of
+ <filename>/home</filename> in order to
+ make sure the root user may log in
+ even without <filename>/home</filename>
+ being available and
+ mounted.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/srv</filename></term>
+ <listitem><para>The place to store
+ general server payload, managed by the
+ administrator. No restrictions are
+ made how this directory is organized
+ internally. Generally writable, and
+ possibly shared among systems. This
+ directory might become available or
+ writable only very late during
+ boot.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/tmp</filename></term>
+ <listitem><para>The place for small
+ temporary files. This directory is
+ usually mounted as
+ a <literal>tmpfs</literal> instance, and
+ should hence not be used for larger
+ files. (Use
+ <filename>/var/tmp</filename> for
+ larger files.) Since the directory is
+ accessible to other users of the
+ system it is essential that this
+ directory is only written to with the
+ <citerefentry><refentrytitle>mkstemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>mkdtemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ and related calls. This directory is
+ usually flushed at boot-up. Also,
+ files that are not accessed within a
+ certain time are usually automatically
+ deleted. If applications find the
+ environment variable
+ <varname>$TMPDIR</varname> set they
+ should prefer using the directory
+ specified in it over directly
+ referencing
+ <filename>/tmp</filename> (see <citerefentry><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry> for details).</para></listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Runtime Data</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>/run</filename></term>
+ <listitem><para>A
+ <literal>tmpfs</literal> file system
+ for system packages to place runtime
+ data in. This directory is flushed on
+ boot, and generally writable for
+ privileged programs
+ only. Always writable.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/run/log</filename></term>
+ <listitem><para>Runtime system
+ logs. System components may place
+ private logs in this directory. Always
+ writable, even when
+ <filename>/var/log</filename> might
+ not be accessible
+ yet.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/run/user</filename></term>
+ <listitem><para>Contains per-user
+ runtime directories, each usually
+ individually mounted
+ <literal>tmpfs</literal>
+ instances. Always writable, flushed at
+ each reboot and when the user logs
+ out. User code should not reference
+ this directory directly, but via the
+ <varname>$XDG_RUNTIME_DIR</varname>
+ environment variable, as documented in
+ the <ulink
+ url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
+ Base Directory
+ Specification</ulink>.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Vendor-supplied Operating System Resources</title>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><filename>/usr</filename></term>
+ <listitem><para>Vendor-supplied
+ operating system resources. Usually
+ read-only, but this is not
+ required. Possibly shared between
+ multiple hosts. This directory should
+ not be modified by the administrator,
+ except when installing or removing
+ vendor-supplied
+ packages.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/bin</filename></term>
+ <listitem><para>Binaries and
+ executables for user commands, that
+ shall appear in the
+ <varname>$PATH</varname> search
+ path. It is recommended not to place
+ binaries in this directory that are
+ not useful for invocation from a shell
+ (such as daemon binaries); these
+ should be placed in a subdirectory of
+ <filename>/usr/lib</filename>
+ instead.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/include</filename></term>
+ <listitem><para>C and C++ API header
+ files of system
+ libraries.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/lib</filename></term>
+ <listitem><para>Static, private vendor
+ data that is compatible with all
+ architectures (though not necessarily
+ architecture-independent). Note that
+ this includes internal executables or
+ other binaries that are not regularly
+ invoked from a shell. Such binaries
+ may be for any architecture supported
+ by the system. Do not place public
+ libraries in this directory, use
+ <varname>$libdir</varname> (see
+ below), instead.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/lib/<replaceable>arch-id</replaceable></filename></term>
+ <listitem><para>Location for placing
+ dynamic libraries, also called <varname>$libdir</varname>.
+ The architecture identifier to use is defined on <ulink
+ url="https://wiki.debian.org/Multiarch/Tuples">Multiarch Architecture Specifiers (Tuples)</ulink>
+ list. Legacy locations of <varname>$libdir</varname> are
+ <filename>/usr/lib</filename>,
+ <filename>/usr/lib64</filename>.
+ This directory should not
+ be used for package-specific data,
+ unless this data is
+ architecture-dependent, too. To query
+ <varname>$libdir</varname> for the
+ primary architecture of the system,
+ invoke:
+ <programlisting># pkg-config --variable=libdir systemd</programlisting> or
+ <programlisting># systemd-path system-library-arch</programlisting>
+ </para></listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/share</filename></term>
+ <listitem><para>Resources shared
+ between multiple packages, such as
+ documentation, man pages, time zone
+ information, fonts and other
+ resources. Usually, the precise
+ location and format of files stored
+ below this directory is subject to
+ specifications that ensure
+ interoperability.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/share/doc</filename></term>
+ <listitem><para>Documentation for the
+ operating system or system
+ packages.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/share/factory/etc</filename></term>
+ <listitem><para>Repository for
+ vendor-supplied default configuration
+ files. This directory should be
+ populated with pristine vendor versions
+ of all configuration files that may be
+ placed in
+ <filename>/etc</filename>. This is
+ useful to compare the local
+ configuration of a system with vendor
+ defaults and to populate the local
+ configuration with
+ defaults.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/usr/share/factory/var</filename></term>
+
+ <listitem><para>Similar to
+ <filename>/usr/share/factory/etc</filename>
+ but for vendor versions of files in
+ the variable, persistent data
+ directory
+ <filename>/var</filename>.</para></listitem>
+
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Persistent Variable System Data</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>/var</filename></term>
+ <listitem><para>Persistent, variable
+ system data. Must be writable. This
+ directory might be pre-populated with
+ vendor-supplied data, but applications
+ should be able to reconstruct
+ necessary files and directories in
+ this subhierarchy should they be
+ missing, as the system might start up
+ without this directory being
+ populated. Persistency is recommended,
+ but optional, to support ephemeral
+ systems. This directory might become
+ available or writable only very late
+ during boot. Components that are
+ required to operate during early boot
+ hence shall not unconditionally rely
+ on this directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/var/cache</filename></term>
+ <listitem><para>Persistent system
+ cache data. System components may
+ place non-essential data in this
+ directory. Flushing this directory
+ should have no effect on operation of
+ programs, except for increased
+ runtimes necessary to rebuild these
+ caches.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/var/lib</filename></term>
+ <listitem><para>Persistent system
+ data. System components may
+ place private data in this
+ directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/var/log</filename></term>
+ <listitem><para>Persistent system
+ logs. System components may place
+ private logs in this directory, though
+ it is recommended to do most logging
+ via the
+ <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ and
+ <citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ calls.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/var/spool</filename></term>
+ <listitem><para>Persistent system
+ spool data, such as printer or mail
+ queues.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/var/tmp</filename></term>
+ <listitem><para>The place for larger
+ and persistent temporary files. In
+ contrast to <filename>/tmp</filename>
+ this directory is usually mounted from
+ a persistent physical file system and
+ can thus accept larger files. (Use
+ <filename>/tmp</filename> for smaller
+ files.) This directory is generally
+ not flushed at boot-up, but time-based
+ cleanup of files that have not been
+ accessed for a certain time is
+ applied. The same security
+ restrictions as with
+ <filename>/tmp</filename> apply, and
+ hence only
+ <citerefentry><refentrytitle>mkstemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>mkdtemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ or similar calls should be used to
+ make use of this directory. If
+ applications find the environment
+ variable <varname>$TMPDIR</varname>
+ set they should prefer using the
+ directory specified in it over
+ directly referencing
+ <filename>/var/tmp</filename> (see <citerefentry><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry> for details).
+ </para></listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Virtual Kernel and API File Systems</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>/dev</filename></term>
+ <listitem><para>The root directory for
+ device nodes. Usually this directory
+ is mounted as a
+ <literal>devtmpfs</literal> instance,
+ but might be of a different type in
+ sandboxed/containerized setups. This
+ directory is managed jointly by the
+ kernel and
+ <citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ and should not be written to by other
+ components. A number of special
+ purpose virtual file systems might be
+ mounted below this
+ directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/dev/shm</filename></term>
+ <listitem><para>Place for POSIX shared
+ memory segments, as created via
+ <citerefentry><refentrytitle>shm_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>. This
+ directory is flushed on boot, and is a
+ <literal>tmpfs</literal> file
+ system. Since all users have write
+ access to this directory, special care
+ should be taken to avoid name clashes
+ and vulnerabilities. For normal users,
+ shared memory segments in this
+ directory are usually deleted when the
+ user logs out. Usually it is a better
+ idea to use memory mapped files in
+ <filename>/run</filename> (for system
+ programs) or
+ <varname>$XDG_RUNTIME_DIR</varname>
+ (for user programs) instead of POSIX
+ shared memory segments, since those
+ directories are not world-writable and
+ hence not vulnerable to
+ security-sensitive name
+ clashes.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/proc</filename></term>
+ <listitem><para>A virtual kernel file
+ system exposing the process list and
+ other functionality. This file system
+ is mostly an API to interface with the
+ kernel and not a place where normal
+ files may be stored. For details, see
+ <citerefentry><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>. A
+ number of special purpose virtual file
+ systems might be mounted below this
+ directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/proc/sys</filename></term>
+ <listitem><para>A hierarchy below
+ <filename>/proc</filename> that
+ exposes a number of kernel
+ tunables. The primary way to configure
+ the settings in this API file tree is
+ via
+ <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ files. In sandboxed/containerized
+ setups this directory is generally
+ mounted read-only.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/sys</filename></term>
+ <listitem><para>A virtual kernel file
+ system exposing discovered devices and
+ other functionality. This file system
+ is mostly an API to interface with the
+ kernel and not a place where normal
+ files may be stored. In
+ sandboxed/containerized setups this
+ directory is generally mounted
+ read-only. A number of special purpose
+ virtual file systems might be mounted
+ below this
+ directory.</para></listitem>
+ </varlistentry>
+
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Compatibility Symlinks</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>/bin</filename></term>
+ <term><filename>/sbin</filename></term>
+ <term><filename>/usr/sbin</filename></term>
+
+ <listitem><para>These compatibility
+ symlinks point to
+ <filename>/usr/bin</filename>,
+ ensuring that scripts and binaries
+ referencing these legacy paths
+ correctly find their binaries.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/lib</filename></term>
+
+ <listitem><para>This compatibility
+ symlink points to
+ <filename>/usr/lib</filename>,
+ ensuring that programs referencing
+ this legacy path correctly find
+ their resources.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/lib64</filename></term>
+
+ <listitem><para>On some architecture
+ ABIs this compatibility symlink points
+ to <varname>$libdir</varname>,
+ ensuring that binaries referencing
+ this legacy path correctly find their
+ dynamic loader. This symlink only
+ exists on architectures whose ABI
+ places the dynamic loader in this
+ path.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/var/run</filename></term>
+
+ <listitem><para>This compatibility
+ symlink points to
+ <filename>/run</filename>, ensuring
+ that programs referencing this legacy
+ path correctly find their runtime
+ data.</para></listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Home Directory</title>
+
+ <para>User applications may want to place files and
+ directories in the user's home directory. They should
+ follow the following basic structure. Note that some
+ of these directories are also standardized (though
+ more weakly) by the <ulink
+ url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
+ Base Directory Specification</ulink>. Additional
+ locations for high-level user resources are defined by
+ <ulink
+ url="http://www.freedesktop.org/wiki/Software/xdg-user-dirs/">xdg-user-dirs</ulink>.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>~/.cache</filename></term>
+
+ <listitem><para>Persistent user cache
+ data. User programs may place
+ non-essential data in this
+ directory. Flushing this directory
+ should have no effect on operation of
+ programs, except for increased
+ runtimes necessary to rebuild these
+ caches. If an application finds
+ <varname>$XDG_CACHE_HOME</varname> set
+ is should use the directory specified
+ in it instead of this
+ directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>~/.config</filename></term>
+
+ <listitem><para>Application
+ configuration and state. When a new
+ user is created this directory will be
+ empty or not exist at
+ all. Applications should fall back to
+ defaults should their configuration or
+ state in this directory be missing. If
+ an application finds
+ <varname>$XDG_CONFIG_HOME</varname> set
+ is should use the directory specified
+ in it instead of this
+ directory.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>~/.local/bin</filename></term>
+
+ <listitem><para>Executables that shall
+ appear in the user's
+ <varname>$PATH</varname> search
+ path. It is recommended not to place
+ executables in this directory that are
+ not useful for invocation from a
+ shell; these should be placed in a
+ subdirectory of
+ <filename>~/.local/lib</filename>
+ instead. Care should be taken when
+ placing architecture-dependent
+ binaries in this place which might be
+ problematic if the home directory is
+ shared between multiple hosts with
+ different
+ architectures.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>~/.local/lib</filename></term>
+
+ <listitem><para>Static, private vendor
+ data that is compatible with all
+ architectures.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>~/.local/lib/<replaceable>arch-id</replaceable></filename></term>
+
+ <listitem><para>Location for placing
+ public dynamic libraries. The architecture
+ identifier to use, is defined on <ulink
+ url="https://wiki.debian.org/Multiarch/Tuples">Multiarch Architecture Specifiers (Tuples)</ulink>
+ list.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>~/.local/share</filename></term>
+
+ <listitem><para>Resources shared
+ between multiple packages, such as
+ fonts or artwork. Usually, the precise
+ location and format of files stored
+ below this directory is subject to
+ specifications that ensure
+ interoperability. If
+ an application finds
+ <varname>$XDG_DATA_HOME</varname> set
+ is should use the directory specified
+ in it instead of this
+ directory.</para></listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+
+ <refsect1>
+ <title>Unprivileged Write Access</title>
+
+ <para>Unprivileged processes generally lack
+ write access to most of the hierarchy.</para>
+
+ <para>The exceptions for normal users are
+ <filename>/tmp</filename>,
+ <filename>/var/tmp</filename>,
+ <filename>/dev/shm</filename>, as well as the home
+ directory <varname>$HOME</varname> (usually found
+ below <filename>/home</filename>) and the runtime
+ directory <varname>$XDG_RUNTIME_DIR</varname> (found
+ below <filename>/run/user</filename>) of the
+ user, which are all writable.</para>
+
+ <para>For unprivileged system processes only
+ <filename>/tmp</filename>,
+ <filename>/var/tmp</filename> and
+ <filename>/dev/shm</filename> are writable. If an
+ unprivileged system process needs a private, writable
+ directory in <filename>/var</filename> or
+ <filename>/run</filename>, it is recommended to either
+ create it before dropping privileges in the daemon
+ code, to create it via
+ <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ fragments during boot, or via the
+ <varname>RuntimeDirectory=</varname> directive of
+ service units (see
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for details).</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Node Types</title>
+
+ <para>Unix file systems support different types of file
+ nodes, including regular files, directories, symlinks,
+ character and block device nodes, sockets and FIFOs.</para>
+
+ <para>It is strongly recommended that
+ <filename>/dev</filename> is the only location below
+ which device nodes shall be placed. Similar,
+ <filename>/run</filename> shall be the only location
+ to place sockets and FIFOs. Regular files,
+ directories and symlinks may be used in all
+ directories.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>System Packages</title>
+
+ <para>Developers of system packages should follow
+ strict rules when placing their own files in the file
+ system. The following table lists recommended
+ locations for specific types of files supplied by the
+ vendor.</para>
+
+ <table>
+ <title>System Package Vendor Files Locations</title>
+ <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+ <colspec colname="directory" />
+ <colspec colname="purpose" />
+ <thead>
+ <row>
+ <entry>Directory</entry>
+ <entry>Purpose</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><filename>/usr/bin</filename></entry>
+ <entry>Package executables that shall appear in the <varname>$PATH</varname> executable search path, compiled for any of the supported architectures compatible with the operating system. It is not recommended to place internal binaries or binaries that are not commonly invoked from the shell in this directory, such as daemon binaries. As this directory is shared with most other packages of the system special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package's files.</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/lib/<replaceable>arch-id</replaceable></filename></entry>
+ <entry>Public shared libraries of the package. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes.</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/lib/<replaceable>package</replaceable></filename></entry>
+ <entry>Private, static vendor resources of the package, including private binaries and libraries, or any other kind of read-only vendor data.</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/lib/<replaceable>arch-id</replaceable>/<replaceable>package</replaceable></filename></entry>
+ <entry>Private other vendor resources of the package that are architecture-specific and cannot be shared between architectures. Note that this generally does not include private executables since binaries of a specific architecture may be freely invoked from any other supported system architecture.</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/include/<replaceable>package</replaceable></filename></entry>
+ <entry>Public C/C++ APIs of public shared libraries of the package.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Additional static vendor files may be installed
+ in the <filename>/usr/share</filename> hierarchy, to
+ the locations defined by the various relevant
+ specifications.</para>
+
+ <para>During runtime and for local configuration and
+ state additional directories are defined:</para>
+
+ <table>
+ <title>System Package Variable Files Locations</title>
+ <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+ <colspec colname="directory" />
+ <colspec colname="purpose" />
+ <thead>
+ <row>
+ <entry>Directory</entry>
+ <entry>Purpose</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><filename>/etc/<replaceable>package</replaceable></filename></entry>
+ <entry>System-specific configuration for the package. It is recommended to default to safe fallbacks if this configuration is missing, if this is possible. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to copy or symlink the necessary files and directories from <filename>/usr/share/factory</filename> during boot, via the <literal>L</literal> or <literal>C</literal> directives.</entry>
+ </row>
+ <row>
+ <entry><filename>/run/<replaceable>package</replaceable></filename></entry>
+ <entry>Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot. Alternatively, the <varname>RuntimeDirectory=</varname> directive of service units may be used (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details.)</entry>
+ </row>
+ <row>
+ <entry><filename>/run/log/<replaceable>package</replaceable></filename></entry>
+ <entry>Runtime log data for the package. As above, the package needs to make sure to create this directory if necessary, as it will be flushed on every boot.</entry>
+ </row>
+ <row>
+ <entry><filename>/var/cache/<replaceable>package</replaceable></filename></entry>
+ <entry>Persistent cache data of the package. If this directory is flushed the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary.</entry>
+ </row>
+ <row>
+ <entry><filename>/var/lib/<replaceable>package</replaceable></filename></entry>
+ <entry>Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot.</entry>
+ </row>
+ <row>
+ <entry><filename>/var/log/<replaceable>package</replaceable></filename></entry>
+ <entry>Persistent log data of the package. As above, the package should make sure to create this directory if necessary, as it might be missing.</entry>
+ </row>
+ <row>
+ <entry><filename>/var/spool/<replaceable>package</replaceable></filename></entry>
+ <entry>Persistent spool/queue data of the package. As above, the package should make sure to create this directory if necessary, as it might be missing.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </refsect1>
+
+ <refsect1>
+ <title>User Packages</title>
+
+ <para>Programs running in user context should follow
+ strict rules when placing their own files in the
+ user's home directory. The following table lists
+ recommended locations in the home directory for
+ specific types of files supplied by the vendor if the
+ application is installed in the home directory. (Note
+ however, that user applications installed system-wide
+ should follow the rules outlined above regarding
+ placing vendor files.)</para>
+
+ <table>
+ <title>User Package Vendor File Locations</title>
+ <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+ <colspec colname="directory" />
+ <colspec colname="purpose" />
+ <thead>
+ <row>
+ <entry>Directory</entry>
+ <entry>Purpose</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><filename>~/.local/bin</filename></entry>
+ <entry>Package executables that shall appear in the <varname>$PATH</varname> executable search path. It is not recommended to place internal executables or executables that are not commonly invoked from the shell in this directory, such as daemon executables. As this directory is shared with most other packages of the user special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package's files.</entry>
+ </row>
+ <row>
+ <entry><filename>~/.local/lib/<replaceable>arch-id</replaceable></filename></entry>
+ <entry>Public shared libraries of the package. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes.</entry>
+ </row>
+ <row>
+ <entry><filename>~/.local/lib/<replaceable>package</replaceable></filename></entry>
+ <entry>Private, static vendor resources of the package, compatible wih any architecture, or any other kind of read-only vendor data.</entry>
+ </row>
+ <row>
+ <entry><filename>~/.local/lib/<replaceable>arch-id</replaceable>/<replaceable>package</replaceable></filename></entry>
+ <entry>Private other vendor resources of the package that are architecture-specific and cannot be shared between architectures.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Additional static vendor files may be installed
+ in the <filename>~/.local/share</filename> hierarchy,
+ to the locations defined by the various relevant
+ specifications.</para>
+
+ <para>During runtime and for local configuration and
+ state additional directories are defined:</para>
+
+ <table>
+ <title>User Package Variable File Locations</title>
+ <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+ <colspec colname="directory" />
+ <colspec colname="purpose" />
+ <thead>
+ <row>
+ <entry>Directory</entry>
+ <entry>Purpose</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><filename>~/.config/<replaceable>package</replaceable></filename></entry>
+ <entry>User-specific configuration and state for the package. It is required to default to safe fallbacks if this configuration is missing.</entry>
+ </row>
+ <row>
+ <entry><filename><varname>$XDG_RUNTIME_DIR</varname>/<replaceable>package</replaceable></filename></entry>
+ <entry>User runtime data for the package.</entry>
+ </row>
+ <row>
+ <entry><filename>~/.cache/<replaceable>package</replaceable></filename></entry>
+ <entry>Persistent cache data of the package. If this directory is flushed the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>hier</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
'\" t
-.TH "HALT" "8" "" "systemd 214" "halt"
+.TH "HALT" "8" "" "systemd 215" "halt"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="halt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>halt, poweroff, reboot — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">halt [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">poweroff [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">reboot [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214181158752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>halt</strong></span>,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="halt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>halt, poweroff, reboot — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">halt [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">poweroff [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">reboot [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214185642768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>halt</strong></span>,
<span class="command"><strong>poweroff</strong></span>, <span class="command"><strong>reboot</strong></span>
may be used to halt, power-off or reboot the
- machine.</p></div><div class="refsect1"><a name="idm214181155552"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ machine.</p></div><div class="refsect1"><a name="idm214186089440"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--halt"><span class="term"><code class="option">--halt</code></span><a class="headerlink" title="Permalink to this term" href="#--halt">¶</a></dt><dd><p>Halt the machine,
regardless of which one of the three
commands is invoked.</p></dd><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--poweroff</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Power-off the machine,
power-off, reboot.</p></dd><dt id="-d"><span class="term"><code class="option">-d</code>, </span><span class="term"><code class="option">--no-wtmp</code></span><a class="headerlink" title="Permalink to this term" href="#-d">¶</a></dt><dd><p>Do not write wtmp
shutdown entry.</p></dd><dt id="--no-wall"><span class="term"><code class="option">--no-wall</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wall">¶</a></dt><dd><p>Do not send wall
message before
- halt, power-off, reboot.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185040240"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214185039056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>These are legacy commands available for
- compatibility only.</p></div><div class="refsect1"><a name="idm214185037776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ halt, power-off, reboot.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183375264"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214184284480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>These are legacy commands available for
+ compatibility only.</p></div><div class="refsect1"><a name="idm214184877296"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>,
'\" t
-.TH "HOSTNAME" "5" "" "systemd 214" "hostname"
+.TH "HOSTNAME" "5" "" "systemd 215" "hostname"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="hostname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>hostname — Local hostname configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/hostname</code></p></div><div class="refsect1"><a name="idm214180664576"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/hostname</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="hostname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>hostname — Local hostname configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/hostname</code></p></div><div class="refsect1"><a name="idm214180092048"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/hostname</code> file
configures the name of the local system that is set
during boot using the
<a href="sethostname.html"><span class="citerefentry"><span class="refentrytitle">sethostname</span>(2)</span></a>
of the hostname as well, however only as fallback.</p><p>You may use
<a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>
to change the value of this file from the command
- line.</p></div><div class="refsect1"><a name="idm214180659472"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p>The simple configuration file format of
+ line.</p></div><div class="refsect1"><a name="idm214181007760"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p>The simple configuration file format of
<code class="filename">/etc/hostname</code> originates from
- Debian GNU/Linux.</p></div><div class="refsect1"><a name="idm214180657712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ Debian GNU/Linux.</p></div><div class="refsect1"><a name="idm214180591920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sethostname.html"><span class="citerefentry"><span class="refentrytitle">sethostname</span>(2)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(1)</span></a>,
'\" t
-.TH "HOSTNAMECTL" "1" "" "systemd 214" "hostnamectl"
+.TH "HOSTNAMECTL" "1" "" "systemd 215" "hostnamectl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\fBhostnamectl\fR
may be used to query and change the system hostname and related settings\&.
.PP
-This tool distinguishes three different hostnames: the high\-level "pretty" hostname which might include all kinds of special characters (e\&.g\&. "Lennart\*(Aqs Laptop"), the static hostname which is used to initialize the kernel hostname at boot (e\&.g\&. "lennarts\-laptop"), and the transient hostname which is a default received from network configuration\&. If a static hostname is set, and is valid (something other than localhost) then the transient hostname is not used\&.
+This tool distinguishes three different hostnames: the high\-level "pretty" hostname which might include all kinds of special characters (e\&.g\&. "Lennart\*(Aqs Laptop"), the static hostname which is used to initialize the kernel hostname at boot (e\&.g\&. "lennarts\-laptop"), and the transient hostname which is a default received from network configuration\&. If a static hostname is set, and is valid (something other than localhost), then the transient hostname is not used\&.
.PP
Note that the pretty hostname has little restrictions on the characters used, while the static and transient hostnames are limited to the usually accepted characters of Internet domain names\&.
.PP
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="hostnamectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>hostnamectl — Control the system hostname</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">hostnamectl</code> [OPTIONS...] {COMMAND}</p></div></div><div class="refsect1"><a name="idm214193019328"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>hostnamectl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="hostnamectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>hostnamectl — Control the system hostname</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">hostnamectl</code> [OPTIONS...] {COMMAND}</p></div></div><div class="refsect1"><a name="idm214197136464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>hostnamectl</strong></span> may be used to
query and change the system hostname and related
settings.</p><p>This tool distinguishes three different
hostnames: the high-level "pretty" hostname which
(e.g. "lennarts-laptop"), and the transient hostname
which is a default received from network configuration.
If a static hostname is set, and is valid (something other
- than localhost) then the transient hostname is not used.</p><p>Note that the pretty hostname has little
+ than localhost), then the transient hostname is not used.</p><p>Note that the pretty hostname has little
restrictions on the characters used, while the static
and transient hostnames are limited to the usually
accepted characters of Internet domain names.</p><p>The static hostname is stored in
for more information. The pretty hostname, chassis
type, and icon name are stored in
<code class="filename">/etc/machine-info</code>, see
- <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>.</p></div><div class="refsect1"><a name="idm214189203776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
+ <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>.</p></div><div class="refsect1"><a name="idm214193390992"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
for authentication for privileged
operations.</p></dd><dt id="-P"><span class="term"><code class="option">-P</code>, </span><span class="term"><code class="option">--privileged</code></span><a class="headerlink" title="Permalink to this term" href="#-P">¶</a></dt><dd><p>Acquire privileges via PolicyKit
before executing the operation.</p></dd><dt id="--static"><span class="term"><code class="option">--static</code>, </span><span class="term"><code class="option">--transient</code>, </span><span class="term"><code class="option">--pretty</code></span><a class="headerlink" title="Permalink to this term" href="#--static">¶</a></dt><dd><p>If
updated. When more than one of those
options is used, all the specified
hostnames will be updated.
- </p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ </p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="status"><span class="term"><span class="command"><strong>status</strong></span></span><a class="headerlink" title="Permalink to this term" href="#status">¶</a></dt><dd><p>Show current system
hostname and related
information.</p></dd><dt id="set-hostname [NAME]"><span class="term"><span class="command"><strong>set-hostname [NAME]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#set-hostname%20%5BNAME%5D">¶</a></dt><dd><p>Set the system
reset the chassis type to the default
value which is determined from the
firmware and possibly other
- parameters.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193117216"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214193116032"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ parameters.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197252416"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214197251232"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(1)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>,
(e.g. "lennarts-laptop"), and the transient hostname
which is a default received from network configuration.
If a static hostname is set, and is valid (something other
- than localhost) then the transient hostname is not used.</para>
+ than localhost), then the transient hostname is not used.</para>
<para>Note that the pretty hostname has little
restrictions on the characters used, while the static
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.index"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.index — List all manpages from the systemd project</p></div><div class="refsect1"><a name="idm214190002240"></a><h2 id="B">B<a class="headerlink" title="Permalink to this headline" href="#B">¶</a></h2><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a> -- Configure additional binary formats for executables at boot<br><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a> -- Boot performance analysis graphing tool configuration file<br><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a> -- Control the firmware and boot manager settings<br><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a> -- System bootup process<br><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a> -- Introspect the bus<br></p></div><div class="refsect1"><a name="idm214189997248"></a><h2 id="C">C<a class="headerlink" title="Permalink to this headline" href="#C">¶</a></h2><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a> -- Configuration for encrypted block devices<br></p></div><div class="refsect1"><a name="idm214189995840"></a><h2 id="D">D<a class="headerlink" title="Permalink to this headline" href="#D">¶</a></h2><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a> -- Writing and packaging system daemons<br></p></div><div class="refsect1"><a name="idm214189994432"></a><h2 id="H">H<a class="headerlink" title="Permalink to this headline" href="#H">¶</a></h2><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a> -- Local hostname configuration file<br><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a> -- Control the system hostname<br></p></div><div class="refsect1"><a name="idm214189991232"></a><h2 id="I">I<a class="headerlink" title="Permalink to this headline" href="#I">¶</a></h2><p><a href="init.html"><span class="citerefentry"><span class="refentrytitle">init</span>(1)</span></a> -- systemd system and service manager<br></p></div><div class="refsect1"><a name="idm214189989824"></a><h2 id="J">J<a class="headerlink" title="Permalink to this headline" href="#J">¶</a></h2><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a> -- Query the systemd journal<br><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a> -- Journal service configuration file<br></p></div><div class="refsect1"><a name="idm214189987520"></a><h2 id="K">K<a class="headerlink" title="Permalink to this headline" href="#K">¶</a></h2><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a> -- Kernel command line parameters<br><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a> -- Add and remove kernel and initramfs images to and from /boot<br></p></div><div class="refsect1"><a name="idm214189985216"></a><h2 id="L">L<a class="headerlink" title="Permalink to this headline" href="#L">¶</a></h2><p><a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a> -- Configuration file for locale settings<br><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a> -- Control the system locale and keyboard layout settings<br><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a> -- Local timezone configuration file<br><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a> -- Control the systemd login manager<br><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a> -- Login manager configuration file<br></p></div><div class="refsect1"><a name="idm214189959600"></a><h2 id="M">M<a class="headerlink" title="Permalink to this headline" href="#M">¶</a></h2><p><a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> -- Local machine ID configuration file<br><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a> -- Local machine information file<br><a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a> -- Control the systemd machine manager<br><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a> -- Configure kernel modules to load at boot<br></p></div><div class="refsect1"><a name="idm214189955504"></a><h2 id="N">N<a class="headerlink" title="Permalink to this headline" href="#N">¶</a></h2><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a> -- Provide hostname resolution for the locally configured system hostname.<br></p></div><div class="refsect1"><a name="idm214189954096"></a><h2 id="O">O<a class="headerlink" title="Permalink to this headline" href="#O">¶</a></h2><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a> -- Operating system identification<br></p></div><div class="refsect1"><a name="idm214189952688"></a><h2 id="P">P<a class="headerlink" title="Permalink to this headline" href="#P">¶</a></h2><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a> -- Register user sessions in the systemd login manager<br><a href="poweroff.html"><span class="citerefentry"><span class="refentrytitle">poweroff</span>(8)</span></a> -- Halt, power-off or reboot the machine<br></p></div><div class="refsect1"><a name="idm214189950384"></a><h2 id="R">R<a class="headerlink" title="Permalink to this headline" href="#R">¶</a></h2><p><a href="reboot.html"><span class="citerefentry"><span class="refentrytitle">reboot</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a> -- Network Name Resolution configuration file<br><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a> -- Print previous and current SysV runlevel<br></p></div><div class="refsect1"><a name="idm214189947184"></a><h2 id="S">S<a class="headerlink" title="Permalink to this headline" href="#S">¶</a></h2><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a> -- APIs for submitting and querying log entries to and from the journal<br><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a> -- APIs for tracking logins<br><a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a> -- Reference implementation of APIs for controlling boot-time read-ahead<br><a href="SD_ALERT.html"><span class="citerefentry"><span class="refentrytitle">SD_ALERT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a> -- Test whether the system is running the systemd init system<br><a href="sd_bus_creds_get_audit_login_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_login_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_audit_session_id.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_session_id</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cgroup.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cgroup</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cmdline.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cmdline</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_exe.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_exe</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_gid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_gid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_mask.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_mask</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_owner_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid_starttime.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid_starttime</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_selinux_context.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_selinux_context</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_session</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_slice</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unique_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unique_name</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_user_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_well_known_names.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_well_known_names</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_bounding_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_bounding_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_effective_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_effective_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_inheritable_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_inheritable_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_permitted_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_permitted_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_default_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_default_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_copy.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_copy</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_free.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_free</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_get_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_get_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_has_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_has_name</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_is_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_is_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_const.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_const</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errnof.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errnof</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a> -- Attach parts of message based on a format string<br><a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_iovec</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_memfd</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_space</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a> -- Attach a single part to a message<br><a href="sd_bus_message_append_string_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_iovec</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_space</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a> -- Attach an array of strings to a message<br><a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_realtime_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_reply_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_reply_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_seqnum.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_seqnum</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_negotiate_creds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_creds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_timestamps.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamps</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_open_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_container.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_container</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_remote</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_path_decode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_decode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_ref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_release_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_release_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="SD_CRIT.html"><span class="citerefentry"><span class="refentrytitle">SD_CRIT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_DEBUG.html"><span class="citerefentry"><span class="refentrytitle">SD_DEBUG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_EMERG.html"><span class="citerefentry"><span class="refentrytitle">SD_EMERG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_ERR.html"><span class="citerefentry"><span class="refentrytitle">SD_ERR</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_default.html"><span class="citerefentry"><span class="refentrytitle">sd_event_default</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_ref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_source_get_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_clock.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_clock</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_unref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_get_machine_names.html"><span class="citerefentry"><span class="refentrytitle">sd_get_machine_names</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_get_sessions</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_uids.html"><span class="citerefentry"><span class="refentrytitle">sd_get_uids</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="SD_ID128_CONST_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_CONST_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_equal.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_equal</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_VAL.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_VAL</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_from_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_from_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="sd_id128_get_boot.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_boot</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="sd_id128_get_machine.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_machine</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="SD_ID128_MAKE.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_MAKE</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a> -- Generate 128-bit IDs<br><a href="sd_id128_t.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_t</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="SD_INFO.html"><span class="citerefentry"><span class="refentrytitle">SD_INFO</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_mq.html"><span class="citerefentry"><span class="refentrytitle">sd_is_mq</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_inet.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_inet</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_unix.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_unix</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_special.html"><span class="citerefentry"><span class="refentrytitle">sd_is_special</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_journal.html"><span class="citerefentry"><span class="refentrytitle">sd_journal</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_add_conjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_conjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_disjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_disjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_match.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_match</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_APPEND.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_APPEND</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_close.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_close</span>(3)</span></a> -- Open the system journal for reading<br><a href="SD_JOURNAL_CURRENT_USER.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_CURRENT_USER</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_enumerate_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_enumerate_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_flush_matches.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_flush_matches</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_FOREACH.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_BACKWARDS.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_BACKWARDS</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_DATA.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_DATA</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="SD_JOURNAL_FOREACH_UNIQUE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_UNIQUE</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_get_catalog.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_catalog_for_message_id.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog_for_message_id</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_get_cutoff_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_monotonic_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_events</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_monotonic_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_timeout</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a> -- Journal disk usage<br><a href="SD_JOURNAL_INVALIDATE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_INVALIDATE</span>(3)</span></a> -- Journal change notification interface<br><a href="SD_JOURNAL_LOCAL_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_LOCAL_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_next_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_NOP.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_NOP</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_container.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_container</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_directory.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_directory</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_files.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_files</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_perror.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_perror</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_previous_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_printv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_printv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_process.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_process</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_query_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_query_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_reliable_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_reliable_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_restart_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_restart_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="SD_JOURNAL_RUNTIME_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_RUNTIME_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_monotonic_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_realtime_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_tail.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_tail</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_send.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_send</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_sendv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_sendv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_set_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_set_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a> -- Create log stream file descriptor to the journal<br><a href="SD_JOURNAL_SUPPRESS_LOCATION.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SUPPRESS_LOCATION</span>(3)</span></a> -- Submit log entries to the journal<br><a href="SD_JOURNAL_SYSTEM.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SYSTEM</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_test_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_test_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_wait.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_wait</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="SD_LISTEN_FDS_START.html"><span class="citerefentry"><span class="refentrytitle">SD_LISTEN_FDS_START</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="sd_login_monitor.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_flush.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_flush</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_events</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_fd</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_timeout</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_unref</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="SD_NOTICE.html"><span class="citerefentry"><span class="refentrytitle">SD_NOTICE</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_notifyf.html"><span class="citerefentry"><span class="refentrytitle">sd_notifyf</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_peer_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a> -- Control ongoing disk boot-time read-ahead operations<br><a href="sd_seat_can_graphical.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_graphical</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_multi_session.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_multi_session</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_tty</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_sessions</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_session_get_class.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_class</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_display</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_host.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_host</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_user.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_user</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_service.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_service</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_state</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_tty</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_type.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_type</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_uid</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_vt.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_vt</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_remote</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_uid_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_display</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_seats</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_sessions</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_is_on_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_is_on_seat</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="SD_WARNING.html"><span class="citerefentry"><span class="refentrytitle">SD_WARNING</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a> -- Check whether the service manager expects watchdog keep-alive notifications from a service<br><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a> -- Configure kernel parameters at boot<br><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a> -- Control the systemd system and service manager<br><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a> -- systemd system and service manager<br><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a> -- Test socket activation of daemons<br><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a> -- Analyze system boot-up performance<br><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a> -- Query the user for a system password<br><a href="systemd-ask-password-console.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-backlight.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-binfmt.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a> -- Boot performance graphing tool<br><a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a> -- Connect STDIO or a socket to a given bus address<br><a href="systemd-bus-proxyd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd.socket</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a> -- Connect a pipeline or program's output with the journal<br><a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a> -- Recursively show control group contents<br><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a> -- Show top control groups by their resource usage<br><a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a> -- Retrieve coredumps from the journal<br><a href="systemd-cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a> -- Unit generator for<br><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a> -- Find overridden configuration files<br><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a> -- Detect execution in a virtualized environment<br><a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a> -- Generator for automatically mounting the EFI System Partition used by the current boot to<br><a href="systemd-fsck.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck-root.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck-root.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a> -- Unit generator for /etc/fstab<br><a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a> -- Generator for enabling getty instances on the console<br><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a> -- Generator for automatically discovering and mounting root,<br><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-hibernate.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hibernate.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-hostnamed.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hybrid-sleep.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hybrid-sleep.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a> -- Execute a program with an inhibition lock taken<br><a href="systemd-initctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.socket</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-journal-gatewayd.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.socket</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a> -- Stream journal messages over the network<br><a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a> -- Journal service<br><a href="systemd-journald-dev-log.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald-dev-log.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-kexec.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-kexec.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-localed.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-logind.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind</span>(8)</span></a> -- Login manager<br><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a> -- Login manager<br><a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a> -- Initialize the machine ID in /etc/machine-id<br><a href="systemd-machined.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-modules-load.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a> -- Network manager<br><a href="systemd-networkd-wait-online.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a> -- Network manager<br><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a> -- Spawn a namespace container for debugging, testing and building<br><a href="systemd-poweroff.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-poweroff.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-quotacheck.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-random-seed.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-readahead.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-collect.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-collect.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.timer</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-reboot.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-reboot.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-remount-fs.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-resolved.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-rfkill.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a> -- Run programs in transient scope or service units<br><a href="systemd-shutdown.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdown</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-shutdownd.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.socket</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-sleep.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a> -- Suspend and hibernation configuration file<br><a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a> -- Bidirectionally proxy local sockets to another (possibly remote) socket.<br><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sysctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a> -- Generator for redirecting boot to offline update mode<br><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-timedated.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timesyncd.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.timer</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup-dev.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup-dev.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a> -- List or process pending systemd password requests<br><a href="systemd-udevd.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-control.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-control.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-kernel.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-kernel.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-update-utmp.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp-runlevel.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp-runlevel.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-user-sessions.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-user.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-vconsole-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a> -- Automount unit configuration<br><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a> -- Device unit configuration<br><a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a> -- Index of configuration directives<br><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a> -- Execution environment configuration<br><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a> -- Special journal fields<br><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a> -- Process killing procedure configuration<br><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a> -- Network device configuration<br><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a> -- Mount unit configuration<br><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a> -- Virtual Network Device configuration<br><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a> -- Network configuration<br><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a> -- Path unit configuration<br><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a> -- Service enablement presets<br><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a> -- Resource control unit settings<br><a href="systemd.scope.html"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a> -- Scope unit configuration<br><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a> -- Service unit configuration<br><a href="systemd.slice.html"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a> -- Slice unit configuration<br><a href="systemd.snapshot.html"><span class="citerefentry"><span class="refentrytitle">systemd.snapshot</span>(5)</span></a> -- Snapshot unit configuration<br><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a> -- Socket unit configuration<br><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a> -- Special systemd units<br><a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a> -- Swap unit configuration<br><a href="systemd.target.html"><span class="citerefentry"><span class="refentrytitle">systemd.target</span>(5)</span></a> -- Target unit configuration<br><a href="systemd.time.html"><span class="citerefentry"><span class="refentrytitle">systemd.time</span>(7)</span></a> -- Time and date specifications<br><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a> -- Timer unit configuration<br><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> -- Unit configuration<br></p></div><div class="refsect1"><a name="idm214189595360"></a><h2 id="T">T<a class="headerlink" title="Permalink to this headline" href="#T">¶</a></h2><p><a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a> -- Change SysV runlevel<br><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a> -- Control the system time and date<br><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> -- Configuration for creation, deletion and cleaning of volatile and temporary files<br></p></div><div class="refsect1"><a name="idm214189591968"></a><h2 id="U">U<a class="headerlink" title="Permalink to this headline" href="#U">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a> -- Dynamic device management<br><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a> -- udev management tool<br></p></div><div class="refsect1"><a name="idm214189589568"></a><h2 id="V">V<a class="headerlink" title="Permalink to this headline" href="#V">¶</a></h2><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a> -- Configuration file for the virtual console<br></p></div><div class="refsect1"><a name="idm214189588096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.index"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.index — List all manpages from the systemd project</p></div><div class="refsect1"><a name="idm214175805536"></a><h2 id="B">B<a class="headerlink" title="Permalink to this headline" href="#B">¶</a></h2><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a> -- Configure additional binary formats for executables at boot<br><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a> -- Boot performance analysis graphing tool configuration file<br><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a> -- Control the firmware and boot manager settings<br><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a> -- System bootup process<br><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a> -- Introspect the bus<br></p></div><div class="refsect1"><a name="idm214175800544"></a><h2 id="C">C<a class="headerlink" title="Permalink to this headline" href="#C">¶</a></h2><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a> -- Coredump storage configuration file<br><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a> -- Retrieve coredumps from the journal<br><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a> -- Configuration for encrypted block devices<br></p></div><div class="refsect1"><a name="idm214175797344"></a><h2 id="D">D<a class="headerlink" title="Permalink to this headline" href="#D">¶</a></h2><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a> -- Writing and packaging system daemons<br></p></div><div class="refsect1"><a name="idm214175795936"></a><h2 id="F">F<a class="headerlink" title="Permalink to this headline" href="#F">¶</a></h2><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a> -- File system hierarchy overview<br></p></div><div class="refsect1"><a name="idm214175794528"></a><h2 id="H">H<a class="headerlink" title="Permalink to this headline" href="#H">¶</a></h2><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a> -- Local hostname configuration file<br><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a> -- Control the system hostname<br></p></div><div class="refsect1"><a name="idm214175791328"></a><h2 id="I">I<a class="headerlink" title="Permalink to this headline" href="#I">¶</a></h2><p><a href="init.html"><span class="citerefentry"><span class="refentrytitle">init</span>(1)</span></a> -- systemd system and service manager<br></p></div><div class="refsect1"><a name="idm214175789920"></a><h2 id="J">J<a class="headerlink" title="Permalink to this headline" href="#J">¶</a></h2><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a> -- Query the systemd journal<br><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a> -- Journal service configuration file<br></p></div><div class="refsect1"><a name="idm214175855872"></a><h2 id="K">K<a class="headerlink" title="Permalink to this headline" href="#K">¶</a></h2><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a> -- Kernel command line parameters<br><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a> -- Add and remove kernel and initramfs images to and from /boot<br></p></div><div class="refsect1"><a name="idm214175764816"></a><h2 id="L">L<a class="headerlink" title="Permalink to this headline" href="#L">¶</a></h2><p><a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a> -- Configuration file for locale settings<br><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a> -- Control the system locale and keyboard layout settings<br><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a> -- Local timezone configuration file<br><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a> -- Control the systemd login manager<br><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a> -- Login manager configuration file<br></p></div><div class="refsect1"><a name="idm214175759824"></a><h2 id="M">M<a class="headerlink" title="Permalink to this headline" href="#M">¶</a></h2><p><a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> -- Local machine ID configuration file<br><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a> -- Local machine information file<br><a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a> -- Control the systemd machine manager<br><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a> -- Configure kernel modules to load at boot<br></p></div><div class="refsect1"><a name="idm214175755728"></a><h2 id="N">N<a class="headerlink" title="Permalink to this headline" href="#N">¶</a></h2><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a> -- Provide hostname resolution for the locally configured system hostname.<br></p></div><div class="refsect1"><a name="idm214175754320"></a><h2 id="O">O<a class="headerlink" title="Permalink to this headline" href="#O">¶</a></h2><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a> -- Operating system identification<br></p></div><div class="refsect1"><a name="idm214175752912"></a><h2 id="P">P<a class="headerlink" title="Permalink to this headline" href="#P">¶</a></h2><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a> -- Register user sessions in the systemd login manager<br><a href="poweroff.html"><span class="citerefentry"><span class="refentrytitle">poweroff</span>(8)</span></a> -- Halt, power-off or reboot the machine<br></p></div><div class="refsect1"><a name="idm214175750608"></a><h2 id="R">R<a class="headerlink" title="Permalink to this headline" href="#R">¶</a></h2><p><a href="reboot.html"><span class="citerefentry"><span class="refentrytitle">reboot</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a> -- Network Name Resolution configuration file<br><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a> -- Print previous and current SysV runlevel<br></p></div><div class="refsect1"><a name="idm214175747408"></a><h2 id="S">S<a class="headerlink" title="Permalink to this headline" href="#S">¶</a></h2><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a> -- APIs for submitting and querying log entries to and from the journal<br><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a> -- APIs for tracking logins<br><a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a> -- Reference implementation of APIs for controlling boot-time read-ahead<br><a href="SD_ALERT.html"><span class="citerefentry"><span class="refentrytitle">SD_ALERT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a> -- Test whether the system is running the systemd init system<br><a href="sd_bus_creds_get_audit_login_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_login_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_audit_session_id.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_session_id</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cgroup.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cgroup</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cmdline.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cmdline</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_exe.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_exe</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_gid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_gid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_mask.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_mask</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_owner_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid_starttime.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid_starttime</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_selinux_context.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_selinux_context</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_session</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_slice</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unique_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unique_name</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_user_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_well_known_names.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_well_known_names</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_bounding_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_bounding_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_effective_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_effective_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_inheritable_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_inheritable_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_permitted_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_permitted_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_default_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_default_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_copy.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_copy</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_free.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_free</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_get_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_get_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_has_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_has_name</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_is_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_is_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_const.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_const</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errnof.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errnof</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a> -- Attach parts of message based on a format string<br><a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_iovec</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_memfd</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_space</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a> -- Attach a single part to a message<br><a href="sd_bus_message_append_string_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_iovec</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_space</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a> -- Attach an array of strings to a message<br><a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_realtime_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_reply_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_reply_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_seqnum.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_seqnum</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_negotiate_creds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_creds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_timestamps.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamps</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_open_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_container.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_container</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_remote</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_path_decode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_decode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_ref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_release_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_release_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="SD_CRIT.html"><span class="citerefentry"><span class="refentrytitle">SD_CRIT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_DEBUG.html"><span class="citerefentry"><span class="refentrytitle">SD_DEBUG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_EMERG.html"><span class="citerefentry"><span class="refentrytitle">SD_EMERG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_ERR.html"><span class="citerefentry"><span class="refentrytitle">SD_ERR</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_default.html"><span class="citerefentry"><span class="refentrytitle">sd_event_default</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_ref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_source_get_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_clock.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_clock</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_unref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_get_machine_names.html"><span class="citerefentry"><span class="refentrytitle">sd_get_machine_names</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_get_sessions</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_uids.html"><span class="citerefentry"><span class="refentrytitle">sd_get_uids</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="SD_ID128_CONST_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_CONST_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_equal.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_equal</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_VAL.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_VAL</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_from_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_from_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="sd_id128_get_boot.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_boot</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="sd_id128_get_machine.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_machine</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="SD_ID128_MAKE.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_MAKE</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a> -- Generate 128-bit IDs<br><a href="sd_id128_t.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_t</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="SD_INFO.html"><span class="citerefentry"><span class="refentrytitle">SD_INFO</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_mq.html"><span class="citerefentry"><span class="refentrytitle">sd_is_mq</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_inet.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_inet</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_unix.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_unix</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_special.html"><span class="citerefentry"><span class="refentrytitle">sd_is_special</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_journal.html"><span class="citerefentry"><span class="refentrytitle">sd_journal</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_add_conjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_conjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_disjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_disjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_match.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_match</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_APPEND.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_APPEND</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_close.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_close</span>(3)</span></a> -- Open the system journal for reading<br><a href="SD_JOURNAL_CURRENT_USER.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_CURRENT_USER</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_enumerate_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_enumerate_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_flush_matches.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_flush_matches</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_FOREACH.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_BACKWARDS.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_BACKWARDS</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_DATA.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_DATA</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="SD_JOURNAL_FOREACH_UNIQUE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_UNIQUE</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_get_catalog.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_catalog_for_message_id.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog_for_message_id</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_get_cutoff_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_monotonic_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_events</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_monotonic_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_timeout</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a> -- Journal disk usage<br><a href="SD_JOURNAL_INVALIDATE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_INVALIDATE</span>(3)</span></a> -- Journal change notification interface<br><a href="SD_JOURNAL_LOCAL_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_LOCAL_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_next_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_NOP.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_NOP</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_container.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_container</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_directory.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_directory</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_files.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_files</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_perror.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_perror</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_previous_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_printv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_printv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_process.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_process</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_query_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_query_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_reliable_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_reliable_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_restart_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_restart_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="SD_JOURNAL_RUNTIME_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_RUNTIME_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_monotonic_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_realtime_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_tail.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_tail</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_send.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_send</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_sendv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_sendv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_set_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_set_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a> -- Create log stream file descriptor to the journal<br><a href="SD_JOURNAL_SUPPRESS_LOCATION.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SUPPRESS_LOCATION</span>(3)</span></a> -- Submit log entries to the journal<br><a href="SD_JOURNAL_SYSTEM.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SYSTEM</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_test_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_test_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_wait.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_wait</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="SD_LISTEN_FDS_START.html"><span class="citerefentry"><span class="refentrytitle">SD_LISTEN_FDS_START</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="sd_login_monitor.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_flush.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_flush</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_events</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_fd</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_timeout</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_unref</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="SD_NOTICE.html"><span class="citerefentry"><span class="refentrytitle">SD_NOTICE</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_notifyf.html"><span class="citerefentry"><span class="refentrytitle">sd_notifyf</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_peer_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a> -- Control ongoing disk boot-time read-ahead operations<br><a href="sd_seat_can_graphical.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_graphical</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_multi_session.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_multi_session</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_tty</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_sessions</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_session_get_class.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_class</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_display</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_host.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_host</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_user.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_user</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_service.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_service</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_state</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_tty</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_type.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_type</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_uid</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_vt.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_vt</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_remote</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_uid_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_display</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_seats</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_sessions</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_is_on_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_is_on_seat</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="SD_WARNING.html"><span class="citerefentry"><span class="refentrytitle">SD_WARNING</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a> -- Check whether the service manager expects watchdog keep-alive notifications from a service<br><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a> -- Configure kernel parameters at boot<br><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a> -- Control the systemd system and service manager<br><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a> -- systemd system and service manager<br><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a> -- Test socket activation of daemons<br><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a> -- Analyze system boot-up performance<br><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a> -- Query the user for a system password<br><a href="systemd-ask-password-console.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-backlight.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-binfmt.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a> -- Boot performance graphing tool<br><a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a> -- Connect STDIO or a socket to a given bus address<br><a href="systemd-bus-proxyd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd.socket</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a> -- Connect a pipeline or program's output with the journal<br><a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a> -- Recursively show control group contents<br><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a> -- Show top control groups by their resource usage<br><a href="systemd-cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a> -- Unit generator for<br><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-debug-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-debug-generator</span>(8)</span></a> -- Generator for enabling a runtime debug shell and masking specific units at boot<br><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a> -- Find overridden configuration files<br><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a> -- Detect execution in a virtualized environment<br><a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a> -- Generator for automatically mounting the EFI System Partition used by the current boot to<br><a href="systemd-fsck.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck-root.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck-root.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a> -- Unit generator for /etc/fstab<br><a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a> -- Generator for enabling getty instances on the console<br><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a> -- Generator for automatically discovering and mounting root,<br><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-hibernate.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hibernate.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-hostnamed.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hybrid-sleep.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hybrid-sleep.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a> -- Execute a program with an inhibition lock taken<br><a href="systemd-initctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.socket</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-journal-gatewayd.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.socket</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a> -- Stream journal messages over the network<br><a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a> -- Journal service<br><a href="systemd-journald-dev-log.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald-dev-log.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-kexec.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-kexec.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-localed.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-logind.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind</span>(8)</span></a> -- Login manager<br><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a> -- Login manager<br><a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a> -- Initialize the machine ID in /etc/machine-id<br><a href="systemd-machined.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-modules-load.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a> -- Network manager<br><a href="systemd-networkd-wait-online.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a> -- Network manager<br><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a> -- Spawn a namespace container for debugging, testing and building<br><a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a> -- List and query system and user paths<br><a href="systemd-poweroff.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-poweroff.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-quotacheck.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-random-seed.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-readahead.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-collect.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-collect.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.timer</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-reboot.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-reboot.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-remount-fs.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-resolved.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-rfkill.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a> -- Run programs in transient scope or service units<br><a href="systemd-shutdown.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdown</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-shutdownd.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.socket</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-sleep.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a> -- Suspend and hibernation configuration file<br><a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a> -- Bidirectionally proxy local sockets to another (possibly remote) socket.<br><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sysctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a> -- Generator for redirecting boot to offline update mode<br><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a> -- Allocate system users and groups<br><a href="systemd-sysusers.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers.service</span>(8)</span></a> -- Allocate system users and groups<br><a href="systemd-timedated.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timesyncd.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.timer</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup-dev.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup-dev.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a> -- List or process pending systemd password requests<br><a href="systemd-udevd.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-control.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-control.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-kernel.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-kernel.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-update-done.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done</span>(8)</span></a> -- Mark<br><a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a> -- Mark<br><a href="systemd-update-utmp.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp-runlevel.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp-runlevel.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-user-sessions.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-user.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-vconsole-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a> -- Automount unit configuration<br><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a> -- Device unit configuration<br><a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a> -- Index of configuration directives<br><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a> -- Execution environment configuration<br><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a> -- Special journal fields<br><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a> -- Process killing procedure configuration<br><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a> -- Network device configuration<br><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a> -- Mount unit configuration<br><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a> -- Virtual Network Device configuration<br><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a> -- Network configuration<br><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a> -- Path unit configuration<br><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a> -- Service enablement presets<br><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a> -- Resource control unit settings<br><a href="systemd.scope.html"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a> -- Scope unit configuration<br><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a> -- Service unit configuration<br><a href="systemd.slice.html"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a> -- Slice unit configuration<br><a href="systemd.snapshot.html"><span class="citerefentry"><span class="refentrytitle">systemd.snapshot</span>(5)</span></a> -- Snapshot unit configuration<br><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a> -- Socket unit configuration<br><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a> -- Special systemd units<br><a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a> -- Swap unit configuration<br><a href="systemd.target.html"><span class="citerefentry"><span class="refentrytitle">systemd.target</span>(5)</span></a> -- Target unit configuration<br><a href="systemd.time.html"><span class="citerefentry"><span class="refentrytitle">systemd.time</span>(7)</span></a> -- Time and date specifications<br><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a> -- Timer unit configuration<br><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> -- Unit configuration<br><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a> -- Declarative allocation of system users and groups<br></p></div><div class="refsect1"><a name="idm214175387472"></a><h2 id="T">T<a class="headerlink" title="Permalink to this headline" href="#T">¶</a></h2><p><a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a> -- Change SysV runlevel<br><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a> -- Control the system time and date<br><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> -- Configuration for creation, deletion and cleaning of volatile and temporary files<br></p></div><div class="refsect1"><a name="idm214175383984"></a><h2 id="U">U<a class="headerlink" title="Permalink to this headline" href="#U">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a> -- Dynamic device management<br><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a> -- udev management tool<br></p></div><div class="refsect1"><a name="idm214175381520"></a><h2 id="V">V<a class="headerlink" title="Permalink to this headline" href="#V">¶</a></h2><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a> -- Configuration file for the virtual console<br></p></div><div class="refsect1"><a name="idm214175380016"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
- </p><p><a name="counts"></a>This index contains 403 entries, referring to 173 individual manual pages.</p></div></div></body></html>
+ </p><p><a name="counts"></a>This index contains 412 entries, referring to 180 individual manual pages.</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd, init — systemd system and service manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">init [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214185400592"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>systemd is a system and service manager for
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd, init — systemd system and service manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">init [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214189898832"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>systemd is a system and service manager for
Linux operating systems. When run as first process on
boot (as PID 1), it acts as init system that brings
up and maintains userspace services.</p><p>For compatibility with SysV, if systemd is called
<code class="filename">system.conf</code>, otherwise
<code class="filename">user.conf</code>. See
<a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a>
- for more information.</p></div><div class="refsect1"><a name="idm214185392096"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--test"><span class="term"><code class="option">--test</code></span><a class="headerlink" title="Permalink to this term" href="#--test">¶</a></dt><dd><p>Determine startup
+ for more information.</p></div><div class="refsect1"><a name="idm214188084384"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--test"><span class="term"><code class="option">--test</code></span><a class="headerlink" title="Permalink to this term" href="#--test">¶</a></dt><dd><p>Determine startup
sequence, dump it and exit. This is an
option useful for debugging
only.</p></dd><dt id="--dump-configuration-items"><span class="term"><code class="option">--dump-configuration-items</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-configuration-items">¶</a></dt><dd><p>Dump understood unit
<code class="option">--default-standard-error=</code>
to
<code class="option">inherit</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186942512"></a><h2 id="Concepts">Concepts<a class="headerlink" title="Permalink to this headline" href="#Concepts">¶</a></h2><p>systemd provides a dependency system between
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189143952"></a><h2 id="Concepts">Concepts<a class="headerlink" title="Permalink to this headline" href="#Concepts">¶</a></h2><p>systemd provides a dependency system between
various entities called "units" of 12 different
types. Units encapsulate various objects that are
relevant for system boot-up and maintenance. The
or initrd environment should implement the
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface" target="_top">Container
Interface</a> or <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface" target="_top">initrd
- Interface</a> specifications, respectively.</p></div><div class="refsect1"><a name="idm214182266208"></a><h2 id="Directories">Directories<a class="headerlink" title="Permalink to this headline" href="#Directories">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="System unit directories"><span class="term">System unit directories</span><a class="headerlink" title="Permalink to this term" href="#System%20unit%20directories">¶</a></dt><dd><p>The systemd system
+ Interface</a> specifications, respectively.</p></div><div class="refsect1"><a name="idm214189453632"></a><h2 id="Directories">Directories<a class="headerlink" title="Permalink to this headline" href="#Directories">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="System unit directories"><span class="term">System unit directories</span><a class="headerlink" title="Permalink to this term" href="#System%20unit%20directories">¶</a></dt><dd><p>The systemd system
manager reads unit configuration from
various directories. Packages that
want to install unit files shall place
unit with a native unit configuration
file cannot be started by activating it
in the SysV runlevel link
- farm.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182243984"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGTERM"><span class="term"><code class="constant">SIGTERM</code></span><a class="headerlink" title="Permalink to this term" href="#SIGTERM">¶</a></dt><dd><p>Upon receiving this
+ farm.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189693872"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGTERM"><span class="term"><code class="constant">SIGTERM</code></span><a class="headerlink" title="Permalink to this term" href="#SIGTERM">¶</a></dt><dd><p>Upon receiving this
signal the systemd system manager
serializes its state, reexecutes
itself and deserializes the saved
<code class="varname">systemd.log_target=syslog-or-kmsg</code>
on <code class="constant">SIGRTMIN+29</code>) on
the kernel command
- line.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182175312"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_LOG_LEVEL"><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LEVEL">¶</a></dt><dd><p>systemd reads the
+ line.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191284560"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_LOG_LEVEL"><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LEVEL">¶</a></dt><dd><p>systemd reads the
log level from this environment
variable. This can be overridden with
<code class="option">--log-level=</code>.</p></dd><dt id="$SYSTEMD_LOG_TARGET"><span class="term"><code class="varname">$SYSTEMD_LOG_TARGET</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_TARGET">¶</a></dt><dd><p>systemd reads the
start-up completion notification. See
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>
for more information.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214182151888"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>When run as system instance systemd parses a
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214191260432"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>When run as system instance systemd parses a
number of kernel command line
- arguments<a href="#ftn.idm214182150864" class="footnote" name="idm214182150864"><sup class="footnote">[1]</sup></a>:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code>, </span><span class="term"><code class="varname">rd.systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p>Overrides the unit to
+ arguments<a href="#ftn.idm214191259376" class="footnote" name="idm214191259376"><sup class="footnote">[1]</sup></a>:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code>, </span><span class="term"><code class="varname">rd.systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p>Overrides the unit to
activate on boot. Defaults to
<code class="filename">default.target</code>. This
may be used to temporarily boot into a
</p></dd></dl></div><p>For other kernel command line parameters
understood by components of the core OS, please refer
to
- <a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214182090736"></a><h2 id="Sockets and FIFOs">Sockets and FIFOs<a class="headerlink" title="Permalink to this headline" href="#Sockets%20and%20FIFOs">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/run/systemd/notify"><span class="term"><code class="filename">/run/systemd/notify</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/notify">¶</a></dt><dd><p>Daemon status
+ <a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214187977552"></a><h2 id="Sockets and FIFOs">Sockets and FIFOs<a class="headerlink" title="Permalink to this headline" href="#Sockets%20and%20FIFOs">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/run/systemd/notify"><span class="term"><code class="filename">/run/systemd/notify</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/notify">¶</a></dt><dd><p>Daemon status
notification socket. This is an
<code class="constant">AF_UNIX</code> datagram socket and is used to
implement the daemon notification
unit. This is a named pipe in the file
system. This interface is obsolete and
should not be used in new
- applications.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182077552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ applications.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187964368"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
The <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/" target="_top">systemd Homepage</a>,
<a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a>,
<a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>,
<a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>,
<a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a>,
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
- </p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm214182150864" class="footnote"><p><a href="#idm214182150864" class="para"><sup class="para">[1] </sup></a>If run inside a Linux
+ </p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm214191259376" class="footnote"><p><a href="#idm214191259376" class="para"><sup class="para">[1] </sup></a>If run inside a Linux
container these arguments may be passed as command
line arguments to systemd itself, next to any of the
command line options listed in the Options section
'\" t
-.TH "JOURNALCTL" "1" "" "systemd 214" "journalctl"
+.TH "JOURNALCTL" "1" "" "systemd 215" "journalctl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="journalctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>journalctl — Query the systemd journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">journalctl</code> [OPTIONS...] [MATCHES...]</p></div></div><div class="refsect1"><a name="idm214199609344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>journalctl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="journalctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>journalctl — Query the systemd journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">journalctl</code> [OPTIONS...] [MATCHES...]</p></div></div><div class="refsect1"><a name="idm214192081472"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>journalctl</strong></span> may be used to
query the contents of the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
journal as written by
according to priority: lines of level ERROR and higher
are colored red; lines of level NOTICE and higher are
highlighted; other lines are displayed normally.
- </p></div><div class="refsect1"><a name="idm214203547184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-full"><span class="term"><code class="option">--no-full</code>, </span><span class="term"><code class="option">--full</code>, </span><span class="term"><code class="option">-l</code></span><a class="headerlink" title="Permalink to this term" href="#--no-full">¶</a></dt><dd><p>Ellipsize fields when
+ </p></div><div class="refsect1"><a name="idm214193028176"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-full"><span class="term"><code class="option">--no-full</code>, </span><span class="term"><code class="option">--full</code>, </span><span class="term"><code class="option">-l</code></span><a class="headerlink" title="Permalink to this term" href="#--no-full">¶</a></dt><dd><p>Ellipsize fields when
they do not fit in available columns.
The default is to show full fields,
allowing them to wrap or be truncated
verification key to use for the
<code class="option">--verify</code>
operation.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214198407696"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned; otherwise, a non-zero
- failure code is returned.</p></div><div class="refsect1"><a name="idm214190017776"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193157888"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned; otherwise, a non-zero
+ failure code is returned.</p></div><div class="refsect1"><a name="idm214181682304"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214198405936"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Without arguments, all collected logs are shown
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214193156064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Without arguments, all collected logs are shown
unfiltered:</p><pre class="programlisting">journalctl</pre><p>With one match specified, all entries with a field matching the expression are shown:</p><pre class="programlisting">journalctl _SYSTEMD_UNIT=avahi-daemon.service</pre><p>If two different fields are matched, only entries matching both expressions at the same time are shown:</p><pre class="programlisting">journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097</pre><p>If two matches refer to the same field, all entries matching either expression are shown:</p><pre class="programlisting">journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service</pre><p>If the separator "<code class="literal">+</code>" is used,
two expressions may be combined in a logical OR. The
following will show all messages from the Avahi
service process with the PID 28097 plus all messages
from the D-Bus service (from any of its
- processes):</p><pre class="programlisting">journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service</pre><p>Show all logs generated by the D-Bus executable:</p><pre class="programlisting">journalctl /usr/bin/dbus-daemon</pre><p>Show all logs of the kernel device node <code class="filename">/dev/sda</code>:</p><pre class="programlisting">journalctl /dev/sda</pre><p>Show all kernel logs from previous boot:</p><pre class="programlisting">journalctl -k -b -1</pre></div><div class="refsect1"><a name="idm214198394704"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ processes):</p><pre class="programlisting">journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service</pre><p>Show all logs generated by the D-Bus executable:</p><pre class="programlisting">journalctl /usr/bin/dbus-daemon</pre><p>Show all logs of the kernel device node <code class="filename">/dev/sda</code>:</p><pre class="programlisting">journalctl /dev/sda</pre><p>Show all kernel logs from previous boot:</p><pre class="programlisting">journalctl -k -b -1</pre></div><div class="refsect1"><a name="idm214193144192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
'\" t
-.TH "JOURNALD\&.CONF" "5" "" "systemd 214" "journald.conf"
+.TH "JOURNALD\&.CONF" "5" "" "systemd 215" "journald.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\fISplitMode=\fR
.RS 4
Controls whether to split up journal files per user\&. One of
-"login",
-"uid"
+"uid",
+"login"
and
"none"\&. If
-"login", each logged\-in user will get his own journal files, but systemd user IDs will log into the system journal\&. If
-"uid", any user ID will get his own journal files regardless of whether it belongs to a system service or refers to a real logged in user\&. If
+"uid", all users will get each their own journal files regardless of whether they possess a login session or not, however system users will log into the system journal\&. If
+"login", actually logged\-in users will get each their own journal files, but users without login session and system users will log into the system journal\&. If
"none", journal files are not split up by user and all messages are instead stored in the single system journal\&. Note that splitting up journal files by user is only available for journals stored persistently\&. If journals are stored on volatile storage (see above), only a single journal file for all user IDs is kept\&. Defaults to
-"login"\&.
+"uid"\&.
.RE
.PP
\fIRateLimitInterval=\fR, \fIRateLimitBurst=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="journald.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>journald.conf — Journal service configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/journald.conf</code></p></div><div class="refsect1"><a name="idm214187471616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>This file configures various parameters of the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="journald.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>journald.conf — Journal service configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/journald.conf</code></p></div><div class="refsect1"><a name="idm214198630544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>This file configures various parameters of the
systemd journal service,
- <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214187469440"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
+ <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214200500944"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
"<code class="literal">[Journal]</code>" section:</p><div class="variablelist"><dl class="variablelist"><dt id="Storage="><span class="term"><code class="varname">Storage=</code></span><a class="headerlink" title="Permalink to this term" href="#Storage=">¶</a></dt><dd><p>Controls where to
store journal data. One of
"<code class="literal">volatile</code>",
and may be used to protect journal files
from unnoticed alteration.</p></dd><dt id="SplitMode="><span class="term"><code class="varname">SplitMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SplitMode=">¶</a></dt><dd><p>Controls whether to
split up journal files per user. One
- of "<code class="literal">login</code>",
- "<code class="literal">uid</code>" and
- "<code class="literal">none</code>". If
- "<code class="literal">login</code>", each logged-in
- user will get his own journal
- files, but systemd user IDs will log
- into the system journal. If
- "<code class="literal">uid</code>", any user ID
- will get his own journal files
- regardless of whether it belongs to a
- system service or refers to a real
- logged in user. If
+ of "<code class="literal">uid</code>",
+ "<code class="literal">login</code>" and
+ "<code class="literal">none</code>". If
+ "<code class="literal">uid</code>", all users will
+ get each their own journal files
+ regardless of whether they possess a
+ login session or not, however system
+ users will log into the system
+ journal. If "<code class="literal">login</code>",
+ actually logged-in users will get each
+ their own journal files, but users
+ without login session and system users
+ will log into the system journal. If
"<code class="literal">none</code>", journal files
are not split up by user and all
- messages are instead stored in the single
- system journal. Note that splitting
- up journal files by user is only
- available for journals stored
+ messages are instead stored in the
+ single system journal. Note that
+ splitting up journal files by user is
+ only available for journals stored
persistently. If journals are stored
- on volatile storage (see above), only a
- single journal file for all user IDs
+ on volatile storage (see above), only
+ a single journal file for all user IDs
is kept. Defaults to
- "<code class="literal">login</code>".</p></dd><dt id="RateLimitInterval="><span class="term"><code class="varname">RateLimitInterval=</code>, </span><span class="term"><code class="varname">RateLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#RateLimitInterval=">¶</a></dt><dd><p>Configures the rate
+ "<code class="literal">uid</code>".</p></dd><dt id="RateLimitInterval="><span class="term"><code class="varname">RateLimitInterval=</code>, </span><span class="term"><code class="varname">RateLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#RateLimitInterval=">¶</a></dt><dd><p>Configures the rate
limiting that is applied to all
messages generated on the system. If,
in the time interval defined by
to use if
<code class="varname">ForwardToConsole=yes</code>
is used. Defaults to
- <code class="filename">/dev/console</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186341472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="filename">/dev/console</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200261392"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<listitem><para>Controls whether to
split up journal files per user. One
- of <literal>login</literal>,
- <literal>uid</literal> and
- <literal>none</literal>. If
- <literal>login</literal>, each logged-in
- user will get his own journal
- files, but systemd user IDs will log
- into the system journal. If
- <literal>uid</literal>, any user ID
- will get his own journal files
- regardless of whether it belongs to a
- system service or refers to a real
- logged in user. If
+ of <literal>uid</literal>,
+ <literal>login</literal> and
+ <literal>none</literal>. If
+ <literal>uid</literal>, all users will
+ get each their own journal files
+ regardless of whether they possess a
+ login session or not, however system
+ users will log into the system
+ journal. If <literal>login</literal>,
+ actually logged-in users will get each
+ their own journal files, but users
+ without login session and system users
+ will log into the system journal. If
<literal>none</literal>, journal files
are not split up by user and all
- messages are instead stored in the single
- system journal. Note that splitting
- up journal files by user is only
- available for journals stored
+ messages are instead stored in the
+ single system journal. Note that
+ splitting up journal files by user is
+ only available for journals stored
persistently. If journals are stored
- on volatile storage (see above), only a
- single journal file for all user IDs
+ on volatile storage (see above), only
+ a single journal file for all user IDs
is kept. Defaults to
- <literal>login</literal>.</para></listitem>
+ <literal>uid</literal>.</para></listitem>
</varlistentry>
<varlistentry>
'\" t
-.TH "KERNEL\-COMMAND\-LINE" "7" "" "systemd 214" "kernel-command-line"
+.TH "KERNEL\-COMMAND\-LINE" "7" "" "systemd 215" "kernel-command-line"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\fBsystemd\fR(1)\&.
.RE
.PP
+\fIsystemd\&.mask=\fR, \fIsystemd\&.wants=\fR, \fIsystemd\&.debug\-shell\fR
+.RS 4
+Additional parameters understood by
+\fBsystemd-debug-generator\fR(8), to mask or start specific units at boot, or invoke a debug shell on tty9\&.
+.RE
+.PP
\fIsystemd\&.restore_state=\fR
.RS 4
This parameter is understood by several system tools to control whether or not they should restore system state from the previous boot\&. For details, see
\fBsystemd\fR(1)\&.
.RE
.PP
-\fIfsck\&.mode=\fR
-.RS 4
-Parameter understood by the file system checker services\&. For details, see
-\fBsystemd-fsck@.service\fR(8)\&.
-.RE
-.PP
-\fIfsck\&.repair=\fR
+\fIfsck\&.mode=\fR, \fIfsck\&.repair=\fR
.RS 4
-Parameter understood by the file system checker services\&. For details, see
+Parameters understood by the file system checker services\&. For details, see
\fBsystemd-fsck@.service\fR(8)\&.
.RE
.PP
\fBsystemd-fstab-generator\fR(8)\&.
.RE
.PP
+\fIroot=\fR, \fIrootfstype=\fR, \fIrootfsflags=\fR, \fIro\fR, \fIrw\fR
+.RS 4
+Configures the root file system and its file system type and mount options, as well as whether it shall be mounted read\-only or read\-writable initially\&. For details, see
+\fBsystemd-fstab-generator\fR(8)\&.
+.RE
+.PP
+\fIsystemd\&.gpt_auto=\fR, \fIrd\&.systemd\&.gpt_auto=\fR
+.RS 4
+Configures whether GPT based partition auto\-discovery shall be attempted\&. For details, see
+\fBsystemd-gpt-auto-generator\fR(8)\&.
+.RE
+.PP
\fImodules\-load=\fR, \fIrd\&.modules\-load=\fR
.RS 4
Load a specific kernel module early at boot\&. For details, see
\fBsystemd\fR(1),
\fBbootparam\fR(7),
\fBdracut.cmdline\fR(7),
+\fBsystemd-debug-generator\fR(8),
\fBsystemd-fsck@.service\fR(8),
\fBsystemd-quotacheck.service\fR(8),
\fBsystemd-journald.service\fR(8),
\fBplymouth\fR(8),
\fBsystemd-cryptsetup-generator\fR(8),
\fBsystemd-fstab-generator\fR(8),
-\fBsystemd-modules-load.service\fR(8)\fBsystemd-backlight@.service\fR(8)\fBsystemd-rfkill@.service\fR(8)
+\fBsystemd-gpt-auto-generator\fR(8),
+\fBsystemd-modules-load.service\fR(8),
+\fBsystemd-backlight@.service\fR(8),
+\fBsystemd-rfkill@.service\fR(8)
.SH "NOTES"
.IP " 1." 4
kernel-parameters.txt
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="kernel-command-line"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>kernel-command-line — Kernel command line parameters</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/proc/cmdline</code></p></div><div class="refsect1"><a name="idm214191637456"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The kernel, the initial RAM disk (initrd) and
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="kernel-command-line"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>kernel-command-line — Kernel command line parameters</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/proc/cmdline</code></p></div><div class="refsect1"><a name="idm214185265888"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The kernel, the initial RAM disk (initrd) and
basic userspace functionality may be configured at boot via
kernel command line arguments.</p><p>For command line parameters understood by the
kernel, please see <a class="ulink" href="https://www.kernel.org/doc/Documentation/kernel-parameters.txt" target="_top"><code class="filename">kernel-parameters.txt</code></a>
initial RAM disk, please see
<a href="dracut.cmdline.html"><span class="citerefentry"><span class="refentrytitle">dracut.cmdline</span>(7)</span></a>,
or the documentation of the specific initrd
- implementation of your installation.</p></div><div class="refsect1"><a name="idm214191632352"></a><h2 id="Core OS Command Line Arguments">Core OS Command Line Arguments<a class="headerlink" title="Permalink to this headline" href="#Core%20OS%20Command%20Line%20Arguments">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code>, </span><span class="term"><code class="varname">rd.systemd.unit=</code>, </span><span class="term"><code class="varname">systemd.dump_core=</code>, </span><span class="term"><code class="varname">systemd.crash_shell=</code>, </span><span class="term"><code class="varname">systemd.crash_chvt=</code>, </span><span class="term"><code class="varname">systemd.confirm_spawn=</code>, </span><span class="term"><code class="varname">systemd.show_status=</code>, </span><span class="term"><code class="varname">systemd.log_target=</code>, </span><span class="term"><code class="varname">systemd.log_level=</code>, </span><span class="term"><code class="varname">systemd.log_color=</code>, </span><span class="term"><code class="varname">systemd.log_location=</code>, </span><span class="term"><code class="varname">systemd.default_standard_output=</code>, </span><span class="term"><code class="varname">systemd.default_standard_error=</code>, </span><span class="term"><code class="varname">systemd.setenv=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p>Parameters understood by
+ implementation of your installation.</p></div><div class="refsect1"><a name="idm214183797568"></a><h2 id="Core OS Command Line Arguments">Core OS Command Line Arguments<a class="headerlink" title="Permalink to this headline" href="#Core%20OS%20Command%20Line%20Arguments">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code>, </span><span class="term"><code class="varname">rd.systemd.unit=</code>, </span><span class="term"><code class="varname">systemd.dump_core=</code>, </span><span class="term"><code class="varname">systemd.crash_shell=</code>, </span><span class="term"><code class="varname">systemd.crash_chvt=</code>, </span><span class="term"><code class="varname">systemd.confirm_spawn=</code>, </span><span class="term"><code class="varname">systemd.show_status=</code>, </span><span class="term"><code class="varname">systemd.log_target=</code>, </span><span class="term"><code class="varname">systemd.log_level=</code>, </span><span class="term"><code class="varname">systemd.log_color=</code>, </span><span class="term"><code class="varname">systemd.log_location=</code>, </span><span class="term"><code class="varname">systemd.default_standard_output=</code>, </span><span class="term"><code class="varname">systemd.default_standard_error=</code>, </span><span class="term"><code class="varname">systemd.setenv=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p>Parameters understood by
the system and service manager
to control system behavior. For details, see
- <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p></dd><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p>This parameter is understood by
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p></dd><dt id="systemd.mask="><span class="term"><code class="varname">systemd.mask=</code>, </span><span class="term"><code class="varname">systemd.wants=</code>, </span><span class="term"><code class="varname">systemd.debug-shell</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.mask=">¶</a></dt><dd><p>Additional parameters
+ understood by
+ <a href="systemd-debug-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-debug-generator</span>(8)</span></a>,
+ to mask or start specific
+ units at boot, or invoke a
+ debug shell on tty9.</p></dd><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p>This parameter is understood by
several system tools to control
whether or not they should restore
system state from the previous boot.
the system and service manager
to control locale and language
settings. For details, see
- <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p></dd><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p>Parameter understood by
- the file system checker
- services. For details, see
- <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>.</p></dd><dt id="fsck.repair="><span class="term"><code class="varname">fsck.repair=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.repair=">¶</a></dt><dd><p>Parameter understood by
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p></dd><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code>, </span><span class="term"><code class="varname">fsck.repair=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p>Parameters understood by
the file system checker
services. For details, see
<a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>.</p></dd><dt id="quotacheck.mode="><span class="term"><code class="varname">quotacheck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#quotacheck.mode=">¶</a></dt><dd><p>Parameter understood by
<a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></dd><dt id="fstab="><span class="term"><code class="varname">fstab=</code>, </span><span class="term"><code class="varname">rd.fstab=</code></span><a class="headerlink" title="Permalink to this term" href="#fstab=">¶</a></dt><dd><p>Configures the
<code class="filename">/etc/fstab</code>
logic at boot. For details, see
- <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a>.</p></dd><dt id="modules-load="><span class="term"><code class="varname">modules-load=</code>, </span><span class="term"><code class="varname">rd.modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#modules-load=">¶</a></dt><dd><p>Load a specific kernel
+ <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a>.</p></dd><dt id="root="><span class="term"><code class="varname">root=</code>, </span><span class="term"><code class="varname">rootfstype=</code>, </span><span class="term"><code class="varname">rootfsflags=</code>, </span><span class="term"><code class="varname">ro</code>, </span><span class="term"><code class="varname">rw</code></span><a class="headerlink" title="Permalink to this term" href="#root=">¶</a></dt><dd><p>Configures the root file
+ system and its file system
+ type and mount options, as
+ well as whether it shall be
+ mounted read-only or
+ read-writable initially. For
+ details, see
+ <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a>.</p></dd><dt id="systemd.gpt_auto="><span class="term"><code class="varname">systemd.gpt_auto=</code>, </span><span class="term"><code class="varname">rd.systemd.gpt_auto=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.gpt_auto=">¶</a></dt><dd><p>Configures whether GPT
+ based partition auto-discovery
+ shall be attempted. For
+ details, see
+ <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>.</p></dd><dt id="modules-load="><span class="term"><code class="varname">modules-load=</code>, </span><span class="term"><code class="varname">rd.modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#modules-load=">¶</a></dt><dd><p>Load a specific kernel
module early at boot. For
details, see
- <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214190534208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184989504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="bootparam.html"><span class="citerefentry"><span class="refentrytitle">bootparam</span>(7)</span></a>,
<a href="dracut.cmdline.html"><span class="citerefentry"><span class="refentrytitle">dracut.cmdline</span>(7)</span></a>,
+ <a href="systemd-debug-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-debug-generator</span>(8)</span></a>,
<a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>,
<a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
<a href="plymouth.html"><span class="citerefentry"><span class="refentrytitle">plymouth</span>(8)</span></a>,
<a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>,
<a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a>,
- <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>
- <a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a>
+ <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>,
+ <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>,
+ <a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a>,
<a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a>
</p></div></div></body></html>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>systemd.mask=</varname></term>
+ <term><varname>systemd.wants=</varname></term>
+ <term><varname>systemd.debug-shell</varname></term>
+ <listitem>
+ <para>Additional parameters
+ understood by
+ <citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ to mask or start specific
+ units at boot, or invoke a
+ debug shell on tty9.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>systemd.restore_state=</varname></term>
<listitem>
<varlistentry>
<term><varname>fsck.mode=</varname></term>
-
- <listitem>
- <para>Parameter understood by
- the file system checker
- services. For details, see
- <citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term><varname>fsck.repair=</varname></term>
<listitem>
- <para>Parameter understood by
+ <para>Parameters understood by
the file system checker
services. For details, see
<citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>root=</varname></term>
+ <term><varname>rootfstype=</varname></term>
+ <term><varname>rootfsflags=</varname></term>
+ <term><varname>ro</varname></term>
+ <term><varname>rw</varname></term>
+
+ <listitem>
+ <para>Configures the root file
+ system and its file system
+ type and mount options, as
+ well as whether it shall be
+ mounted read-only or
+ read-writable initially. For
+ details, see
+ <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>systemd.gpt_auto=</varname></term>
+ <term><varname>rd.systemd.gpt_auto=</varname></term>
+
+ <listitem>
+ <para>Configures whether GPT
+ based partition auto-discovery
+ shall be attempted. For
+ details, see
+ <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>modules-load=</varname></term>
<term><varname>rd.modules-load=</varname></term>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>bootparam</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
- <citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
'\" t
-.TH "KERNEL\-INSTALL" "8" "" "systemd 214" "kernel-install"
+.TH "KERNEL\-INSTALL" "8" "" "systemd 215" "kernel-install"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
/boot/loader/entries/\fIMACHINE\-ID\fR\-\fIKERNEL\-VERSION\fR\&.conf\&. The title of the entry is the
\fIPRETTY_NAME\fR
parameter specified in
-/etc/os\-release, or "Linux
+/etc/os\-release
+or
+/usr/lib/os\-release
+(if the former is missing), or "Linux
\fIKERNEL\-VERSION\fR", if unset\&. If the file
initrd
is found next to the
\fIMACHINE\-ID\fR\&.
.RE
.PP
-/etc/os\-release
+/etc/os\-release /usr/lib/os\-release
.RS 4
The content of the file specifies the operating system title
\fIPRETTY_NAME\fR\&.
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="kernel-install"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>kernel-install — Add and remove kernel and initramfs images to and from /boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">kernel-install</code> COMMAND <em class="replaceable"><code>KERNEL-VERSION</code></em> [<em class="replaceable"><code>KERNEL-IMAGE</code></em>]</p></div></div><div class="refsect1"><a name="idm214197470224"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="kernel-install"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>kernel-install — Add and remove kernel and initramfs images to and from /boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">kernel-install</code> COMMAND <em class="replaceable"><code>KERNEL-VERSION</code></em> [<em class="replaceable"><code>KERNEL-IMAGE</code></em>]</p></div></div><div class="refsect1"><a name="idm214177157904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
<span class="command"><strong>kernel-install</strong></span> is used to install and remove kernel and
initramfs images to and from <code class="filename">/boot</code>.
</p><p><span class="command"><strong>kernel-install</strong></span> will execute the files
executables with a local file if needed; a symbolic link in <code class="filename">/etc/kernel/install.d/</code>
with the same name as an executable in <code class="filename">/usr/lib/kernel/install.d/</code>,
pointing to /dev/null, disables the executable entirely. Executables must have the
- extension "<code class="literal">.install</code>"; other extensions are ignored.</p></div><div class="refsect1"><a name="idm214197461328"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="add KERNEL-VERSION KERNEL-IMAGE"><span class="term"><span class="command"><strong>add <em class="replaceable"><code>KERNEL-VERSION</code></em> <em class="replaceable"><code>KERNEL-IMAGE</code></em></strong></span></span><a class="headerlink" title="Permalink to this term" href="#add%20KERNEL-VERSION%20KERNEL-IMAGE">¶</a></dt><dd><p><span class="command"><strong>kernel-install</strong></span> creates the directory
+ extension "<code class="literal">.install</code>"; other extensions are ignored.</p></div><div class="refsect1"><a name="idm214178545168"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="add KERNEL-VERSION KERNEL-IMAGE"><span class="term"><span class="command"><strong>add <em class="replaceable"><code>KERNEL-VERSION</code></em> <em class="replaceable"><code>KERNEL-IMAGE</code></em></strong></span></span><a class="headerlink" title="Permalink to this term" href="#add%20KERNEL-VERSION%20KERNEL-IMAGE">¶</a></dt><dd><p><span class="command"><strong>kernel-install</strong></span> creates the directory
<code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code>
and calls every executable
<code class="filename">/usr/lib/kernel/install.d/*.install</code> and
<code class="filename">/etc/kernel/install.d/*.install</code> with
the arguments
</p><pre class="programlisting">add <em class="replaceable"><code>KERNEL-VERSION</code></em> <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code></pre><p>
- </p><p>The kernel-install plugin <code class="filename">50-depmod.install</code> runs depmod for the <em class="replaceable"><code>KERNEL-VERSION</code></em>.</p><p>The kernel-install plugin <code class="filename">90-loaderentry.install</code> copies
+ </p><p>The kernel-install plugin <code class="filename">50-depmod.install</code> runs depmod for the <em class="replaceable"><code>KERNEL-VERSION</code></em>.</p><p>The kernel-install plugin
+ <code class="filename">90-loaderentry.install</code> copies
<em class="replaceable"><code>KERNEL-IMAGE</code></em> to
<code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/linux</code>.
- It also creates a boot loader entry according to the boot loader specification in
+ It also creates a boot loader entry according to the boot
+ loader specification in
<code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code>.
- The title of the entry is the <em class="replaceable"><code>PRETTY_NAME</code></em> parameter specified in <code class="filename">/etc/os-release</code>,
- or "Linux <em class="replaceable"><code>KERNEL-VERSION</code></em>", if unset.
- If the file <code class="filename">initrd</code> is found next to the
+ The title of the entry is the
+ <em class="replaceable"><code>PRETTY_NAME</code></em> parameter specified
+ in <code class="filename">/etc/os-release</code> or
+ <code class="filename">/usr/lib/os-release</code> (if the former is
+ missing), or "Linux
+ <em class="replaceable"><code>KERNEL-VERSION</code></em>", if unset. If
+ the file <code class="filename">initrd</code> is found next to the
<code class="filename">linux</code> file, the initrd will be added to
the configuration.</p></dd><dt id="remove KERNEL-VERSION"><span class="term"><span class="command"><strong>remove <em class="replaceable"><code>KERNEL-VERSION</code></em></strong></span></span><a class="headerlink" title="Permalink to this term" href="#remove%20KERNEL-VERSION">¶</a></dt><dd><p>Calls every executable <code class="filename">/usr/lib/kernel/install.d/*.install</code>
and <code class="filename">/etc/kernel/install.d/*.install</code> with the arguments
</p><pre class="programlisting">remove <em class="replaceable"><code>KERNEL-VERSION</code></em> <code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code></pre><p>
</p><p><span class="command"><strong>kernel-install</strong></span> removes the entire directory
<code class="filename">/boot/<em class="replaceable"><code>MACHINE-ID</code></em>/<em class="replaceable"><code>KERNEL-VERSION</code></em>/</code> afterwards.</p><p>The kernel-install plugin <code class="filename">90-loaderentry.install</code> removes the file
- <code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214201375872"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>If every executable returns with 0, 0 is returned, a non-zero failure code otherwise.</p></div><div class="refsect1"><a name="idm214201374688"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="
+ <code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214176177616"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>If every executable returns with 0, 0 is returned, a non-zero failure code otherwise.</p></div><div class="refsect1"><a name="idm214178783696"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="
/usr/lib/kernel/install.d/*.install
/etc/kernel/install.d/*.install
"><span class="term">
<code class="filename">/etc/machine-id</code>
</span><a class="headerlink" title="Permalink to this term" href="#%0A%20%20%20%20%20%20%20%20%20%20/etc/machine-id%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>The content of the file specifies the machine identification <em class="replaceable"><code>MACHINE-ID</code></em>.</p></dd><dt id="
/etc/os-release
+ /usr/lib/os-release
"><span class="term">
<code class="filename">/etc/os-release</code>
- </span><a class="headerlink" title="Permalink to this term" href="#%0A%20%20%20%20%20%20%20%20%20%20/etc/os-release%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>The content of the file specifies the operating system title <em class="replaceable"><code>PRETTY_NAME</code></em>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196394944"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="filename">/usr/lib/os-release</code>
+ </span><a class="headerlink" title="Permalink to this term" href="#%0A%20%20%20%20%20%20%20%20%20%20/etc/os-release%0A%20%20%20%20%20%20%20%20%20%20/usr/lib/os-release%0A%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>The content of the file specifies the operating system title <em class="replaceable"><code>PRETTY_NAME</code></em>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214176828720"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>,
<a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>,
<a class="ulink" href="http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec" target="_top">Boot loader specification</a>
<para>The kernel-install plugin <filename>50-depmod.install</filename> runs depmod for the <replaceable>KERNEL-VERSION</replaceable>.</para>
- <para>The kernel-install plugin <filename>90-loaderentry.install</filename> copies
+ <para>The kernel-install plugin
+ <filename>90-loaderentry.install</filename> copies
<replaceable>KERNEL-IMAGE</replaceable> to
<filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/linux</filename>.
- It also creates a boot loader entry according to the boot loader specification in
+ It also creates a boot loader entry according to the boot
+ loader specification in
<filename>/boot/loader/entries/<replaceable>MACHINE-ID</replaceable>-<replaceable>KERNEL-VERSION</replaceable>.conf</filename>.
- The title of the entry is the <replaceable>PRETTY_NAME</replaceable> parameter specified in <filename>/etc/os-release</filename>,
- or "Linux <replaceable>KERNEL-VERSION</replaceable>", if unset.
- If the file <filename>initrd</filename> is found next to the
+ The title of the entry is the
+ <replaceable>PRETTY_NAME</replaceable> parameter specified
+ in <filename>/etc/os-release</filename> or
+ <filename>/usr/lib/os-release</filename> (if the former is
+ missing), or "Linux
+ <replaceable>KERNEL-VERSION</replaceable>", if unset. If
+ the file <filename>initrd</filename> is found next to the
<filename>linux</filename> file, the initrd will be added to
the configuration.</para>
</listitem>
<varlistentry>
<term>
<filename>/etc/os-release</filename>
+ <filename>/usr/lib/os-release</filename>
</term>
<listitem>
<para>The content of the file specifies the operating system title <replaceable>PRETTY_NAME</replaceable>.</para>
'\" t
-.TH "LOCALE\&.CONF" "5" "" "systemd 214" "locale.conf"
+.TH "LOCALE\&.CONF" "5" "" "systemd 215" "locale.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="locale.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>locale.conf — Configuration file for locale settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/locale.conf</code></p></div><div class="refsect1"><a name="idm214185472736"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/locale.conf</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="locale.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>locale.conf — Configuration file for locale settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/locale.conf</code></p></div><div class="refsect1"><a name="idm214178491184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/locale.conf</code> file
configures system-wide locale settings. It is read at
early-boot by
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p><p>The basic file format of
individual users.</p><p>Depending on the operating system, other
configuration files might be checked for locale
configuration as well, however only as
- fallback.</p></div><div class="refsect1"><a name="idm214185459872"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following locale settings may be set using
+ fallback.</p></div><div class="refsect1"><a name="idm214179144976"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following locale settings may be set using
<code class="filename">/etc/locale.conf</code>:
<code class="varname">LANG=</code>,
<code class="varname">LANGUAGE=</code>,
<code class="varname">LC_ALL</code> may not be configured in
this file. For details about the meaning and semantics
of these settings, refer to
- <a href="locale.html"><span class="citerefentry"><span class="refentrytitle">locale</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214189403152"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214189402480"></a><p class="title"><b>Example 1. German locale with English messages</b></p><div class="example-contents"><p><code class="filename">/etc/locale.conf</code>:</p><pre class="programlisting">LANG=de_DE.UTF-8
-LC_MESSAGES=en_US.UTF-8</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214189399888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="locale.html"><span class="citerefentry"><span class="refentrytitle">locale</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214181208976"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214179536720"></a><p class="title"><b>Example 1. German locale with English messages</b></p><div class="example-contents"><p><code class="filename">/etc/locale.conf</code>:</p><pre class="programlisting">LANG=de_DE.UTF-8
+LC_MESSAGES=en_US.UTF-8</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180959888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="locale.html"><span class="citerefentry"><span class="refentrytitle">locale</span>(7)</span></a>,
<a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a>
'\" t
-.TH "LOCALECTL" "1" "" "systemd 214" "localectl"
+.TH "LOCALECTL" "1" "" "systemd 215" "localectl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="localectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>localectl — Control the system locale and keyboard layout settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">localectl</code> [OPTIONS...] {COMMAND}</p></div></div><div class="refsect1"><a name="idm214170531264"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>localectl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="localectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>localectl — Control the system locale and keyboard layout settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">localectl</code> [OPTIONS...] {COMMAND}</p></div></div><div class="refsect1"><a name="idm214196021920"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>localectl</strong></span> may be used to
query and change the system locale and keyboard layout
settings.</p><p>The system locale controls the language settings
of system services and of the UI before the user logs
layout used on the text console and of the graphical
UI before the user logs in, such as the display
manager, as well as the default for users after
- login.</p></div><div class="refsect1"><a name="idm214170528112"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
+ login.</p></div><div class="refsect1"><a name="idm214196018768"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
for authentication for privileged
operations.</p></dd><dt id="-P"><span class="term"><code class="option">-P</code>, </span><span class="term"><code class="option">--privileged</code></span><a class="headerlink" title="Permalink to this term" href="#-P">¶</a></dt><dd><p>Acquire privileges via PolicyKit
before executing the operation.</p></dd><dt id="--no-convert"><span class="term"><code class="option">--no-convert</code></span><a class="headerlink" title="Permalink to this term" href="#--no-convert">¶</a></dt><dd><p>If
invoked and this option is passed, then
the keymap will not be converted from
the console to X11, or X11 to console,
- respectively.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ respectively.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="status"><span class="term"><span class="command"><strong>status</strong></span></span><a class="headerlink" title="Permalink to this term" href="#status">¶</a></dt><dd><p>Show current settings
of the system locale and keyboard
mapping.</p></dd><dt id="set-locale LOCALE..."><span class="term"><span class="command"><strong>set-locale LOCALE...</strong></span></span><a class="headerlink" title="Permalink to this term" href="#set-locale%20LOCALE...">¶</a></dt><dd><p>Set the system
optionally takes a layout parameter to
limit the output to the variants
suitable for the specific
- layout.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174436688"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214159534976"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+ layout.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199874560"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214186560208"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214174434976"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214199872848"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="locale.html"><span class="citerefentry"><span class="refentrytitle">locale</span>(7)</span></a>,
<a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>,
'\" t
-.TH "LOCALTIME" "5" "" "systemd 214" "localtime"
+.TH "LOCALTIME" "5" "" "systemd 215" "localtime"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="localtime"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>localtime — Local timezone configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/localtime</code> -> <code class="filename">../usr/share/zoneinfo/…</code></p></div><div class="refsect1"><a name="idm214182246256"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/localtime</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="localtime"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>localtime — Local timezone configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/localtime</code> -> <code class="filename">../usr/share/zoneinfo/…</code></p></div><div class="refsect1"><a name="idm214172654304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/localtime</code> file
configures the system-wide timezone of the local
system that is used by applications for presentation
to the user. It should be an absolute or relative
<a href="environ.html"><span class="citerefentry"><span class="refentrytitle">environ</span>(7)</span></a>.</p><p>You may use
<a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>
to change the settings of this file from the command
- line.</p></div><div class="refsect1"><a name="idm214182237088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ line.</p></div><div class="refsect1"><a name="idm214173999696"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="tzset.html"><span class="citerefentry"><span class="refentrytitle">tzset</span>(3)</span></a>,
<a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(3)</span></a>,
'\" t
-.TH "LOGINCTL" "1" "" "systemd 214" "loginctl"
+.TH "LOGINCTL" "1" "" "systemd 215" "loginctl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="loginctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>loginctl — Control the systemd login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">loginctl</code> [OPTIONS...] {COMMAND} [NAME...]</p></div></div><div class="refsect1"><a name="idm214183535024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>loginctl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="loginctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>loginctl — Control the systemd login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">loginctl</code> [OPTIONS...] {COMMAND} [NAME...]</p></div></div><div class="refsect1"><a name="idm214184892112"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>loginctl</strong></span> may be used to
introspect and control the state of the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
- login manager <a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214183531520"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p>Do not print the legend,
+ login manager <a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214184888608"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p>Do not print the legend,
i.e. the column headers and
the footer.</p></dd><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
for authentication for privileged
<code class="constant">SIGINT</code> or
<code class="constant">SIGSTOP</code>. If
omitted, defaults to
- <code class="constant">SIGTERM</code>.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ <code class="constant">SIGTERM</code>.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="list-sessions"><span class="term"><span class="command"><strong>list-sessions</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-sessions">¶</a></dt><dd><p>List current sessions.</p></dd><dt id="session-status ID..."><span class="term"><span class="command"><strong>session-status</strong></span> <em class="replaceable"><code>ID</code></em>...</span><a class="headerlink" title="Permalink to this term" href="#session-status%20ID...">¶</a></dt><dd><p>Show terse runtime
status information about one or more
sessions on a seat. This kills all
processes of all sessions on the seat
and deallocates all runtime resources
- attached to them.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182411776"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214168340064"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+ attached to them.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183768240"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214172220528"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214182410128"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214183766592"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
'\" t
-.TH "LOGIND\&.CONF" "5" "" "systemd 214" "logind.conf"
+.TH "LOGIND\&.CONF" "5" "" "systemd 215" "logind.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="logind.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>logind.conf — Login manager configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/logind.conf</code></p></div><div class="refsect1"><a name="idm214188150608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>This file configures various parameters of the systemd login manager, <a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214188148624"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="logind.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>logind.conf — Login manager configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/logind.conf</code></p></div><div class="refsect1"><a name="idm214189817760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>This file configures various parameters of the systemd login manager, <a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214189815776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
"<code class="literal">[Login]</code>" section:</p><div class="variablelist"><dl class="variablelist"><dt id="NAutoVTs="><span class="term"><code class="varname">NAutoVTs=</code></span><a class="headerlink" title="Permalink to this term" href="#NAutoVTs=">¶</a></dt><dd><p>Takes a positive
integer. Configures how many virtual
terminals (VTs) to allocate by default
objects of the root user are excluded
from the effect of this
setting. Defaults to
- "<code class="literal">yes</code>".</p></dd></dl></div></div><div class="refsect1"><a name="idm214187057552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ "<code class="literal">yes</code>".</p></dd></dl></div></div><div class="refsect1"><a name="idm214188723664"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
<a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>,
'\" t
-.TH "MACHINE\-ID" "5" "" "systemd 214" "machine-id"
+.TH "MACHINE\-ID" "5" "" "systemd 215" "machine-id"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="machine-id"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>machine-id — Local machine ID configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/machine-id</code></p></div><div class="refsect1"><a name="idm214179250912"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/machine-id</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="machine-id"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>machine-id — Local machine ID configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/machine-id</code></p></div><div class="refsect1"><a name="idm214174731056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/machine-id</code> file
contains the unique machine ID of the local system
that is set during installation. The machine ID is a
single newline-terminated, hexadecimal, 32-character,
call that POSIX specifies.</p><p>The
<a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>
tool may be used by installer tools to initialize the
- machine ID at install time.</p></div><div class="refsect1"><a name="idm214179244048"></a><h2 id="Relation to OSF UUIDs">Relation to OSF UUIDs<a class="headerlink" title="Permalink to this headline" href="#Relation%20to%20OSF%20UUIDs">¶</a></h2><p>Note that the machine ID historically is not an
+ machine ID at install time.</p></div><div class="refsect1"><a name="idm214175404608"></a><h2 id="Relation to OSF UUIDs">Relation to OSF UUIDs<a class="headerlink" title="Permalink to this headline" href="#Relation%20to%20OSF%20UUIDs">¶</a></h2><p>Note that the machine ID historically is not an
OSF UUID as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
4122</a>, nor a Microsoft GUID; however, starting with
systemd v30, newly generated machine IDs do
id[8] = (id[8] & 0x3F) | 0x80;</pre><p>(This code is inspired by
"<code class="literal">generate_random_uuid()</code>" of
<code class="filename">drivers/char/random.c</code> from the
- Linux kernel sources.)</p></div><div class="refsect1"><a name="idm214179237872"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p>The simple configuration file format of
+ Linux kernel sources.)</p></div><div class="refsect1"><a name="idm214178157136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p>The simple configuration file format of
<code class="filename">/etc/machine-id</code> originates in the
<code class="filename">/var/lib/dbus/machine-id</code> file
introduced by D-Bus. In fact, this latter file might be a
symlink to
- <code class="varname">/etc/machine-id</code>.</p></div><div class="refsect1"><a name="idm214183187600"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="varname">/etc/machine-id</code>.</p></div><div class="refsect1"><a name="idm214177106384"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>,
<a href="gethostid.html"><span class="citerefentry"><span class="refentrytitle">gethostid</span>(3)</span></a>,
'\" t
-.TH "MACHINE\-INFO" "5" "" "systemd 214" "machine-info"
+.TH "MACHINE\-INFO" "5" "" "systemd 215" "machine-info"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="machine-info"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>machine-info — Local machine information file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/machine-info</code></p></div><div class="refsect1"><a name="idm214166856416"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/machine-info</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="machine-info"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>machine-info — Local machine information file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/machine-info</code></p></div><div class="refsect1"><a name="idm214171081520"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/machine-info</code> file
contains machine metadata.</p><p>The basic file format of
<code class="filename">machine-info</code> is a
newline-separated list of environment-like
information as well, however only as fallback.</p><p>You may use
<a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>
to change the settings of this file from the command
- line.</p></div><div class="refsect1"><a name="idm214166850016"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following machine metadata parameters may
+ line.</p></div><div class="refsect1"><a name="idm214172421232"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following machine metadata parameters may
be set using
<code class="filename">/etc/machine-info</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="PRETTY_HOSTNAME="><span class="term"><code class="varname">PRETTY_HOSTNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#PRETTY_HOSTNAME=">¶</a></dt><dd><p>A pretty
human-readable UTF-8 machine identifier
override misdetected configuration or
to manually configure the chassis type
where automatic detection is not
- available.</p></dd></dl></div></div><div class="refsect1"><a name="idm214170784528"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting">PRETTY_HOSTNAME="Lennart's Tablet"
+ available.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172682608"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting">PRETTY_HOSTNAME="Lennart's Tablet"
ICON_NAME=computer-tablet
-CHASSIS=tablet</pre></div><div class="refsect1"><a name="idm214170783072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+CHASSIS=tablet</pre></div><div class="refsect1"><a name="idm214171513408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>,
'\" t
-.TH "MACHINECTL" "1" "" "systemd 214" "machinectl"
+.TH "MACHINECTL" "1" "" "systemd 215" "machinectl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="machinectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>machinectl — Control the systemd machine manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">machinectl</code> [OPTIONS...] {COMMAND} [NAME...]</p></div></div><div class="refsect1"><a name="idm214188302768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>machinectl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="machinectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>machinectl — Control the systemd machine manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">machinectl</code> [OPTIONS...] {COMMAND} [NAME...]</p></div></div><div class="refsect1"><a name="idm214179067312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>machinectl</strong></span> may be used to
introspect and control the state of the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
- virtual machine and container registration manager <a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214188299296"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--property=</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>When showing
+ virtual machine and container registration manager <a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214179063888"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--property=</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>When showing
machine properties, limit the
output to certain properties as
specified by the argument. If not
omitted, defaults to
<code class="constant">SIGTERM</code>.</p></dd><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p>Do not print the legend,
i.e. the column headers and the
- footer.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ footer.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list">¶</a></dt><dd><p>List currently running
virtual machines and containers.
processes of the virtual machine or
container and deallocates all
resources attached to that
- instance.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187229008"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214173152624"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+ instance.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177992512"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214164915280"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214187227360"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214177990864"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a>,
<a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>
'\" t
-.TH "MODULES\-LOAD\&.D" "5" "" "systemd 214" "modules-load.d"
+.TH "MODULES\-LOAD\&.D" "5" "" "systemd 215" "modules-load.d"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="modules-load.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>modules-load.d — Configure kernel modules to load at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/modules-load.d/*.conf</code></p><p><code class="filename">/run/modules-load.d/*.conf</code></p><p><code class="filename">/usr/lib/modules-load.d/*.conf</code></p></div><div class="refsect1"><a name="idm214167144544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="modules-load.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>modules-load.d — Configure kernel modules to load at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/modules-load.d/*.conf</code></p><p><code class="filename">/run/modules-load.d/*.conf</code></p><p><code class="filename">/usr/lib/modules-load.d/*.conf</code></p></div><div class="refsect1"><a name="idm214196413376"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>
reads files from the above directories which contain
kernel modules to load during boot in a static list.
Each configuration file is named in the style of
or similar triggers encoded in the kernel modules
themselves instead of static configuration like
this. In fact, most modern kernel modules are prepared
- for automatic loading already.</p></div><div class="refsect1"><a name="idm214169154336"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>The configuration files should simply contain a
+ for automatic loading already.</p></div><div class="refsect1"><a name="idm214196437360"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>The configuration files should simply contain a
list of kernel module names to load, separated by
newlines. Empty lines and lines whose first
non-whitespace character is # or ; are ignored.</p><p>Each configuration file shall be named in the
recommended way is to place a symlink to
<code class="filename">/dev/null</code> in
<code class="filename">/etc/modules-load.d/</code> bearing the
- same filename.</p></div><div class="refsect1"><a name="idm214168350784"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214167504096"></a><p class="title"><b>Example 1. /etc/modules-load.d/virtio-net.conf example:</b></p><div class="example-contents"><pre class="programlisting"># Load virtio-net.ko at boot
-virtio-net</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214166218944"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ same filename.</p></div><div class="refsect1"><a name="idm214192640896"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214192640224"></a><p class="title"><b>Example 1. /etc/modules-load.d/virtio-net.conf example:</b></p><div class="example-contents"><pre class="programlisting"># Load virtio-net.ko at boot
+virtio-net</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192638576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a>,
<a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>,
'\" t
-.TH "NSS\-MYHOSTNAME" "8" "" "systemd 214" "nss-myhostname"
+.TH "NSS\-MYHOSTNAME" "8" "" "systemd 215" "nss-myhostname"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="nss-myhostname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>nss-myhostname — Provide hostname resolution for the locally
- configured system hostname.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">nss-myhostname.la</code></p></div><div class="refsect1"><a name="idm214169666368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>nss-myhostname</strong></span> is a plugin for the GNU Name Service Switch
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="nss-myhostname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>nss-myhostname — Provide hostname resolution for the locally
+ configured system hostname.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">nss-myhostname.la</code></p></div><div class="refsect1"><a name="idm214168515296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>nss-myhostname</strong></span> is a plugin for the GNU Name Service Switch
(NSS) functionality of the GNU C Library (<span class="command"><strong>glibc</strong></span>)
providing hostname resolution for the locally configured system
hostname as returned by
<code class="filename">/etc/nsswitch.conf</code></p><p>It is recommended to put <code class="option">myhostname</code>
last in the <code class="filename">nsswitch.conf</code> line to make
sure that this mapping is only used as fallback, and any DNS
- or <code class="filename">/etc/hosts</code> based mapping takes precedence.</p></div><div class="refsect1"><a name="idm214172285328"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting"># /etc/nsswitch.conf
+ or <code class="filename">/etc/hosts</code> based mapping takes precedence.</p></div><div class="refsect1"><a name="idm214168875728"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting"># /etc/nsswitch.conf
passwd: compat
group: compat
::1 RAW
127.0.0.2 STREAM
127.0.0.2 DGRAM
-127.0.0.2 RAW</pre><p>In this case the local hostname is <code class="varname">omega</code>.</p></div><div class="refsect1"><a name="idm214169187392"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+127.0.0.2 RAW</pre><p>In this case the local hostname is <code class="varname">omega</code>.</p></div><div class="refsect1"><a name="idm214168869968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
<a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a>,
'\" t
-.TH "OS\-RELEASE" "5" "" "systemd 214" "os-release"
+.TH "OS\-RELEASE" "5" "" "systemd 215" "os-release"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.SH "SYNOPSIS"
.PP
/etc/os\-release
+.PP
+/usr/lib/os\-release
.SH "DESCRIPTION"
.PP
The
/etc/os\-release
-file contains operating system identification data\&.
+and
+/usr/lib/os\-release
+files contain operating system identification data\&.
.PP
The basic file format of
os\-release
is a newline\-separated list of environment\-like shell\-compatible variable assignments\&. It is possible to source the configuration from shell scripts, however, beyond mere variable assignments, no shell features are supported (this means variable expansion is explicitly not supported), allowing applications to read the file without implementing a shell compatible execution engine\&. Variable assignment values should be enclosed in double or single quotes if they include spaces, semicolons or other special characters outside of A\-Z, a\-z, 0\-9\&. All strings should be in UTF\-8 format, and non\-printable characters should not be used\&. If double or single quotes or backslashes are to be used within variable assignments, they should be escaped with backslashes, following shell style\&. It is not supported to concatenate multiple individually quoted strings\&. Lines beginning with "#" shall be ignored as comments\&.
.PP
+The file
/etc/os\-release
-contains data that is defined by the operating system vendor and should not be changed by the administrator\&.
+takes precedence over
+/usr/lib/os\-release\&. Applications should check for the former, and exclusively use its data if it exists, and only fall back to
+/usr/lib/os\-release
+if it is missing\&. Applications should not read data from both files at the same time\&.
+/usr/lib/os\-release
+is the recommended place to store OS release information as part of vendor trees\&. Frequently,
+/etc/os\-release
+is simply a symlink to
+/usr/lib/os\-release, to provide compatibility with applications only looking at
+/etc\&.
+.PP
+os\-release
+contains data that is defined by the operating system vendor and should generally not be changed by the administrator\&.
.PP
As this file only encodes names and identifiers it should not be localized\&.
.PP
-The file
+The
/etc/os\-release
-might be a symlink to another file, but it is important that the file is available from earliest boot on, and hence must be located on the root file system\&.
+and
+/usr/lib/os\-release
+files might be symlinks to other files, but it is important that the file is available from earliest boot on, and hence must be located on the root file system\&.
.PP
For a longer rationale for
-/etc/os\-release
+os\-release
please refer to the
\m[blue]\fBAnnouncement of /etc/os\-release\fR\m[]\&\s-2\u[1]\d\s+2\&.
.SH "OPTIONS"
.PP
The following OS identifications parameters may be set using
-/etc/os\-release:
+os\-release:
.PP
\fINAME=\fR
.RS 4
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="os-release"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>os-release — Operating system identification</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/os-release</code></p></div><div class="refsect1"><a name="idm214197115488"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/os-release</code> file
- contains operating system identification data.</p><p>The basic file format of
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="os-release"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>os-release — Operating system identification</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/os-release</code></p><p><code class="filename">/usr/lib/os-release</code></p></div><div class="refsect1"><a name="idm214179437424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/os-release</code> and
+ <code class="filename">/usr/lib/os-release</code> files contain
+ operating system identification data.</p><p>The basic file format of
<code class="filename">os-release</code> is a newline-separated
list of environment-like shell-compatible variable
assignments. It is possible to source the
backslashes, following shell style. It is not
supported to concatenate multiple individually quoted
strings. Lines beginning with "#" shall be ignored as
- comments.</p><p><code class="filename">/etc/os-release</code> contains
- data that is defined by the operating system vendor
- and should not be changed by the administrator.</p><p>As this file only encodes names and identifiers
- it should not be localized.</p><p>The file <code class="filename">/etc/os-release</code> might
- be a symlink to another file, but it is important that
+ comments.</p><p>The file <code class="filename">/etc/os-release</code>
+ takes precedence over
+ <code class="filename">/usr/lib/os-release</code>. Applications
+ should check for the former, and exclusively use its
+ data if it exists, and only fall back to
+ <code class="filename">/usr/lib/os-release</code> if it is
+ missing. Applications should not read data from both
+ files at the same
+ time. <code class="filename">/usr/lib/os-release</code> is the
+ recommended place to store OS release information as
+ part of vendor trees. Frequently,
+ <code class="filename">/etc/os-release</code> is simply a
+ symlink to <code class="filename">/usr/lib/os-release</code>,
+ to provide compatibility with applications only
+ looking at <code class="filename">/etc</code>.</p><p><code class="filename">os-release</code> contains data
+ that is defined by the operating system vendor and
+ should generally not be changed by the
+ administrator.</p><p>As this file only encodes names and identifiers
+ it should not be localized.</p><p>The <code class="filename">/etc/os-release</code> and
+ <code class="filename">/usr/lib/os-release</code> files might
+ be symlinks to other files, but it is important that
the file is available from earliest boot on, and hence
must be located on the root file system.</p><p>For a longer rationale for
- <code class="filename">/etc/os-release</code> please refer to
- the <a class="ulink" href="http://0pointer.de/blog/projects/os-release" target="_top">Announcement of <code class="filename">/etc/os-release</code></a>.</p></div><div class="refsect1"><a name="idm214193343184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following OS identifications parameters may be set using
- <code class="filename">/etc/os-release</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="NAME="><span class="term"><code class="varname">NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#NAME=">¶</a></dt><dd><p>A string identifying
+ <code class="filename">os-release</code> please refer to
+ the <a class="ulink" href="http://0pointer.de/blog/projects/os-release" target="_top">Announcement of <code class="filename">/etc/os-release</code></a>.</p></div><div class="refsect1"><a name="idm214177858128"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following OS identifications parameters may be set using
+ <code class="filename">os-release</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="NAME="><span class="term"><code class="varname">NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#NAME=">¶</a></dt><dd><p>A string identifying
the operating system, without a
version component, and suitable for
presentation to the user. If not set,
recommended to prefix new fields with an OS specific
name in order to avoid name clashes. Applications
reading this file must ignore unknown fields. Example:
- "<code class="literal">DEBIAN_BTS="debbugs://bugs.debian.org/"</code>"</p></div><div class="refsect1"><a name="idm214197237872"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting">NAME=Fedora
+ "<code class="literal">DEBIAN_BTS="debbugs://bugs.debian.org/"</code>"</p></div><div class="refsect1"><a name="idm214178429520"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting">NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
-BUG_REPORT_URL="https://bugzilla.redhat.com/"</pre></div><div class="refsect1"><a name="idm214192556976"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+BUG_REPORT_URL="https://bugzilla.redhat.com/"</pre></div><div class="refsect1"><a name="idm214180118832"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="lsb_release.html"><span class="citerefentry"><span class="refentrytitle">lsb_release</span>(1)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>,
<refsynopsisdiv>
<para><filename>/etc/os-release</filename></para>
+ <para><filename>/usr/lib/os-release</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
- <para>The <filename>/etc/os-release</filename> file
- contains operating system identification data.</para>
+ <para>The <filename>/etc/os-release</filename> and
+ <filename>/usr/lib/os-release</filename> files contain
+ operating system identification data.</para>
<para>The basic file format of
<filename>os-release</filename> is a newline-separated
strings. Lines beginning with "#" shall be ignored as
comments.</para>
- <para><filename>/etc/os-release</filename> contains
- data that is defined by the operating system vendor
- and should not be changed by the administrator.</para>
+ <para>The file <filename>/etc/os-release</filename>
+ takes precedence over
+ <filename>/usr/lib/os-release</filename>. Applications
+ should check for the former, and exclusively use its
+ data if it exists, and only fall back to
+ <filename>/usr/lib/os-release</filename> if it is
+ missing. Applications should not read data from both
+ files at the same
+ time. <filename>/usr/lib/os-release</filename> is the
+ recommended place to store OS release information as
+ part of vendor trees. Frequently,
+ <filename>/etc/os-release</filename> is simply a
+ symlink to <filename>/usr/lib/os-release</filename>,
+ to provide compatibility with applications only
+ looking at <filename>/etc</filename>.</para>
+
+ <para><filename>os-release</filename> contains data
+ that is defined by the operating system vendor and
+ should generally not be changed by the
+ administrator.</para>
<para>As this file only encodes names and identifiers
it should not be localized.</para>
- <para>The file <filename>/etc/os-release</filename> might
- be a symlink to another file, but it is important that
+ <para>The <filename>/etc/os-release</filename> and
+ <filename>/usr/lib/os-release</filename> files might
+ be symlinks to other files, but it is important that
the file is available from earliest boot on, and hence
must be located on the root file system.</para>
<para>For a longer rationale for
- <filename>/etc/os-release</filename> please refer to
+ <filename>os-release</filename> please refer to
the <ulink
url="http://0pointer.de/blog/projects/os-release">Announcement of <filename>/etc/os-release</filename></ulink>.</para>
</refsect1>
<title>Options</title>
<para>The following OS identifications parameters may be set using
- <filename>/etc/os-release</filename>:</para>
+ <filename>os-release</filename>:</para>
<variablelist>
'\" t
-.TH "PAM_SYSTEMD" "8" "" "systemd 214" "pam_systemd"
+.TH "PAM_SYSTEMD" "8" "" "systemd 215" "pam_systemd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="pam_systemd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>pam_systemd — Register user sessions in the systemd login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">pam_systemd.so</code></p></div><div class="refsect1"><a name="idm214179808064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>pam_systemd</strong></span> registers user
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="pam_systemd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>pam_systemd — Register user sessions in the systemd login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">pam_systemd.so</code></p></div><div class="refsect1"><a name="idm214186414816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>pam_systemd</strong></span> registers user
sessions with the systemd login manager
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
and hence the systemd control group hierarchy.</p><p>On login, this module ensures the following:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If it does not exist yet, the
and all its contents are removed,
too.</p></li></ol></div><p>If the system was not booted up with systemd as
init system, this module does nothing and immediately
- returns PAM_SUCCESS.</p></div><div class="refsect1"><a name="idm214181847936"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="class="><span class="term"><code class="option">class=</code></span><a class="headerlink" title="Permalink to this term" href="#class=">¶</a></dt><dd><p>Takes a string
+ returns PAM_SUCCESS.</p></div><div class="refsect1"><a name="idm214186772272"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="class="><span class="term"><code class="option">class=</code></span><a class="headerlink" title="Permalink to this term" href="#class=">¶</a></dt><dd><p>Takes a string
argument which sets the session class.
The XDG_SESSION_CLASS environmental variable
takes precedence. One of
boolean argument. If yes or without
the argument, the module will log
debugging information as it
- operates.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180105728"></a><h2 id="Module Types Provided">Module Types Provided<a class="headerlink" title="Permalink to this headline" href="#Module%20Types%20Provided">¶</a></h2><p>Only <code class="option">session</code> is provided.</p></div><div class="refsect1"><a name="idm214180104064"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><p>The following environment variables are set for the processes of the user's session:</p><div class="variablelist"><dl class="variablelist"><dt id="$XDG_SESSION_ID"><span class="term"><code class="varname">$XDG_SESSION_ID</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_ID">¶</a></dt><dd><p>A session identifier,
+ operates.</p></dd></dl></div></div><div class="refsect1"><a name="idm214190661408"></a><h2 id="Module Types Provided">Module Types Provided<a class="headerlink" title="Permalink to this headline" href="#Module%20Types%20Provided">¶</a></h2><p>Only <code class="option">session</code> is provided.</p></div><div class="refsect1"><a name="idm214190659744"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><p>The following environment variables are set for the processes of the user's session:</p><div class="variablelist"><dl class="variablelist"><dt id="$XDG_SESSION_ID"><span class="term"><code class="varname">$XDG_SESSION_ID</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_ID">¶</a></dt><dd><p>A session identifier,
suitable to be used in filenames. The
string itself should be considered
opaque, although often it is just the
session shall be registered for, if
any. (Only applies to seats with a VT
available, such as
- "<code class="literal">seat0</code>")</p></dd></dl></div></div><div class="refsect1"><a name="idm214183970688"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting">#%PAM-1.0
+ "<code class="literal">seat0</code>")</p></dd></dl></div></div><div class="refsect1"><a name="idm214190629472"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting">#%PAM-1.0
auth required pam_unix.so
auth required pam_nologin.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
session required pam_loginuid.so
-session required pam_systemd.so</pre></div><div class="refsect1"><a name="idm214183968944"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+session required pam_systemd.so</pre></div><div class="refsect1"><a name="idm214190627728"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
<a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="halt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>halt, poweroff, reboot — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">halt [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">poweroff [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">reboot [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214181158752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>halt</strong></span>,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="halt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>halt, poweroff, reboot — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">halt [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">poweroff [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">reboot [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214185642768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>halt</strong></span>,
<span class="command"><strong>poweroff</strong></span>, <span class="command"><strong>reboot</strong></span>
may be used to halt, power-off or reboot the
- machine.</p></div><div class="refsect1"><a name="idm214181155552"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ machine.</p></div><div class="refsect1"><a name="idm214186089440"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--halt"><span class="term"><code class="option">--halt</code></span><a class="headerlink" title="Permalink to this term" href="#--halt">¶</a></dt><dd><p>Halt the machine,
regardless of which one of the three
commands is invoked.</p></dd><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--poweroff</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Power-off the machine,
power-off, reboot.</p></dd><dt id="-d"><span class="term"><code class="option">-d</code>, </span><span class="term"><code class="option">--no-wtmp</code></span><a class="headerlink" title="Permalink to this term" href="#-d">¶</a></dt><dd><p>Do not write wtmp
shutdown entry.</p></dd><dt id="--no-wall"><span class="term"><code class="option">--no-wall</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wall">¶</a></dt><dd><p>Do not send wall
message before
- halt, power-off, reboot.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185040240"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214185039056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>These are legacy commands available for
- compatibility only.</p></div><div class="refsect1"><a name="idm214185037776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ halt, power-off, reboot.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183375264"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214184284480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>These are legacy commands available for
+ compatibility only.</p></div><div class="refsect1"><a name="idm214184877296"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="halt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>halt, poweroff, reboot — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">halt [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">poweroff [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">reboot [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214181158752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>halt</strong></span>,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="halt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>halt, poweroff, reboot — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">halt [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">poweroff [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">reboot [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214185642768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>halt</strong></span>,
<span class="command"><strong>poweroff</strong></span>, <span class="command"><strong>reboot</strong></span>
may be used to halt, power-off or reboot the
- machine.</p></div><div class="refsect1"><a name="idm214181155552"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ machine.</p></div><div class="refsect1"><a name="idm214186089440"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--halt"><span class="term"><code class="option">--halt</code></span><a class="headerlink" title="Permalink to this term" href="#--halt">¶</a></dt><dd><p>Halt the machine,
regardless of which one of the three
commands is invoked.</p></dd><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--poweroff</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Power-off the machine,
power-off, reboot.</p></dd><dt id="-d"><span class="term"><code class="option">-d</code>, </span><span class="term"><code class="option">--no-wtmp</code></span><a class="headerlink" title="Permalink to this term" href="#-d">¶</a></dt><dd><p>Do not write wtmp
shutdown entry.</p></dd><dt id="--no-wall"><span class="term"><code class="option">--no-wall</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wall">¶</a></dt><dd><p>Do not send wall
message before
- halt, power-off, reboot.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185040240"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214185039056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>These are legacy commands available for
- compatibility only.</p></div><div class="refsect1"><a name="idm214185037776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ halt, power-off, reboot.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183375264"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214184284480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>These are legacy commands available for
+ compatibility only.</p></div><div class="refsect1"><a name="idm214184877296"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>,
'\" t
-.TH "RESOLVED\&.CONF" "5" "" "systemd 214" "resolved.conf"
+.TH "RESOLVED\&.CONF" "5" "" "systemd 215" "resolved.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="resolved.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>resolved.conf — Network Name Resolution configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/resolved.conf</code></p></div><div class="refsect1"><a name="idm214199390896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When starting, systemd-resolved will read the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="resolved.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>resolved.conf — Network Name Resolution configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/resolved.conf</code></p></div><div class="refsect1"><a name="idm214193517248"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When starting, systemd-resolved will read the
configuration file <code class="filename">resolved.conf</code>.
This configuration file determines the fallback DNS
- servers.</p></div><div class="refsect1"><a name="idm214199434720"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="DNS="><span class="term"><code class="varname">DNS=</code></span><a class="headerlink" title="Permalink to this term" href="#DNS=">¶</a></dt><dd><p>A space separated list of IPv4 and IPv6
+ servers.</p></div><div class="refsect1"><a name="idm214193515264"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="DNS="><span class="term"><code class="varname">DNS=</code></span><a class="headerlink" title="Permalink to this term" href="#DNS=">¶</a></dt><dd><p>A space separated list of IPv4 and IPv6
addresses to be used as the fallback DNS servers. Note that
the servers obtained from
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
take precedence. If this option is not given, a compiled-in
- list of DNS servers is used instead.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200712624"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ list of DNS servers is used instead.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193511040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a>,
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
'\" t
-.TH "RUNLEVEL" "8" "" "systemd 214" "runlevel"
+.TH "RUNLEVEL" "8" "" "systemd 215" "runlevel"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="runlevel"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>runlevel — Print previous and current SysV runlevel</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">runlevel [options...]</code> </p></div></div><div class="refsect1"><a name="idm214188970640"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>runlevel</strong></span> prints the previous
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="runlevel"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>runlevel — Print previous and current SysV runlevel</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">runlevel [options...]</code> </p></div></div><div class="refsect1"><a name="idm214176626512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>runlevel</strong></span> prints the previous
and current SysV runlevel if they are known.</p><p>The two runlevel characters are separated by a
single space character. If a runlevel cannot be
determined, N is printed instead. If neither can be
determined, the word "unknown" is printed.</p><p>Unless overridden in the environment, this will
check the utmp database for recent runlevel
- changes.</p></div><div class="refsect1"><a name="idm214189040672"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following option is understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214185202112"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>If one or both runlevels could be determined, 0
- is returned, a non-zero failure code otherwise.</p></div><div class="refsect1"><a name="idm214185200800"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$RUNLEVEL"><span class="term"><code class="varname">$RUNLEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24RUNLEVEL">¶</a></dt><dd><p>If
+ changes.</p></div><div class="refsect1"><a name="idm214176674096"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following option is understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214177014880"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>If one or both runlevels could be determined, 0
+ is returned, a non-zero failure code otherwise.</p></div><div class="refsect1"><a name="idm214175648864"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$RUNLEVEL"><span class="term"><code class="varname">$RUNLEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24RUNLEVEL">¶</a></dt><dd><p>If
<code class="varname">$RUNLEVEL</code> is set,
<span class="command"><strong>runlevel</strong></span> will print
this value as current runlevel and
<code class="varname">$PREVLEVEL</code> is set,
<span class="command"><strong>runlevel</strong></span> will print
this value as previous runlevel and
- ignore utmp.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185193872"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/var/run/utmp"><span class="term"><code class="filename">/var/run/utmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run/utmp">¶</a></dt><dd><p>The utmp database
+ ignore utmp.</p></dd></dl></div></div><div class="refsect1"><a name="idm214175394208"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/var/run/utmp"><span class="term"><code class="filename">/var/run/utmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run/utmp">¶</a></dt><dd><p>The utmp database
<span class="command"><strong>runlevel</strong></span> reads the
previous and current runlevel
- from.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185190160"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This is a legacy command available for compatibility
+ from.</p></dd></dl></div></div><div class="refsect1"><a name="idm214175832096"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This is a legacy command available for compatibility
only. It should not be used anymore, as the concept of
- runlevels is obsolete.</p></div><div class="refsect1"><a name="idm214185188800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ runlevels is obsolete.</p></div><div class="refsect1"><a name="idm214176267456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SD\-DAEMON" "3" "" "systemd 214" "sd-daemon"
+.TH "SD\-DAEMON" "3" "" "systemd 215" "sd-daemon"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
- new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214188016064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — APIs for
+ new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214195900512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-daemon.h</code> provide APIs
for new-style daemons, as implemented by the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
init system.</p><p>See
log level system. To use these prefixes simply prefix
every line with one of these strings. A line that is
not prefixed will be logged at the default log level
- SD_INFO.</p><div class="example"><a name="idm214184167584"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
- NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180497360"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ SD_INFO.</p><div class="example"><a name="idm214195045552"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
+ NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192388800"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184164912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193723968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
'\" t
-.TH "SD\-ID128" "3" "" "systemd 214" "sd-id128"
+.TH "SD\-ID128" "3" "" "systemd 215" "sd-id128"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
'\" t
-.TH "SD\-JOURNAL" "3" "" "systemd 214" "sd-journal"
+.TH "SD\-JOURNAL" "3" "" "systemd 215" "sd-journal"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-journal"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-journal — APIs for submitting and querying log entries to and from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191669744"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-journal.h</code> provides APIs
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-journal"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-journal — APIs for submitting and querying log entries to and from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191623984"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-journal.h</code> provides APIs
to submit and query log entries. The APIs exposed act
both as client for the
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>
tool. Command line access for querying entries from
the journal is available with the
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>
- tool.</p></div><div class="refsect1"><a name="idm214184959616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ tool.</p></div><div class="refsect1"><a name="idm214186032880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187890512"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214189468928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
'\" t
-.TH "SD\-LOGIN" "3" "" "systemd 214" "sd-login"
+.TH "SD\-LOGIN" "3" "" "systemd 215" "sd-login"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-login"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-login — APIs for
- tracking logins</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214168176976"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-login.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-login"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-login — APIs for
+ tracking logins</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203511616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-login.h</code> provides APIs to
introspect and monitor seat, login session and user
status information on the local system. </p><p>See <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/multiseat" target="_top">Multi-Seat
on Linux</a> for an introduction into multi-seat
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
<a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>
for more information about the functions
- implemented.</p></div><div class="refsect1"><a name="idm214161987024"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ implemented.</p></div><div class="refsect1"><a name="idm214195679696"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214170782064"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199735312"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>,
<a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a>,
'\" t
-.TH "SD\-READAHEAD" "3" "" "systemd 214" "sd-readahead"
+.TH "SD\-READAHEAD" "3" "" "systemd 215" "sd-readahead"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-readahead"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-readahead — Reference implementation of APIs for
- controlling boot-time read-ahead</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include "sd-readahead.h"</pre></div></div><div class="refsect1"><a name="idm214181857840"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-readahead.c</code> and
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-readahead"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-readahead — Reference implementation of APIs for
+ controlling boot-time read-ahead</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include "sd-readahead.h"</pre></div></div><div class="refsect1"><a name="idm214198772224"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-readahead.c</code> and
<code class="filename">sd-readahead.h</code> provide a
reference implementation for APIs for controlling boot-time
read-ahead, as implemented by the read-ahead subsystem
init system.</p><p>See
<a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a>
for more information about the function
- implemented.</p></div><div class="refsect1"><a name="idm214184615472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This interface is provided by the reference
+ implemented.</p></div><div class="refsect1"><a name="idm214198767552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This interface is provided by the reference
implementation of APIs for controlling boot-time
read-ahead and distributed with the systemd
package. The algorithms it implements are simple, and
NOPs when -DDISABLE_SYSTEMD is set during
compilation. In addition, if
<code class="filename">sd-readhead.c</code> is compiled on
- non-Linux systems it becomes NOPs.</p></div><div class="refsect1"><a name="idm214180855536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ non-Linux systems it becomes NOPs.</p></div><div class="refsect1"><a name="idm214198760976"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>
'\" t
-.TH "SD_BOOTED" "3" "" "systemd 214" "sd_booted"
+.TH "SD_BOOTED" "3" "" "systemd 215" "sd_booted"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_booted"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_booted — Test whether the system is running the systemd init system</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_booted</b>(</code></td><td>void<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192992288"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_booted()</code> checks whether
- the system was booted up using the systemd init system.</p></div><div class="refsect1"><a name="idm214193063568"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_booted"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_booted — Test whether the system is running the systemd init system</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_booted</b>(</code></td><td>void<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187764176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_booted()</code> checks whether
+ the system was booted up using the systemd init system.</p></div><div class="refsect1"><a name="idm214187730160"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
errno-style error code. If the system was booted up
with systemd as init system, this call returns a
- positive return value, zero otherwise.</p></div><div class="refsect1"><a name="idm214193062144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ positive return value, zero otherwise.</p></div><div class="refsect1"><a name="idm214186466608"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, this function checks whether the
directory <code class="filename">/run/systemd/system/</code>
exists. A simple check like this can also be
implemented trivially in shell or any other
- language.</p></div><div class="refsect1"><a name="idm214189224128"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ language.</p></div><div class="refsect1"><a name="idm214186988832"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
<code class="constant">SD_BUS_CREDS_PID</code>,
<code class="constant">SD_BUS_CREDS_PID_STARTTIME</code>,
<code class="constant">SD_BUS_CREDS_TID</code>,
<code class="constant">SD_BUS_CREDS_UNIQUE_NAME</code>,
<code class="constant">SD_BUS_CREDS_WELL_KNOWN_NAMES</code>,
<code class="constant">_SD_BUS_CREDS_ALL</code>
- </p></div><div class="refsect1"><a name="idm214173440304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
+ </p></div><div class="refsect1"><a name="idm214194089696"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
credentials object and fills it with information about the process
<em class="parameter"><code>pid</code></em>. This pointer to this object will
be stored in <em class="parameter"><code>ret</code></em> pointer.</p><p>The information that will be stored is determined by
<em class="parameter"><code>c</code></em> cannot be used anymore, so futher
calls to <code class="function">sd_bus_creds_ref(c)</code> or
<code class="function">sd_bus_creds_unref(c)</code> are illegal.</p><p><code class="function">sd_bus_creds_unref</code> destroys a reference
- to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214173406800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
+ to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214195301216"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
returns 0 or a positive integer. On failure, it returns a negative
errno-style error code.</p><p><code class="function">sd_bus_creds_get_mask()</code> returns the
mask of successfully acquired fields.</p><p><code class="function">sd_bus_creds_ref</code> always returns the
argument.</p><p><code class="function">sd_bus_creds_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214173401440"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214195571728"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
creates a new object and the caller owns the sole reference. When
not needed anymore, this reference should be destroyed with
<a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a>.
- </p></div><div class="refsect1"><a name="idm214173398528"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
+ </p></div><div class="refsect1"><a name="idm214194091024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
be found.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168765600"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194042464"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
available as a shared library, which can be compiled and linked to
with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214168762688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195915504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
'\" t
-.TH "SD_BUS_CREDS_GET_PID" "3" "" "systemd 214" "sd_bus_creds_get_pid"
+.TH "SD_BUS_CREDS_GET_PID" "3" "" "systemd 215" "sd_bus_creds_get_pid"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179373600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_get_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_get_pid, sd_bus_creds_get_pid_starttime, sd_bus_creds_get_tid, sd_bus_creds_get_uid, sd_bus_creds_get_gid, sd_bus_creds_get_comm, sd_bus_creds_get_tid_comm, sd_bus_creds_get_exe, sd_bus_creds_get_cmdline, sd_bus_creds_get_cgroup, sd_bus_creds_get_unit, sd_bus_creds_get_user_unit, sd_bus_creds_get_slice, sd_bus_creds_get_session, sd_bus_creds_get_owner_uid, sd_bus_creds_has_effective_cap, sd_bus_creds_has_permitted_cap, sd_bus_creds_has_inheritable_cap, sd_bus_creds_has_bounding_cap, sd_bus_creds_get_selinux_context, sd_bus_creds_get_audit_session_id, sd_bus_creds_get_audit_login_uid, sd_bus_creds_get_unique_name, sd_bus_creds_get_well_known_names — Retrieve fields from a credentials object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">pid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid_starttime</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>pid_t *<var class="pdparam">tid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_pid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_gid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>gid_t *<var class="pdparam">gid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_tid_comm</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">comm</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_exe</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">exe</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cmdline</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">cmdline</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_cgroup</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">cgroup</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_user_unit</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_slice</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_session</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_owner_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_effective_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_permitted_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_inheritable_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_has_bounding_cap</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">capability</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_selinux_context</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_session_id</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uint32_t *<var class="pdparam">sessionid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_audit_login_uid</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">loginuid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_unique_name</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_get_well_known_names</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195952656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>These functions return information from an
<em class="parameter"><code>sd_bus_creds</code></em> object. It may be created with
<a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>,
in which case it will describe the specified process, or it may be
of strings. Each invidividual string is NUL-terminated, and the
array is NULL-terminated as a whole. It will be valid as long as
<em class="parameter"><code>c</code></em> remains valid, and should not be freed or
- modified by the caller.</p></div><div class="refsect1"><a name="idm214179328320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ modified by the caller.</p></div><div class="refsect1"><a name="idm214195728128"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error code.
- </p></div><div class="refsect1"><a name="idm214179327024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
+ </p></div><div class="refsect1"><a name="idm214195726800"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>Given field is not available in
<em class="parameter"><code>c</code></em>.</p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p>Given field is not specified for the sender.
This will be returned by <code class="function">sd_bus_get_unit</code>,
<code class="function">sd_bus_get_user_unit</code>,
slice, logind session, or a systemd user session.</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>An error occured in parsing cgroup paths.
<code class="filename">libsystemd</code> might be out of sync with
the running systemd version.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified pointer parameter is <code class="constant">NULL</code>.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179313104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199611568"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179310160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214199608400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="credentials.html"><span class="citerefentry"><span class="refentrytitle">credentials</span>(7)</span></a>,
'\" t
-.TH "SD_BUS_CREDS_NEW_FROM_PID" "3" "" "systemd 214" "sd_bus_creds_new_from_pid"
+.TH "SD_BUS_CREDS_NEW_FROM_PID" "3" "" "systemd 215" "sd_bus_creds_new_from_pid"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
<code class="constant">SD_BUS_CREDS_PID</code>,
<code class="constant">SD_BUS_CREDS_PID_STARTTIME</code>,
<code class="constant">SD_BUS_CREDS_TID</code>,
<code class="constant">SD_BUS_CREDS_UNIQUE_NAME</code>,
<code class="constant">SD_BUS_CREDS_WELL_KNOWN_NAMES</code>,
<code class="constant">_SD_BUS_CREDS_ALL</code>
- </p></div><div class="refsect1"><a name="idm214173440304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
+ </p></div><div class="refsect1"><a name="idm214194089696"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
credentials object and fills it with information about the process
<em class="parameter"><code>pid</code></em>. This pointer to this object will
be stored in <em class="parameter"><code>ret</code></em> pointer.</p><p>The information that will be stored is determined by
<em class="parameter"><code>c</code></em> cannot be used anymore, so futher
calls to <code class="function">sd_bus_creds_ref(c)</code> or
<code class="function">sd_bus_creds_unref(c)</code> are illegal.</p><p><code class="function">sd_bus_creds_unref</code> destroys a reference
- to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214173406800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
+ to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214195301216"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
returns 0 or a positive integer. On failure, it returns a negative
errno-style error code.</p><p><code class="function">sd_bus_creds_get_mask()</code> returns the
mask of successfully acquired fields.</p><p><code class="function">sd_bus_creds_ref</code> always returns the
argument.</p><p><code class="function">sd_bus_creds_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214173401440"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214195571728"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
creates a new object and the caller owns the sole reference. When
not needed anymore, this reference should be destroyed with
<a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a>.
- </p></div><div class="refsect1"><a name="idm214173398528"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
+ </p></div><div class="refsect1"><a name="idm214194091024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
be found.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168765600"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194042464"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
available as a shared library, which can be compiled and linked to
with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214168762688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195915504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
<code class="constant">SD_BUS_CREDS_PID</code>,
<code class="constant">SD_BUS_CREDS_PID_STARTTIME</code>,
<code class="constant">SD_BUS_CREDS_TID</code>,
<code class="constant">SD_BUS_CREDS_UNIQUE_NAME</code>,
<code class="constant">SD_BUS_CREDS_WELL_KNOWN_NAMES</code>,
<code class="constant">_SD_BUS_CREDS_ALL</code>
- </p></div><div class="refsect1"><a name="idm214173440304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
+ </p></div><div class="refsect1"><a name="idm214194089696"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
credentials object and fills it with information about the process
<em class="parameter"><code>pid</code></em>. This pointer to this object will
be stored in <em class="parameter"><code>ret</code></em> pointer.</p><p>The information that will be stored is determined by
<em class="parameter"><code>c</code></em> cannot be used anymore, so futher
calls to <code class="function">sd_bus_creds_ref(c)</code> or
<code class="function">sd_bus_creds_unref(c)</code> are illegal.</p><p><code class="function">sd_bus_creds_unref</code> destroys a reference
- to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214173406800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
+ to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214195301216"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
returns 0 or a positive integer. On failure, it returns a negative
errno-style error code.</p><p><code class="function">sd_bus_creds_get_mask()</code> returns the
mask of successfully acquired fields.</p><p><code class="function">sd_bus_creds_ref</code> always returns the
argument.</p><p><code class="function">sd_bus_creds_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214173401440"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214195571728"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
creates a new object and the caller owns the sole reference. When
not needed anymore, this reference should be destroyed with
<a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a>.
- </p></div><div class="refsect1"><a name="idm214173398528"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
+ </p></div><div class="refsect1"><a name="idm214194091024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
be found.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168765600"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194042464"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
available as a shared library, which can be compiled and linked to
with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214168762688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195915504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_creds_new_from_pid"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_creds_new_from_pid, sd_bus_creds_get_mask, sd_bus_creds_ref, sd_bus_creds_unref — Retrieve credentials object for the specified PID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_creds_new_from_pid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">creds_mask</var>, </td></tr><tr><td> </td><td>sd_bus_creds **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">uint64_t <b class="fsfunc">sd_bus_creds_get_mask</b>(</code></td><td>const sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_ref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus_creds *<b class="fsfunc">sd_bus_creds_unref</b>(</code></td><td>sd_bus_creds *<var class="pdparam">c</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p>
<code class="constant">SD_BUS_CREDS_PID</code>,
<code class="constant">SD_BUS_CREDS_PID_STARTTIME</code>,
<code class="constant">SD_BUS_CREDS_TID</code>,
<code class="constant">SD_BUS_CREDS_UNIQUE_NAME</code>,
<code class="constant">SD_BUS_CREDS_WELL_KNOWN_NAMES</code>,
<code class="constant">_SD_BUS_CREDS_ALL</code>
- </p></div><div class="refsect1"><a name="idm214173440304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
+ </p></div><div class="refsect1"><a name="idm214194089696"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> creates a new
credentials object and fills it with information about the process
<em class="parameter"><code>pid</code></em>. This pointer to this object will
be stored in <em class="parameter"><code>ret</code></em> pointer.</p><p>The information that will be stored is determined by
<em class="parameter"><code>c</code></em> cannot be used anymore, so futher
calls to <code class="function">sd_bus_creds_ref(c)</code> or
<code class="function">sd_bus_creds_unref(c)</code> are illegal.</p><p><code class="function">sd_bus_creds_unref</code> destroys a reference
- to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214173406800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
+ to <em class="parameter"><code>c</code></em>.</p></div><div class="refsect1"><a name="idm214195301216"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_creds_new_from_pid()</code>
returns 0 or a positive integer. On failure, it returns a negative
errno-style error code.</p><p><code class="function">sd_bus_creds_get_mask()</code> returns the
mask of successfully acquired fields.</p><p><code class="function">sd_bus_creds_ref</code> always returns the
argument.</p><p><code class="function">sd_bus_creds_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214173401440"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214195571728"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Function <code class="function">sd_bus_creds_new_from_pid()</code>
creates a new object and the caller owns the sole reference. When
not needed anymore, this reference should be destroyed with
<a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a>.
- </p></div><div class="refsect1"><a name="idm214173398528"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
+ </p></div><div class="refsect1"><a name="idm214194091024"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p>Specified <em class="parameter"><code>pid</code></em> could not
be found.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168765600"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194042464"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_creds_new_from_pid()</code> is
available as a shared library, which can be compiled and linked to
with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214168762688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195915504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183470752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214201032336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
object and opens a connection to the user bus.
<code class="function">sd_bus_open_system()</code> does the same, but
connects to the system bus.</p><p>If the <code class="varname">$DBUS_SESSION_BUS_ADDRESS</code> environment
<code class="function">sd_bus_default_user()</code>, and subsequent
invocations returns a reference to the same object.</p><p><code class="function">sd_bus_default_system()</code> is similar to
<code class="function">sd_bus_default_user()</code>, but connects to the
- system bus.</p></div><div class="refsect1"><a name="idm214182906832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ system bus.</p></div><div class="refsect1"><a name="idm214201008656"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214183176144"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214201007328"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
<code class="function">sd_bus_open_system()</code>,
<code class="function">sd_bus_open_system_remote()</code>, and
<code class="function">sd_bus_open_system_machine()</code> return a new
<a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a>.
</p><p>The functions <code class="function">sd_bus_default_user()</code> and
<code class="function">sd_bus_default_system()</code> do not create a new
- reference.</p></div><div class="refsect1"><a name="idm214182582704"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
+ reference.</p></div><div class="refsect1"><a name="idm214201000368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
by returned. See <a href="sd_bus_send.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_send</span>(3)</span></a>.</p><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182889312"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200994176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184093888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214200991008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183470752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214201032336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
object and opens a connection to the user bus.
<code class="function">sd_bus_open_system()</code> does the same, but
connects to the system bus.</p><p>If the <code class="varname">$DBUS_SESSION_BUS_ADDRESS</code> environment
<code class="function">sd_bus_default_user()</code>, and subsequent
invocations returns a reference to the same object.</p><p><code class="function">sd_bus_default_system()</code> is similar to
<code class="function">sd_bus_default_user()</code>, but connects to the
- system bus.</p></div><div class="refsect1"><a name="idm214182906832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ system bus.</p></div><div class="refsect1"><a name="idm214201008656"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214183176144"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214201007328"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
<code class="function">sd_bus_open_system()</code>,
<code class="function">sd_bus_open_system_remote()</code>, and
<code class="function">sd_bus_open_system_machine()</code> return a new
<a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a>.
</p><p>The functions <code class="function">sd_bus_default_user()</code> and
<code class="function">sd_bus_default_system()</code> do not create a new
- reference.</p></div><div class="refsect1"><a name="idm214182582704"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
+ reference.</p></div><div class="refsect1"><a name="idm214201000368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
by returned. See <a href="sd_bus_send.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_send</span>(3)</span></a>.</p><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182889312"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200994176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184093888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214200991008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_ERROR" "3" "" "systemd 214" "sd_bus_error"
+.TH "SD_BUS_ERROR" "3" "" "systemd 215" "sd_bus_error"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_error"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name — sd-bus error handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><pre class="funcsynopsisinfo">typedef struct {
const char *name;
const char *message;
...
<code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code>
</p><p>
<code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code>
- </p></div><div class="refsect1"><a name="idm214187001632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
+ </p></div><div class="refsect1"><a name="idm214180451616"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <span class="structname">sd_bus_error</span> structure carries
information for a <code class="filename">sd-bus</code> error. The
functions described below can be used to set and query fields in
this structure. The <em class="structfield"><code>name</code></em> field contains a
held by <em class="parameter"><code>e</code></em>. The parameter itself will not
be deallocated, and must be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>d
- by the caller if necessary.</p></div><div class="refsect1"><a name="idm214186959952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
+ by the caller if necessary.</p></div><div class="refsect1"><a name="idm214179308512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>Functions <code class="function">sd_bus_error_set</code>,
<code class="function">sd_bus_error_setf</code>,
<code class="function">sd_bus_error_set_const</code>, when successful,
return the negative errno value corresponding to the
<code class="constant">true</code> when <em class="parameter"><code>e</code></em> is
non-<code class="constant">NULL</code> and <em class="parameter"><code>e->name</code></em>
is equal to <em class="parameter"><code>name</code></em>,
- <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214186943232"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
+ <code class="constant">false</code> otherwise.</p></div><div class="refsect1"><a name="idm214180287856"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p><span class="structname">sd_bus_error</span> is not reference
counted. Users should destroy resources held by it by calling
- <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214186941088"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
+ <code class="function">sd_bus_error_free</code>.</p></div><div class="refsect1"><a name="idm214180285584"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Error was already set in
<span class="structname">sd_bus_error</span> structure when one the
- error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186936352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
+ error-setting functions was called.</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180280672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_set_error()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186933408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180277504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_MESSAGE_APPEND" "3" "" "systemd 214" "sd_bus_message_append"
+.TH "SD_BUS_MESSAGE_APPEND" "3" "" "systemd 215" "sd_bus_message_append"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append — Attach parts of message based on a format string</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">types</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187191184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append</code> function appends
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append — Attach parts of message based on a format string</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">types</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183901008"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append</code> function appends
a sequence of items to message <em class="parameter"><code>m</code></em>. The
format string <em class="parameter"><code>types</code></em> describes the types of
arguments that follow.</p><p>The format string is composed of the elements shown in the
types must be a basic type. Corresponding arguments must include
the size of the dictionary, and then repeated this number of
times, arguments corresponding to each of the two nested
- types.</p><div class="table"><a name="idm214183399200"></a><p class="title"><b>Table 1. Item format specifiers</b></p><div class="table-contents"><table summary="Item format specifiers" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Specifier</th><th>Constant</th><th>Description</th><th>Size</th></tr></thead><tbody><tr><td>"<code class="literal">y</code>"</td><td><code class="constant">SD_BUS_TYPE_BYTE</code></td><td>unsigned interger</td><td>1 byte</td></tr><tr><td>"<code class="literal">b</code>"</td><td><code class="constant">SD_BUS_TYPE_BOOLEAN</code></td><td>boolean</td><td>4 bytes</td></tr><tr><td>"<code class="literal">n</code>"</td><td><code class="constant">SD_BUS_TYPE_INT16</code></td><td>signed integer</td><td>2 bytes</td></tr><tr><td>"<code class="literal">q</code>"</td><td><code class="constant">SD_BUS_TYPE_UINT16</code></td><td>unsigned integer</td><td>2 bytes</td></tr><tr><td>"<code class="literal">i</code>"</td><td><code class="constant">SD_BUS_TYPE_INT32</code></td><td>signed integer</td><td>4 bytes</td></tr><tr><td>"<code class="literal">u</code>"</td><td><code class="constant">SD_BUS_TYPE_UINT32</code></td><td>unsigned integer</td><td>4 bytes</td></tr><tr><td>"<code class="literal">x</code>"</td><td><code class="constant">SD_BUS_TYPE_INT64</code></td><td>signed integer</td><td>8 bytes</td></tr><tr><td>"<code class="literal">t</code>"</td><td><code class="constant">SD_BUS_TYPE_UINT64</code></td><td>unsigned integer</td><td>8 bytes</td></tr><tr><td>"<code class="literal">d</code>"</td><td><code class="constant">SD_BUS_TYPE_DOUBLE</code></td><td>floating-point</td><td>8 bytes</td></tr><tr><td>"<code class="literal">s</code>"</td><td><code class="constant">SD_BUS_TYPE_STRING</code></td><td>Unicode string</td><td>variable</td></tr><tr><td>"<code class="literal">o</code>"</td><td><code class="constant">SD_BUS_TYPE_OBJECT_PATH</code></td><td>object path</td><td>variable</td></tr><tr><td>"<code class="literal">g</code>"</td><td><code class="constant">SD_BUS_TYPE_SIGNATURE</code></td><td>signature</td><td>variable</td></tr><tr><td>"<code class="literal">h</code>"</td><td><code class="constant">SD_BUS_TYPE_UNIX_FD</code></td><td>UNIX file descriptor</td><td>4 bytes</td></tr><tr><td>"<code class="literal">a</code>"</td><td><code class="constant">SD_BUS_TYPE_ARRAY</code></td><td>array</td><td>determined by array type and size</td></tr><tr><td>"<code class="literal">v</code>"</td><td><code class="constant">SD_BUS_TYPE_VARIANT</code></td><td>variant</td><td>determined by the type argument</td></tr><tr><td>"<code class="literal">(</code>"</td><td><code class="constant">SD_BUS_TYPE_STRUCT_BEGIN</code></td><td>array start</td><td rowspan="2">determined by the nested types</td></tr><tr><td>"<code class="literal">)</code>"</td><td><code class="constant">SD_BUS_TYPE_STRUCT_END</code></td><td>array end</td></tr><tr><td>"<code class="literal">{</code>"</td><td><code class="constant">SD_BUS_TYPE_DICT_ENTRY_BEGIN</code></td><td>dictionary entry start</td><td rowspan="2">determined by the nested types</td></tr><tr><td>"<code class="literal">}</code>"</td><td><code class="constant">SD_BUS_TYPE_DICT_ENTRY_END</code></td><td>dictionary entry end</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect1"><a name="idm214187278096"></a><h2 id="Types string grammar">Types string grammar<a class="headerlink" title="Permalink to this headline" href="#Types%20string%20grammar">¶</a></h2><pre class="programlisting">types ::= complete_type*
+ types.</p><div class="table"><a name="idm214184578560"></a><p class="title"><b>Table 1. Item format specifiers</b></p><div class="table-contents"><table summary="Item format specifiers" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Specifier</th><th>Constant</th><th>Description</th><th>Size</th></tr></thead><tbody><tr><td>"<code class="literal">y</code>"</td><td><code class="constant">SD_BUS_TYPE_BYTE</code></td><td>unsigned interger</td><td>1 byte</td></tr><tr><td>"<code class="literal">b</code>"</td><td><code class="constant">SD_BUS_TYPE_BOOLEAN</code></td><td>boolean</td><td>4 bytes</td></tr><tr><td>"<code class="literal">n</code>"</td><td><code class="constant">SD_BUS_TYPE_INT16</code></td><td>signed integer</td><td>2 bytes</td></tr><tr><td>"<code class="literal">q</code>"</td><td><code class="constant">SD_BUS_TYPE_UINT16</code></td><td>unsigned integer</td><td>2 bytes</td></tr><tr><td>"<code class="literal">i</code>"</td><td><code class="constant">SD_BUS_TYPE_INT32</code></td><td>signed integer</td><td>4 bytes</td></tr><tr><td>"<code class="literal">u</code>"</td><td><code class="constant">SD_BUS_TYPE_UINT32</code></td><td>unsigned integer</td><td>4 bytes</td></tr><tr><td>"<code class="literal">x</code>"</td><td><code class="constant">SD_BUS_TYPE_INT64</code></td><td>signed integer</td><td>8 bytes</td></tr><tr><td>"<code class="literal">t</code>"</td><td><code class="constant">SD_BUS_TYPE_UINT64</code></td><td>unsigned integer</td><td>8 bytes</td></tr><tr><td>"<code class="literal">d</code>"</td><td><code class="constant">SD_BUS_TYPE_DOUBLE</code></td><td>floating-point</td><td>8 bytes</td></tr><tr><td>"<code class="literal">s</code>"</td><td><code class="constant">SD_BUS_TYPE_STRING</code></td><td>Unicode string</td><td>variable</td></tr><tr><td>"<code class="literal">o</code>"</td><td><code class="constant">SD_BUS_TYPE_OBJECT_PATH</code></td><td>object path</td><td>variable</td></tr><tr><td>"<code class="literal">g</code>"</td><td><code class="constant">SD_BUS_TYPE_SIGNATURE</code></td><td>signature</td><td>variable</td></tr><tr><td>"<code class="literal">h</code>"</td><td><code class="constant">SD_BUS_TYPE_UNIX_FD</code></td><td>UNIX file descriptor</td><td>4 bytes</td></tr><tr><td>"<code class="literal">a</code>"</td><td><code class="constant">SD_BUS_TYPE_ARRAY</code></td><td>array</td><td>determined by array type and size</td></tr><tr><td>"<code class="literal">v</code>"</td><td><code class="constant">SD_BUS_TYPE_VARIANT</code></td><td>variant</td><td>determined by the type argument</td></tr><tr><td>"<code class="literal">(</code>"</td><td><code class="constant">SD_BUS_TYPE_STRUCT_BEGIN</code></td><td>array start</td><td rowspan="2">determined by the nested types</td></tr><tr><td>"<code class="literal">)</code>"</td><td><code class="constant">SD_BUS_TYPE_STRUCT_END</code></td><td>array end</td></tr><tr><td>"<code class="literal">{</code>"</td><td><code class="constant">SD_BUS_TYPE_DICT_ENTRY_BEGIN</code></td><td>dictionary entry start</td><td rowspan="2">determined by the nested types</td></tr><tr><td>"<code class="literal">}</code>"</td><td><code class="constant">SD_BUS_TYPE_DICT_ENTRY_END</code></td><td>dictionary entry end</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect1"><a name="idm214183669216"></a><h2 id="Types string grammar">Types string grammar<a class="headerlink" title="Permalink to this headline" href="#Types%20string%20grammar">¶</a></h2><pre class="programlisting">types ::= complete_type*
complete_type ::= basic_type | variant | structure | array | dictionary
basic_type ::= "y" | "n" | "q" | "u" | "i" | "x" | "t" | "d" |
"b" | "h" |
structure ::= "(" complete_type+ ")"
array ::= "a" complete_type
dictionary ::= "a" "{" basic_type complete_type "}"
-</pre></div><div class="refsect1"><a name="idm214187276272"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Append a single basic type (the string "<code class="literal">a string</code>"):
+</pre></div><div class="refsect1"><a name="idm214182869216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Append a single basic type (the string "<code class="literal">a string</code>"):
</p><pre class="programlisting">sd_bus_message *m;
...
sd_bus_message_append(m, "s", "a string");</pre><p>Append all types of integers:</p><pre class="programlisting">uint8_t y = 1;
</pre><p>Append a variant, with the real type "g" (signature),
and value "sdbusisgood":</p><pre class="programlisting">sd_bus_message_append(m, "v", "g", "sdbusisgood");</pre><p>Append a dictionary containing the mapping {1=>"a", 2=>"b", 3=>""}:
</p><pre class="programlisting">sd_bus_message_append(m, "a{is}", 3, 1, "a", 2, "b", 3, NULL);
- </pre></div><div class="refsect1"><a name="idm214187260640"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, this call returns 0 or a positive
+ </pre></div><div class="refsect1"><a name="idm214184952432"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, this call returns 0 or a positive
integer. On failure, this call returns a negative
errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187258496"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183757376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd-bus</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187255328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214183687248"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_MESSAGE_APPEND_ARRAY" "3" "" "systemd 214" "sd_bus_message_append_array"
+.TH "SD_BUS_MESSAGE_APPEND_ARRAY" "3" "" "systemd 215" "sd_bus_message_append_array"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173279312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170011040"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
appends items to message <em class="parameter"><code>m</code></em> as the single
array. A container will be opened, items appended, and the
container closed. Parameter <em class="parameter"><code>type</code></em> determines
<code class="function">sd_bus_message_append_array</code>, but instead
of copying items to the message, it returns a pointer to the
destination area to the caller in pointer <em class="parameter"><code>p</code></em>.
- </p></div><div class="refsect1"><a name="idm214177134304"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ </p></div><div class="refsect1"><a name="idm214169563840"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177132128"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214171075696"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177128960"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214169857648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173279312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170011040"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
appends items to message <em class="parameter"><code>m</code></em> as the single
array. A container will be opened, items appended, and the
container closed. Parameter <em class="parameter"><code>type</code></em> determines
<code class="function">sd_bus_message_append_array</code>, but instead
of copying items to the message, it returns a pointer to the
destination area to the caller in pointer <em class="parameter"><code>p</code></em>.
- </p></div><div class="refsect1"><a name="idm214177134304"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ </p></div><div class="refsect1"><a name="idm214169563840"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177132128"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214171075696"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177128960"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214169857648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173279312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170011040"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
appends items to message <em class="parameter"><code>m</code></em> as the single
array. A container will be opened, items appended, and the
container closed. Parameter <em class="parameter"><code>type</code></em> determines
<code class="function">sd_bus_message_append_array</code>, but instead
of copying items to the message, it returns a pointer to the
destination area to the caller in pointer <em class="parameter"><code>p</code></em>.
- </p></div><div class="refsect1"><a name="idm214177134304"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ </p></div><div class="refsect1"><a name="idm214169563840"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177132128"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214171075696"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177128960"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214169857648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173279312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_array"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_array, sd_bus_message_append_array_memfd, sd_bus_message_append_array_iovec, sd_bus_message_append_array_space — Attach an array of items to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">ptr</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_array_space(</code></td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char void **<var class="pdparam">ptr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170011040"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append_array</code> functionc
appends items to message <em class="parameter"><code>m</code></em> as the single
array. A container will be opened, items appended, and the
container closed. Parameter <em class="parameter"><code>type</code></em> determines
<code class="function">sd_bus_message_append_array</code>, but instead
of copying items to the message, it returns a pointer to the
destination area to the caller in pointer <em class="parameter"><code>p</code></em>.
- </p></div><div class="refsect1"><a name="idm214177134304"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
+ </p></div><div class="refsect1"><a name="idm214169563840"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177132128"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214171075696"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_append_array()</code> and other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177128960"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214169857648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_MESSAGE_APPEND_BASIC" "3" "" "systemd 214" "sd_bus_message_append_basic"
+.TH "SD_BUS_MESSAGE_APPEND_BASIC" "3" "" "systemd 215" "sd_bus_message_append_basic"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_basic"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_basic — Attach a single part to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_basic(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">p</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198565376"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_append_basic</code> appends a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_basic"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_basic — Attach a single part to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_basic(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>char void *<var class="pdparam">p</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171102672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_append_basic</code> appends a
single item to the message <em class="parameter"><code>m</code></em>. Parameter
<em class="parameter"><code>type</code></em> determines how pointer
<em class="parameter"><code>p</code></em> is interpreted.
types, the additional requirements for a D-Bus object path or
type signature should be satisfied. Those requirements should be
verified by the recepient of the message.
- </p></div><div class="refsect1"><a name="idm214198624768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, this call returns 0 or a positive integer. On
+ </p></div><div class="refsect1"><a name="idm214171395632"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, this call returns 0 or a positive integer. On
failure, it returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193988384"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_append_basic()</code> function
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169902752"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_append_basic()</code> function
described here is available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214193985328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171653984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_string_memfd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_string_memfd, sd_bus_message_append_string_iovec, sd_bus_message_append_string_space — Attach a string to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_space(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214191428080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The functions
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_string_memfd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_string_memfd, sd_bus_message_append_string_iovec, sd_bus_message_append_string_space — Attach a string to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_space(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169135024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The functions
<code class="function">sd_bus_message_append_string_memfd</code> and
<code class="function">sd_bus_message_append_string_iovec</code> can be
used to append a single string (item of type "<code class="literal">s</code>")
the message, it returns a pointer to the destination area to
the caller in pointer <em class="parameter"><code>p</code></em>. Space for the string
of length <em class="parameter"><code>size</code></em> plus the terminating
- <code class="constant">NUL</code> is allocated.</p></div><div class="refsect1"><a name="idm214195306688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, those calls return 0 or a positive integer. On
+ <code class="constant">NUL</code> is allocated.</p></div><div class="refsect1"><a name="idm214168480256"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, those calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195304512"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The functions described here are available as a shared library,
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169750000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The functions described here are available as a shared library,
which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214195301920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167904208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_MESSAGE_APPEND_STRING_MEMFD" "3" "" "systemd 214" "sd_bus_message_append_string_memfd"
+.TH "SD_BUS_MESSAGE_APPEND_STRING_MEMFD" "3" "" "systemd 215" "sd_bus_message_append_string_memfd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_string_memfd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_string_memfd, sd_bus_message_append_string_iovec, sd_bus_message_append_string_space — Attach a string to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_space(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214191428080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The functions
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_string_memfd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_string_memfd, sd_bus_message_append_string_iovec, sd_bus_message_append_string_space — Attach a string to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_space(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169135024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The functions
<code class="function">sd_bus_message_append_string_memfd</code> and
<code class="function">sd_bus_message_append_string_iovec</code> can be
used to append a single string (item of type "<code class="literal">s</code>")
the message, it returns a pointer to the destination area to
the caller in pointer <em class="parameter"><code>p</code></em>. Space for the string
of length <em class="parameter"><code>size</code></em> plus the terminating
- <code class="constant">NUL</code> is allocated.</p></div><div class="refsect1"><a name="idm214195306688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, those calls return 0 or a positive integer. On
+ <code class="constant">NUL</code> is allocated.</p></div><div class="refsect1"><a name="idm214168480256"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, those calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195304512"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The functions described here are available as a shared library,
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169750000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The functions described here are available as a shared library,
which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214195301920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167904208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_string_memfd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_string_memfd, sd_bus_message_append_string_iovec, sd_bus_message_append_string_space — Attach a string to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_space(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214191428080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The functions
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_string_memfd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_string_memfd, sd_bus_message_append_string_iovec, sd_bus_message_append_string_space — Attach a string to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_memfd(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>sd_memfd *<var class="pdparam">memfd</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_iovec(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>unsigned <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_string_space(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169135024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The functions
<code class="function">sd_bus_message_append_string_memfd</code> and
<code class="function">sd_bus_message_append_string_iovec</code> can be
used to append a single string (item of type "<code class="literal">s</code>")
the message, it returns a pointer to the destination area to
the caller in pointer <em class="parameter"><code>p</code></em>. Space for the string
of length <em class="parameter"><code>size</code></em> plus the terminating
- <code class="constant">NUL</code> is allocated.</p></div><div class="refsect1"><a name="idm214195306688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, those calls return 0 or a positive integer. On
+ <code class="constant">NUL</code> is allocated.</p></div><div class="refsect1"><a name="idm214168480256"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, those calls return 0 or a positive integer. On
failure, they returns a negative errno-style error code.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195304512"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The functions described here are available as a shared library,
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169750000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The functions described here are available as a shared library,
which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214195301920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167904208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_MESSAGE_APPEND_STRV" "3" "" "systemd 214" "sd_bus_message_append_strv"
+.TH "SD_BUS_MESSAGE_APPEND_STRV" "3" "" "systemd 215" "sd_bus_message_append_strv"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_append_strv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_strv — Attach an array of strings to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_strv(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">l</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187804112"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append</code> function can be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_append_strv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_append_strv — Attach an array of strings to a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int sd_bus_message_append_strv(</code></td><td>sd_bus_message *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">l</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173257712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="function">sd_bus_message_append</code> function can be
used to append an array of strings to message
<em class="parameter"><code>m</code></em>. The parameter <em class="parameter"><code>l</code></em>
shall point to a <code class="constant">NULL</code>-terminated array of pointers
containing the message and may be changed after this call. Note
that the signature of <em class="parameter"><code>l</code></em> parameter is to be
treated as <span class="type">const char *const *</span>, and the contents
- will not be modified.</p></div><div class="refsect1"><a name="idm214187772784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, this call returns 0 or a positive integer. On
+ will not be modified.</p></div><div class="refsect1"><a name="idm214172434464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, this call returns 0 or a positive integer. On
failure, a negative errno-style error code is returned.</p></div><div class="refsect1"><a name="errors"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid.
</p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>Message has been sealed.
</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>Message is in invalid state.
</p></dd><dt id="-ENXIO"><span class="term"><code class="varname">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p>Message cannot be appended to.
- </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187743440"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_append_append_strv()</code> function
+ </p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173186080"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_append_append_strv()</code> function
described here is available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187461664"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171672208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_MESSAGE_GET_COOKIE" "3" "" "systemd 214" "sd_bus_message_get_cookie"
+.TH "SD_BUS_MESSAGE_GET_COOKIE" "3" "" "systemd 215" "sd_bus_message_get_cookie"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_get_cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_cookie, sd_bus_message_get_reply_cookie — Returns the transaction cookie of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_reply_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179228944"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_cookie()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_get_cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_cookie, sd_bus_message_get_reply_cookie — Returns the transaction cookie of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_reply_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214165938928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_cookie()</code> returns
the transaction cookie of a message. The cookie
uniquely identifies a message within each bus peer,
but is not globally unique. It is assigned when a
cookie, only response messages carry a reply cookie
field.</p><p>Both functions take a message object as first
parameter and a place to store the 64-bit cookie
- in.</p></div><div class="refsect1"><a name="idm214179171968"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ in.</p></div><div class="refsect1"><a name="idm214168449712"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>On success, the cookie/reply cookie is returned
- in the specified 64-bit unsigned integer variable.</p></div><div class="refsect1"><a name="idm214179777200"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
+ in the specified 64-bit unsigned integer variable.</p></div><div class="refsect1"><a name="idm214167487344"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
is invalid.</p></dd><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>No cookie has been
assigned to this message. This either
indicates that the message has not
assigned, or that the message is not a
method response message and hence
carries a reply cookie
- field.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180026160"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_message_get_cookie()</code>
+ field.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166489008"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_message_get_cookie()</code>
and <code class="function">sd_bus_message_get_reply_cookie()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214180103824"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214166665392"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>
'\" t
-.TH "SD_BUS_MESSAGE_GET_MONOTONIC_USEC" "3" "" "systemd 214" "sd_bus_message_get_monotonic_usec"
+.TH "SD_BUS_MESSAGE_GET_MONOTONIC_USEC" "3" "" "systemd 215" "sd_bus_message_get_monotonic_usec"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184877296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214167303664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
returns the monotonic timestamp of the time the
message was sent. This value is in microseconds since
the "<code class="literal">CLOCK_MONOTONIC</code>" epoch, see
some bus transports, and only after support for them
has been negotiated with the
<a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>
- call.</p></div><div class="refsect1"><a name="idm214183950752"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ call.</p></div><div class="refsect1"><a name="idm214166630240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>On success, the timestamp or sequence number is
returned in the specified 64-bit unsigned integer
- variable.</p></div><div class="refsect1"><a name="idm214186390608"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
+ variable.</p></div><div class="refsect1"><a name="idm214166835648"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
is invalid.</p></dd><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>No timestamp or
sequence number information is
attached to the passed message. This
timestamping or assigning of sequence
numbers, or if this feature has not
been negotiated with
- <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184358016"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166448368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_bus_message_get_monotonic_usec()</code>,
<code class="function">sd_bus_message_get_realtime_usec()</code>,
and <code class="function">sd_bus_message_get_seqnum()</code>
interfaces are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214185485344"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214168606432"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184877296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214167303664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
returns the monotonic timestamp of the time the
message was sent. This value is in microseconds since
the "<code class="literal">CLOCK_MONOTONIC</code>" epoch, see
some bus transports, and only after support for them
has been negotiated with the
<a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>
- call.</p></div><div class="refsect1"><a name="idm214183950752"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ call.</p></div><div class="refsect1"><a name="idm214166630240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>On success, the timestamp or sequence number is
returned in the specified 64-bit unsigned integer
- variable.</p></div><div class="refsect1"><a name="idm214186390608"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
+ variable.</p></div><div class="refsect1"><a name="idm214166835648"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
is invalid.</p></dd><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>No timestamp or
sequence number information is
attached to the passed message. This
timestamping or assigning of sequence
numbers, or if this feature has not
been negotiated with
- <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184358016"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166448368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_bus_message_get_monotonic_usec()</code>,
<code class="function">sd_bus_message_get_realtime_usec()</code>,
and <code class="function">sd_bus_message_get_seqnum()</code>
interfaces are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214185485344"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214168606432"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_get_cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_cookie, sd_bus_message_get_reply_cookie — Returns the transaction cookie of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_reply_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179228944"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_cookie()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_get_cookie"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_cookie, sd_bus_message_get_reply_cookie — Returns the transaction cookie of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_reply_cookie</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">cookie</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214165938928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_cookie()</code> returns
the transaction cookie of a message. The cookie
uniquely identifies a message within each bus peer,
but is not globally unique. It is assigned when a
cookie, only response messages carry a reply cookie
field.</p><p>Both functions take a message object as first
parameter and a place to store the 64-bit cookie
- in.</p></div><div class="refsect1"><a name="idm214179171968"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ in.</p></div><div class="refsect1"><a name="idm214168449712"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>On success, the cookie/reply cookie is returned
- in the specified 64-bit unsigned integer variable.</p></div><div class="refsect1"><a name="idm214179777200"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
+ in the specified 64-bit unsigned integer variable.</p></div><div class="refsect1"><a name="idm214167487344"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
is invalid.</p></dd><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>No cookie has been
assigned to this message. This either
indicates that the message has not
assigned, or that the message is not a
method response message and hence
carries a reply cookie
- field.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180026160"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_message_get_cookie()</code>
+ field.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166489008"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_message_get_cookie()</code>
and <code class="function">sd_bus_message_get_reply_cookie()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214180103824"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214166665392"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184877296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214167303664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
returns the monotonic timestamp of the time the
message was sent. This value is in microseconds since
the "<code class="literal">CLOCK_MONOTONIC</code>" epoch, see
some bus transports, and only after support for them
has been negotiated with the
<a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>
- call.</p></div><div class="refsect1"><a name="idm214183950752"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ call.</p></div><div class="refsect1"><a name="idm214166630240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>On success, the timestamp or sequence number is
returned in the specified 64-bit unsigned integer
- variable.</p></div><div class="refsect1"><a name="idm214186390608"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
+ variable.</p></div><div class="refsect1"><a name="idm214166835648"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
is invalid.</p></dd><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>No timestamp or
sequence number information is
attached to the passed message. This
timestamping or assigning of sequence
numbers, or if this feature has not
been negotiated with
- <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184358016"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166448368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_bus_message_get_monotonic_usec()</code>,
<code class="function">sd_bus_message_get_realtime_usec()</code>,
and <code class="function">sd_bus_message_get_seqnum()</code>
interfaces are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214185485344"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214168606432"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_negotiate_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_negotiate_fds, sd_bus_negotiate_timestamps, sd_bus_negotiate_creds — Control feature negotiation on bus connections</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_fds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_timestamp</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_creds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214190981488"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_negotiate_fds()</code> controls whether
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_negotiate_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_negotiate_fds, sd_bus_negotiate_timestamps, sd_bus_negotiate_creds — Control feature negotiation on bus connections</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_fds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_timestamp</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_creds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169882656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_negotiate_fds()</code> controls whether
file descriptor passing shall be negotiated for the specified bus
connection. It takes a bus object and a boolean, which, when true,
enables file descriptor passing, and, when false, disables it. Note
are attached by the kernel and cannot be manipulated by
userspace. By default, no sender credentials are attached.</p><p>These functions may be called only before the connection has
been started with
- <a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214190926800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions returns 0 or a
+ <a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214169485440"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions returns 0 or a
positive integer. On failure, they return a negative errno-style
- error code.</p></div><div class="refsect1"><a name="idm214190016432"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>The bus connection has already been started.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189988176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_negotiate_fs()</code> and the other
+ error code.</p></div><div class="refsect1"><a name="idm214170824416"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>The bus connection has already been started.</p></dd></dl></div></div><div class="refsect1"><a name="idm214170355552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_negotiate_fs()</code> and the other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214188684448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171086400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_NEGOTIATE_FDS" "3" "" "systemd 214" "sd_bus_negotiate_fds"
+.TH "SD_BUS_NEGOTIATE_FDS" "3" "" "systemd 215" "sd_bus_negotiate_fds"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_negotiate_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_negotiate_fds, sd_bus_negotiate_timestamps, sd_bus_negotiate_creds — Control feature negotiation on bus connections</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_fds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_timestamp</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_creds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214190981488"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_negotiate_fds()</code> controls whether
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_negotiate_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_negotiate_fds, sd_bus_negotiate_timestamps, sd_bus_negotiate_creds — Control feature negotiation on bus connections</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_fds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_timestamp</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_creds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169882656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_negotiate_fds()</code> controls whether
file descriptor passing shall be negotiated for the specified bus
connection. It takes a bus object and a boolean, which, when true,
enables file descriptor passing, and, when false, disables it. Note
are attached by the kernel and cannot be manipulated by
userspace. By default, no sender credentials are attached.</p><p>These functions may be called only before the connection has
been started with
- <a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214190926800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions returns 0 or a
+ <a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214169485440"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions returns 0 or a
positive integer. On failure, they return a negative errno-style
- error code.</p></div><div class="refsect1"><a name="idm214190016432"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>The bus connection has already been started.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189988176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_negotiate_fs()</code> and the other
+ error code.</p></div><div class="refsect1"><a name="idm214170824416"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>The bus connection has already been started.</p></dd></dl></div></div><div class="refsect1"><a name="idm214170355552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_negotiate_fs()</code> and the other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214188684448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171086400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_negotiate_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_negotiate_fds, sd_bus_negotiate_timestamps, sd_bus_negotiate_creds — Control feature negotiation on bus connections</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_fds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_timestamp</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_creds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214190981488"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_negotiate_fds()</code> controls whether
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_negotiate_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_negotiate_fds, sd_bus_negotiate_timestamps, sd_bus_negotiate_creds — Control feature negotiation on bus connections</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_fds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_timestamp</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_negotiate_creds</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">b</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169882656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_negotiate_fds()</code> controls whether
file descriptor passing shall be negotiated for the specified bus
connection. It takes a bus object and a boolean, which, when true,
enables file descriptor passing, and, when false, disables it. Note
are attached by the kernel and cannot be manipulated by
userspace. By default, no sender credentials are attached.</p><p>These functions may be called only before the connection has
been started with
- <a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214190926800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions returns 0 or a
+ <a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214169485440"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions returns 0 or a
positive integer. On failure, they return a negative errno-style
- error code.</p></div><div class="refsect1"><a name="idm214190016432"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>The bus connection has already been started.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189988176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_negotiate_fs()</code> and the other
+ error code.</p></div><div class="refsect1"><a name="idm214170824416"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p>The bus connection has already been started.</p></dd></dl></div></div><div class="refsect1"><a name="idm214170355552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_negotiate_fs()</code> and the other
functions described here are available as a shared library, which
can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214188684448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171086400"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_start.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_start</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_NEW" "3" "" "systemd 214" "sd_bus_new"
+.TH "SD_BUS_NEW" "3" "" "systemd 215" "sd_bus_new"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_new, sd_bus_ref, sd_bus_unref — Create a new bus object and create or destroy references to it</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_new</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_ref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_unref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214190756512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_new()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_new, sd_bus_ref, sd_bus_unref — Create a new bus object and create or destroy references to it</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_new</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_ref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_unref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198019136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_new()</code> creates a new bus
object. This object is reference-counted, and will be destroyed
when all references are gone. Initially, the caller of this
function owns the sole reference.</p><p><code class="function">sd_bus_ref()</code> creates a new reference to
zero, <em class="parameter"><code>bus</code></em> cannot be used anymore, so
further calls to <code class="function">sd_bus_ref()</code> or
<code class="function">sd_bus_unref()</code> are illegal.</p><p><code class="function">sd_bus_unref()</code> destroys a reference to
- <em class="parameter"><code>bus</code></em>.</p></div><div class="refsect1"><a name="idm214190317120"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_new()</code> returns 0 or a
+ <em class="parameter"><code>bus</code></em>.</p></div><div class="refsect1"><a name="idm214201910768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_new()</code> returns 0 or a
positive integer. On failure, it returns a negative errno-style
error code.</p><p><code class="function">sd_bus_ref</code> always returns the argument.
</p><p><code class="function">sd_bus_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214191774096"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192238784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_new()</code> and other functions
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214201906368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214201903264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_new()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192650416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214201900048"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183470752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214201032336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
object and opens a connection to the user bus.
<code class="function">sd_bus_open_system()</code> does the same, but
connects to the system bus.</p><p>If the <code class="varname">$DBUS_SESSION_BUS_ADDRESS</code> environment
<code class="function">sd_bus_default_user()</code>, and subsequent
invocations returns a reference to the same object.</p><p><code class="function">sd_bus_default_system()</code> is similar to
<code class="function">sd_bus_default_user()</code>, but connects to the
- system bus.</p></div><div class="refsect1"><a name="idm214182906832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ system bus.</p></div><div class="refsect1"><a name="idm214201008656"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214183176144"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214201007328"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
<code class="function">sd_bus_open_system()</code>,
<code class="function">sd_bus_open_system_remote()</code>, and
<code class="function">sd_bus_open_system_machine()</code> return a new
<a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a>.
</p><p>The functions <code class="function">sd_bus_default_user()</code> and
<code class="function">sd_bus_default_system()</code> do not create a new
- reference.</p></div><div class="refsect1"><a name="idm214182582704"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
+ reference.</p></div><div class="refsect1"><a name="idm214201000368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
by returned. See <a href="sd_bus_send.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_send</span>(3)</span></a>.</p><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182889312"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200994176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184093888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214200991008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183470752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214201032336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
object and opens a connection to the user bus.
<code class="function">sd_bus_open_system()</code> does the same, but
connects to the system bus.</p><p>If the <code class="varname">$DBUS_SESSION_BUS_ADDRESS</code> environment
<code class="function">sd_bus_default_user()</code>, and subsequent
invocations returns a reference to the same object.</p><p><code class="function">sd_bus_default_system()</code> is similar to
<code class="function">sd_bus_default_user()</code>, but connects to the
- system bus.</p></div><div class="refsect1"><a name="idm214182906832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ system bus.</p></div><div class="refsect1"><a name="idm214201008656"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214183176144"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214201007328"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
<code class="function">sd_bus_open_system()</code>,
<code class="function">sd_bus_open_system_remote()</code>, and
<code class="function">sd_bus_open_system_machine()</code> return a new
<a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a>.
</p><p>The functions <code class="function">sd_bus_default_user()</code> and
<code class="function">sd_bus_default_system()</code> do not create a new
- reference.</p></div><div class="refsect1"><a name="idm214182582704"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
+ reference.</p></div><div class="refsect1"><a name="idm214201000368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
by returned. See <a href="sd_bus_send.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_send</span>(3)</span></a>.</p><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182889312"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200994176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184093888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214200991008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183470752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214201032336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
object and opens a connection to the user bus.
<code class="function">sd_bus_open_system()</code> does the same, but
connects to the system bus.</p><p>If the <code class="varname">$DBUS_SESSION_BUS_ADDRESS</code> environment
<code class="function">sd_bus_default_user()</code>, and subsequent
invocations returns a reference to the same object.</p><p><code class="function">sd_bus_default_system()</code> is similar to
<code class="function">sd_bus_default_user()</code>, but connects to the
- system bus.</p></div><div class="refsect1"><a name="idm214182906832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ system bus.</p></div><div class="refsect1"><a name="idm214201008656"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214183176144"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214201007328"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
<code class="function">sd_bus_open_system()</code>,
<code class="function">sd_bus_open_system_remote()</code>, and
<code class="function">sd_bus_open_system_machine()</code> return a new
<a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a>.
</p><p>The functions <code class="function">sd_bus_default_user()</code> and
<code class="function">sd_bus_default_system()</code> do not create a new
- reference.</p></div><div class="refsect1"><a name="idm214182582704"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
+ reference.</p></div><div class="refsect1"><a name="idm214201000368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
by returned. See <a href="sd_bus_send.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_send</span>(3)</span></a>.</p><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182889312"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200994176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184093888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214200991008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
'\" t
-.TH "SD_BUS_OPEN_USER" "3" "" "systemd 214" "sd_bus_open_user"
+.TH "SD_BUS_OPEN_USER" "3" "" "systemd 215" "sd_bus_open_user"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183470752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_open_user"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_remote</b>(</code></td><td>const char *<var class="pdparam">host</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_open_system_container</b>(</code></td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_user</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_default_system</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214201032336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_open_user()</code> creates a new bus
object and opens a connection to the user bus.
<code class="function">sd_bus_open_system()</code> does the same, but
connects to the system bus.</p><p>If the <code class="varname">$DBUS_SESSION_BUS_ADDRESS</code> environment
<code class="function">sd_bus_default_user()</code>, and subsequent
invocations returns a reference to the same object.</p><p><code class="function">sd_bus_default_system()</code> is similar to
<code class="function">sd_bus_default_user()</code>, but connects to the
- system bus.</p></div><div class="refsect1"><a name="idm214182906832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ system bus.</p></div><div class="refsect1"><a name="idm214201008656"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214183176144"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214201007328"></a><h2 id="Reference ownership">Reference ownership<a class="headerlink" title="Permalink to this headline" href="#Reference%20ownership">¶</a></h2><p>Functions <code class="function">sd_bus_open_user()</code>,
<code class="function">sd_bus_open_system()</code>,
<code class="function">sd_bus_open_system_remote()</code>, and
<code class="function">sd_bus_open_system_machine()</code> return a new
<a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a>.
</p><p>The functions <code class="function">sd_bus_default_user()</code> and
<code class="function">sd_bus_default_system()</code> do not create a new
- reference.</p></div><div class="refsect1"><a name="idm214182582704"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
+ reference.</p></div><div class="refsect1"><a name="idm214201000368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><p>In addition, any further connection-related errors may be
by returned. See <a href="sd_bus_send.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_send</span>(3)</span></a>.</p><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>Specified parameter is invalid
(<code class="constant">NULL</code> in case of output
- parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182889312"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
+ parameters).</p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200994176"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_open_user()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184093888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214200991008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_path_encode"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_path_encode, sd_bus_path_decode — Convert an external identifier into an object path and back</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_encode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">external_id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_decode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_external_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198368064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_path_encode"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_path_encode, sd_bus_path_decode — Convert an external identifier into an object path and back</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_encode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">external_id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_decode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_external_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214181642128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
<code class="function">sd_bus_path_decode()</code> convert external
identifier strings into object paths and back. These functions are
useful to map application-specific string identifiers of any kind
external identifier string.</p><p>The escaping used will replace all characters which are
invalid in a bus object path by "<code class="literal">_</code>", followed by a
hexadecimal value. As a special case, the empty string will be
- replaced by a lone "<code class="literal">_</code>".</p></div><div class="refsect1"><a name="idm214199750432"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_path_encode()</code>
+ replaced by a lone "<code class="literal">_</code>".</p></div><div class="refsect1"><a name="idm214185531008"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_path_encode()</code>
returns positive or 0, and a valid bus path in the return
argument. On success, <code class="function">sd_bus_path_decode()</code>
returns a positive value if the prefixed matched, or 0 if it
number is returned by either function. The returned strings must
be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>'d
- by the caller.</p></div><div class="refsect1"><a name="idm214198133152"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
+ by the caller.</p></div><div class="refsect1"><a name="idm214185527104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
<code class="function">sd_bus_path_decode()</code> are available as a
shared library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214200275024"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214185523200"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
'\" t
-.TH "SD_BUS_PATH_ENCODE" "3" "" "systemd 214" "sd_bus_path_encode"
+.TH "SD_BUS_PATH_ENCODE" "3" "" "systemd 215" "sd_bus_path_encode"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_path_encode"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_path_encode, sd_bus_path_decode — Convert an external identifier into an object path and back</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_encode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">external_id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_decode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_external_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198368064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_path_encode"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_path_encode, sd_bus_path_decode — Convert an external identifier into an object path and back</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_encode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">external_id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_path_decode</b>(</code></td><td>const char *<var class="pdparam">prefix</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret_external_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214181642128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
<code class="function">sd_bus_path_decode()</code> convert external
identifier strings into object paths and back. These functions are
useful to map application-specific string identifiers of any kind
external identifier string.</p><p>The escaping used will replace all characters which are
invalid in a bus object path by "<code class="literal">_</code>", followed by a
hexadecimal value. As a special case, the empty string will be
- replaced by a lone "<code class="literal">_</code>".</p></div><div class="refsect1"><a name="idm214199750432"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_path_encode()</code>
+ replaced by a lone "<code class="literal">_</code>".</p></div><div class="refsect1"><a name="idm214185531008"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_path_encode()</code>
returns positive or 0, and a valid bus path in the return
argument. On success, <code class="function">sd_bus_path_decode()</code>
returns a positive value if the prefixed matched, or 0 if it
number is returned by either function. The returned strings must
be
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>'d
- by the caller.</p></div><div class="refsect1"><a name="idm214198133152"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
+ by the caller.</p></div><div class="refsect1"><a name="idm214185527104"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_path_encode()</code> and
<code class="function">sd_bus_path_decode()</code> are available as a
shared library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214200275024"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214185523200"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_new, sd_bus_ref, sd_bus_unref — Create a new bus object and create or destroy references to it</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_new</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_ref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_unref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214190756512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_new()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_new, sd_bus_ref, sd_bus_unref — Create a new bus object and create or destroy references to it</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_new</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_ref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_unref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198019136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_new()</code> creates a new bus
object. This object is reference-counted, and will be destroyed
when all references are gone. Initially, the caller of this
function owns the sole reference.</p><p><code class="function">sd_bus_ref()</code> creates a new reference to
zero, <em class="parameter"><code>bus</code></em> cannot be used anymore, so
further calls to <code class="function">sd_bus_ref()</code> or
<code class="function">sd_bus_unref()</code> are illegal.</p><p><code class="function">sd_bus_unref()</code> destroys a reference to
- <em class="parameter"><code>bus</code></em>.</p></div><div class="refsect1"><a name="idm214190317120"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_new()</code> returns 0 or a
+ <em class="parameter"><code>bus</code></em>.</p></div><div class="refsect1"><a name="idm214201910768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_new()</code> returns 0 or a
positive integer. On failure, it returns a negative errno-style
error code.</p><p><code class="function">sd_bus_ref</code> always returns the argument.
</p><p><code class="function">sd_bus_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214191774096"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192238784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_new()</code> and other functions
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214201906368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214201903264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_new()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192650416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214201900048"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_request_name"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_request_name, sd_bus_release_name — Request or release a well-known name on a bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_request_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_release_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183571808"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_request_name()</code> requests
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_request_name"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_request_name, sd_bus_release_name — Request or release a well-known name on a bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_request_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_release_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192288720"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_request_name()</code> requests
a well-known name on a bus. It takes a bus connection,
a valid bus name and a flags parameter. The flags
parameter is a combination of the following
of the name when the name is already
taken.</p></dd></dl></div><p><code class="function">sd_bus_release_name()</code> releases
an acquired well-known name. It takes a bus connection
- and a valid bus name as parameters.</p></div><div class="refsect1"><a name="idm214183800816"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ and a valid bus name as parameters.</p></div><div class="refsect1"><a name="idm214196178624"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>If <code class="varname">SD_BUS_NAME_QUEUE</code> is
specified, <code class="function">sd_bus_request_name()</code>
signals to be notified when the name is successfully
acquired. <code class="function">sd_bus_request_name()</code>
returns > 0 when the name has immediately been
- acquired successfully.</p></div><div class="refsect1"><a name="idm214183114928"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EALREADY"><span class="term"><code class="varname">-EALREADY</code></span><a class="headerlink" title="Permalink to this term" href="#-EALREADY">¶</a></dt><dd><p>The caller already is
+ acquired successfully.</p></div><div class="refsect1"><a name="idm214196173680"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EALREADY"><span class="term"><code class="varname">-EALREADY</code></span><a class="headerlink" title="Permalink to this term" href="#-EALREADY">¶</a></dt><dd><p>The caller already is
the owner of the specified
name.</p></dd><dt id="-EEXIST"><span class="term"><code class="varname">-EEXIST</code></span><a class="headerlink" title="Permalink to this term" href="#-EEXIST">¶</a></dt><dd><p>The name has already
been acquired by a different peer, and
is invalid.</p></dd><dt id="-ENOTCONN"><span class="term"><code class="varname">-ENOTCONN</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTCONN">¶</a></dt><dd><p>The bus connection has
been disconnected.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The bus connection has
been created in a different process
- than the current one.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182875920"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_acquire_name()</code>
+ than the current one.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196153616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_acquire_name()</code>
and <code class="function">sd_bus_release_name()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214185727168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214196149504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>
'\" t
-.TH "SD_BUS_REQUEST_NAME" "3" "" "systemd 214" "sd_bus_request_name"
+.TH "SD_BUS_REQUEST_NAME" "3" "" "systemd 215" "sd_bus_request_name"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_request_name"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_request_name, sd_bus_release_name — Request or release a well-known name on a bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_request_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_release_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183571808"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_request_name()</code> requests
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_request_name"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_request_name, sd_bus_release_name — Request or release a well-known name on a bus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_request_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_release_name</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192288720"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_request_name()</code> requests
a well-known name on a bus. It takes a bus connection,
a valid bus name and a flags parameter. The flags
parameter is a combination of the following
of the name when the name is already
taken.</p></dd></dl></div><p><code class="function">sd_bus_release_name()</code> releases
an acquired well-known name. It takes a bus connection
- and a valid bus name as parameters.</p></div><div class="refsect1"><a name="idm214183800816"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ and a valid bus name as parameters.</p></div><div class="refsect1"><a name="idm214196178624"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</p><p>If <code class="varname">SD_BUS_NAME_QUEUE</code> is
specified, <code class="function">sd_bus_request_name()</code>
signals to be notified when the name is successfully
acquired. <code class="function">sd_bus_request_name()</code>
returns > 0 when the name has immediately been
- acquired successfully.</p></div><div class="refsect1"><a name="idm214183114928"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EALREADY"><span class="term"><code class="varname">-EALREADY</code></span><a class="headerlink" title="Permalink to this term" href="#-EALREADY">¶</a></dt><dd><p>The caller already is
+ acquired successfully.</p></div><div class="refsect1"><a name="idm214196173680"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EALREADY"><span class="term"><code class="varname">-EALREADY</code></span><a class="headerlink" title="Permalink to this term" href="#-EALREADY">¶</a></dt><dd><p>The caller already is
the owner of the specified
name.</p></dd><dt id="-EEXIST"><span class="term"><code class="varname">-EEXIST</code></span><a class="headerlink" title="Permalink to this term" href="#-EEXIST">¶</a></dt><dd><p>The name has already
been acquired by a different peer, and
is invalid.</p></dd><dt id="-ENOTCONN"><span class="term"><code class="varname">-ENOTCONN</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTCONN">¶</a></dt><dd><p>The bus connection has
been disconnected.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The bus connection has
been created in a different process
- than the current one.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182875920"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_acquire_name()</code>
+ than the current one.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196153616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_bus_acquire_name()</code>
and <code class="function">sd_bus_release_name()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214185727168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214196149504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_bus_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_new, sd_bus_ref, sd_bus_unref — Create a new bus object and create or destroy references to it</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_new</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_ref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_unref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214190756512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_new()</code> creates a new bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_new, sd_bus_ref, sd_bus_unref — Create a new bus object and create or destroy references to it</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_new</b>(</code></td><td>sd_bus **<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_ref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_bus_unref</b>(</code></td><td>sd_bus *<var class="pdparam">bus</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198019136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_new()</code> creates a new bus
object. This object is reference-counted, and will be destroyed
when all references are gone. Initially, the caller of this
function owns the sole reference.</p><p><code class="function">sd_bus_ref()</code> creates a new reference to
zero, <em class="parameter"><code>bus</code></em> cannot be used anymore, so
further calls to <code class="function">sd_bus_ref()</code> or
<code class="function">sd_bus_unref()</code> are illegal.</p><p><code class="function">sd_bus_unref()</code> destroys a reference to
- <em class="parameter"><code>bus</code></em>.</p></div><div class="refsect1"><a name="idm214190317120"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_new()</code> returns 0 or a
+ <em class="parameter"><code>bus</code></em>.</p></div><div class="refsect1"><a name="idm214201910768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_bus_new()</code> returns 0 or a
positive integer. On failure, it returns a negative errno-style
error code.</p><p><code class="function">sd_bus_ref</code> always returns the argument.
</p><p><code class="function">sd_bus_unref</code> always returns
- <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214191774096"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192238784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_new()</code> and other functions
+ <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214201906368"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Memory allocation failed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214201903264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_bus_new()</code> and other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192650416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214201900048"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
<a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>,
'\" t
-.TH "SD_EVENT_ADD_TIME" "3" "" "systemd 214" "sd_event_add_time"
+.TH "SD_EVENT_ADD_TIME" "3" "" "systemd 215" "sd_event_add_time"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214176660896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185413552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
event source to an event loop object. The event loop is specified
in <em class="parameter"><code>event</code></em>, the event source is returned in
the <em class="parameter"><code>source</code></em> parameter. The
retrieves the configured clock of a timer event source created
previously with <code class="function">sd_event_add_time()</code>. It takes
the event source object and a pointer to a variable to store the
- clock identifier in.</p></div><div class="refsect1"><a name="idm214175731552"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
+ clock identifier in.</p></div><div class="refsect1"><a name="idm214185385088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
integer. On failure, they return a negative errno-style error
- code. </p></div><div class="refsect1"><a name="idm214174266448"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178541472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
+ code. </p></div><div class="refsect1"><a name="idm214185383760"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180461872"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214174754176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180458928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214181989904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169459136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
loop object. The event loop object is returned in the
<em class="parameter"><code>event</code></em> parameter. After use, drop
the returned reference with
<code class="function">sd_event_default()</code> will result in two
distinct objects. Note that, in order to free an event loop object,
all remaining event sources of the event loop also need to be
- freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214182408096"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
+ freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214173348800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
<code class="function">sd_event_default()</code> return 0 or a positive
integer. On failure, they return a negative errno-style error
code. <code class="function">sd_event_ref()</code> always returns a pointer
to the event loop object passed
in. <code class="function">sd_event_unref()</code> always returns
- NULL.</p></div><div class="refsect1"><a name="idm214181117184"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181785424"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
+ NULL.</p></div><div class="refsect1"><a name="idm214173344688"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173340144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214183545328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214173329680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_add_io.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_io</span>(3)</span></a>,
'\" t
-.TH "SD_EVENT_NEW" "3" "" "systemd 214" "sd_event_new"
+.TH "SD_EVENT_NEW" "3" "" "systemd 215" "sd_event_new"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214181989904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169459136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
loop object. The event loop object is returned in the
<em class="parameter"><code>event</code></em> parameter. After use, drop
the returned reference with
<code class="function">sd_event_default()</code> will result in two
distinct objects. Note that, in order to free an event loop object,
all remaining event sources of the event loop also need to be
- freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214182408096"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
+ freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214173348800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
<code class="function">sd_event_default()</code> return 0 or a positive
integer. On failure, they return a negative errno-style error
code. <code class="function">sd_event_ref()</code> always returns a pointer
to the event loop object passed
in. <code class="function">sd_event_unref()</code> always returns
- NULL.</p></div><div class="refsect1"><a name="idm214181117184"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181785424"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
+ NULL.</p></div><div class="refsect1"><a name="idm214173344688"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173340144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214183545328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214173329680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_add_io.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_io</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214181989904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169459136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
loop object. The event loop object is returned in the
<em class="parameter"><code>event</code></em> parameter. After use, drop
the returned reference with
<code class="function">sd_event_default()</code> will result in two
distinct objects. Note that, in order to free an event loop object,
all remaining event sources of the event loop also need to be
- freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214182408096"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
+ freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214173348800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
<code class="function">sd_event_default()</code> return 0 or a positive
integer. On failure, they return a negative errno-style error
code. <code class="function">sd_event_ref()</code> always returns a pointer
to the event loop object passed
in. <code class="function">sd_event_unref()</code> always returns
- NULL.</p></div><div class="refsect1"><a name="idm214181117184"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181785424"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
+ NULL.</p></div><div class="refsect1"><a name="idm214173344688"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173340144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214183545328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214173329680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_add_io.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_io</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214176660896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185413552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
event source to an event loop object. The event loop is specified
in <em class="parameter"><code>event</code></em>, the event source is returned in
the <em class="parameter"><code>source</code></em> parameter. The
retrieves the configured clock of a timer event source created
previously with <code class="function">sd_event_add_time()</code>. It takes
the event source object and a pointer to a variable to store the
- clock identifier in.</p></div><div class="refsect1"><a name="idm214175731552"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
+ clock identifier in.</p></div><div class="refsect1"><a name="idm214185385088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
integer. On failure, they return a negative errno-style error
- code. </p></div><div class="refsect1"><a name="idm214174266448"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178541472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
+ code. </p></div><div class="refsect1"><a name="idm214185383760"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180461872"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214174754176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180458928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214176660896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185413552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
event source to an event loop object. The event loop is specified
in <em class="parameter"><code>event</code></em>, the event source is returned in
the <em class="parameter"><code>source</code></em> parameter. The
retrieves the configured clock of a timer event source created
previously with <code class="function">sd_event_add_time()</code>. It takes
the event source object and a pointer to a variable to store the
- clock identifier in.</p></div><div class="refsect1"><a name="idm214175731552"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
+ clock identifier in.</p></div><div class="refsect1"><a name="idm214185385088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
integer. On failure, they return a negative errno-style error
- code. </p></div><div class="refsect1"><a name="idm214174266448"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178541472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
+ code. </p></div><div class="refsect1"><a name="idm214185383760"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180461872"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214174754176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180458928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214176660896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185413552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
event source to an event loop object. The event loop is specified
in <em class="parameter"><code>event</code></em>, the event source is returned in
the <em class="parameter"><code>source</code></em> parameter. The
retrieves the configured clock of a timer event source created
previously with <code class="function">sd_event_add_time()</code>. It takes
the event source object and a pointer to a variable to store the
- clock identifier in.</p></div><div class="refsect1"><a name="idm214175731552"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
+ clock identifier in.</p></div><div class="refsect1"><a name="idm214185385088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
integer. On failure, they return a negative errno-style error
- code. </p></div><div class="refsect1"><a name="idm214174266448"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178541472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
+ code. </p></div><div class="refsect1"><a name="idm214185383760"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180461872"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214174754176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180458928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214176660896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185413552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
event source to an event loop object. The event loop is specified
in <em class="parameter"><code>event</code></em>, the event source is returned in
the <em class="parameter"><code>source</code></em> parameter. The
retrieves the configured clock of a timer event source created
previously with <code class="function">sd_event_add_time()</code>. It takes
the event source object and a pointer to a variable to store the
- clock identifier in.</p></div><div class="refsect1"><a name="idm214175731552"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
+ clock identifier in.</p></div><div class="refsect1"><a name="idm214185385088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
integer. On failure, they return a negative errno-style error
- code. </p></div><div class="refsect1"><a name="idm214174266448"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178541472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
+ code. </p></div><div class="refsect1"><a name="idm214185383760"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180461872"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214174754176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180458928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214176660896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_add_time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_add_time, sd_event_source_get_time, sd_event_source_set_time, sd_event_source_get_time_accuracy, sd_event_source_set_time_accuracy, sd_event_source_get_time_clock — Add a timer event source to an event loop</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_add_time</b>(</code></td><td>sd_event *<var class="pdparam">event</var>, </td></tr><tr><td> </td><td>sd_event_source **<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t <var class="pdparam">clock</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">accuracy</var>, </td></tr><tr><td> </td><td>sd_event_time_handler_t <var class="pdparam">handler</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_set_time_accuracy</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>usec_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_source_get_time_clock</b>(</code></td><td>sd_event_source *<var class="pdparam">source</var>, </td></tr><tr><td> </td><td>clockid_t *<var class="pdparam">clock</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185413552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_add_time()</code> adds a new timer
event source to an event loop object. The event loop is specified
in <em class="parameter"><code>event</code></em>, the event source is returned in
the <em class="parameter"><code>source</code></em> parameter. The
retrieves the configured clock of a timer event source created
previously with <code class="function">sd_event_add_time()</code>. It takes
the event source object and a pointer to a variable to store the
- clock identifier in.</p></div><div class="refsect1"><a name="idm214175731552"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
+ clock identifier in.</p></div><div class="refsect1"><a name="idm214185385088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these functions return 0 or a positive
integer. On failure, they return a negative errno-style error
- code. </p></div><div class="refsect1"><a name="idm214174266448"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178541472"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
+ code. </p></div><div class="refsect1"><a name="idm214185383760"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object.</p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>An invalid argument has been passed.</p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p>The event loop is already terminated.</p></dd><dt id="-ECHILD"><span class="term"><code class="varname">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p>The event loop has been created in a different process.</p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p>The selected clock is not supported by the event loop implementation.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180461872"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_add_time()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214174754176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214180458928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214181989904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_event_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_event_new, sd_event_default, sd_event_ref, sd_event_unref — Acquire and release an event loop object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-bus.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_new</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_event_default</b>(</code></td><td>sd_bus **<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_ref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_bus *<b class="fsfunc">sd_event_unref</b>(</code></td><td>sd_bus *<var class="pdparam">event</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214169459136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_event_new()</code> allocates a new event
loop object. The event loop object is returned in the
<em class="parameter"><code>event</code></em> parameter. After use, drop
the returned reference with
<code class="function">sd_event_default()</code> will result in two
distinct objects. Note that, in order to free an event loop object,
all remaining event sources of the event loop also need to be
- freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214182408096"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
+ freed as they each keep a reference to it.</p></div><div class="refsect1"><a name="idm214173348800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_event_new()</code> and
<code class="function">sd_event_default()</code> return 0 or a positive
integer. On failure, they return a negative errno-style error
code. <code class="function">sd_event_ref()</code> always returns a pointer
to the event loop object passed
in. <code class="function">sd_event_unref()</code> always returns
- NULL.</p></div><div class="refsect1"><a name="idm214181117184"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181785424"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
+ NULL.</p></div><div class="refsect1"><a name="idm214173344688"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p>Not enough memory to allocate object</p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p>The maximum number of event loops has been allocated.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173340144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><code class="function">sd_event_new()</code> and the other functions
described here are available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214183545328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214173329680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-event.html"><span class="citerefentry"><span class="refentrytitle">sd-event</span>(3)</span></a>,
<a href="sd_event_add_io.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_io</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192262480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214188979664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
to determine all currently available local
seats. Returns a <code class="constant">NULL</code> terminated array of seat
identifiers. The returned array and all strings it
be used to determine all Unix users who currently have login sessions.</p><p>Similarly,
<code class="function">sd_get_machine_names()</code> may be
used to determine all current virtual machines and
- containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214195789600"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
+ containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214188972032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> return the
number of entries in the arrays. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192004480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214188967808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214191998928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192866880"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
'\" t
-.TH "SD_GET_SEATS" "3" "" "systemd 214" "sd_get_seats"
+.TH "SD_GET_SEATS" "3" "" "systemd 215" "sd_get_seats"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192262480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214188979664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
to determine all currently available local
seats. Returns a <code class="constant">NULL</code> terminated array of seat
identifiers. The returned array and all strings it
be used to determine all Unix users who currently have login sessions.</p><p>Similarly,
<code class="function">sd_get_machine_names()</code> may be
used to determine all current virtual machines and
- containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214195789600"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
+ containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214188972032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> return the
number of entries in the arrays. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192004480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214188967808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214191998928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192866880"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192262480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214188979664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
to determine all currently available local
seats. Returns a <code class="constant">NULL</code> terminated array of seat
identifiers. The returned array and all strings it
be used to determine all Unix users who currently have login sessions.</p><p>Similarly,
<code class="function">sd_get_machine_names()</code> may be
used to determine all current virtual machines and
- containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214195789600"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
+ containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214188972032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> return the
number of entries in the arrays. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192004480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214188967808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214191998928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192866880"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192262480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_get_seats"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_get_seats, sd_get_sessions, sd_get_uids, sd_get_machine_names — Determine available seats, sessions, logged in users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_seats</b>(</code></td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_sessions</b>(</code></td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_uids</b>(</code></td><td>uid_t **<var class="pdparam">users</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_get_machine_names</b>(</code></td><td>char ***<var class="pdparam">machines</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214188979664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_get_seats()</code> may be used
to determine all currently available local
seats. Returns a <code class="constant">NULL</code> terminated array of seat
identifiers. The returned array and all strings it
be used to determine all Unix users who currently have login sessions.</p><p>Similarly,
<code class="function">sd_get_machine_names()</code> may be
used to determine all current virtual machines and
- containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214195789600"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
+ containers on the system.</p><p>Note that the returned lists are not sorted and in an undefined order.</p></div><div class="refsect1"><a name="idm214188972032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> return the
number of entries in the arrays. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192004480"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214188967808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_get_seats()</code>,
<code class="function">sd_get_sessions()</code>,
<code class="function">sd_get_uids()</code> and
<code class="function">sd_get_machine_names()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214191998928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192866880"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_id128_to_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_to_string, sd_id128_from_string — Format or parse 128-bit IDs as strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">sd_id128_to_string</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, char <var class="pdparam">s</var>[33]<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_from_string</b>(</code></td><td>const char *<var class="pdparam">s</var>, sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186772432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_to_string()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_id128_to_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_to_string, sd_id128_from_string — Format or parse 128-bit IDs as strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">sd_id128_to_string</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, char <var class="pdparam">s</var>[33]<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_from_string</b>(</code></td><td>const char *<var class="pdparam">s</var>, sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171729760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_to_string()</code>
formats a 128-bit ID as a character string. It expects
the ID and a string array capable of storing 33
characters. The ID will be formatted as 32 lowercase
<code class="function">SD_ID128_FORMAT_STR</code> and
<code class="function">SD_ID128_FORMAT_VAL()</code> macros. For
more information see
- <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214186838016"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_id128_to_string()</code> always
+ <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214171795728"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_id128_to_string()</code> always
succeeds and returns a pointer to the string array
passed in. <code class="function">sd_id128_from_string</code>
returns 0 on success, in which case
<em class="parameter"><code>ret</code></em> is filled in, or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214186834816"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_to_string()</code>
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214171792528"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_to_string()</code>
and <code class="function">sd_id128_from_string()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the "<code class="literal">libsystemd</code>" <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186830448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171788160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>,
<a href="printf.html"><span class="citerefentry"><span class="refentrytitle">printf</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_id128_get_machine"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_get_machine, sd_id128_get_boot — Retrieve 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_machine</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_boot</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184163600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_get_machine()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_id128_get_machine"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_get_machine, sd_id128_get_boot — Retrieve 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_machine</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_boot</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189049216"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_get_machine()</code>
returns the machine ID of the executing host. This
reads and parses the
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>
one. For more information, see
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>.</p><p>For more information about the
"<code class="literal">sd_id128_t</code>" type see
- <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214180318096"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The two calls return 0 on success (in which
+ <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214188999632"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The two calls return 0 on success (in which
case <em class="parameter"><code>ret</code></em> is filled in), or a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214180316256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_get_machine()</code>
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214188738304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_get_machine()</code>
and <code class="function">sd_id128_get_boot()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
"<code class="literal">libsystemd</code>" <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214180311872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188748720"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>,
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>,
'\" t
-.TH "SD_ID128_GET_MACHINE" "3" "" "systemd 214" "sd_id128_get_machine"
+.TH "SD_ID128_GET_MACHINE" "3" "" "systemd 215" "sd_id128_get_machine"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_id128_get_machine"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_get_machine, sd_id128_get_boot — Retrieve 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_machine</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_boot</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184163600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_get_machine()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_id128_get_machine"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_get_machine, sd_id128_get_boot — Retrieve 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_machine</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_get_boot</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189049216"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_get_machine()</code>
returns the machine ID of the executing host. This
reads and parses the
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>
one. For more information, see
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>.</p><p>For more information about the
"<code class="literal">sd_id128_t</code>" type see
- <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214180318096"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The two calls return 0 on success (in which
+ <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214188999632"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The two calls return 0 on success (in which
case <em class="parameter"><code>ret</code></em> is filled in), or a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214180316256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_get_machine()</code>
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214188738304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_get_machine()</code>
and <code class="function">sd_id128_get_boot()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
"<code class="literal">libsystemd</code>" <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214180311872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188748720"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>,
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>,
'\" t
-.TH "SD_ID128_RANDOMIZE" "3" "" "systemd 214" "sd_id128_randomize"
+.TH "SD_ID128_RANDOMIZE" "3" "" "systemd 215" "sd_id128_randomize"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_id128_randomize"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_randomize — Generate 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_randomize</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198020464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_randomize()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_id128_randomize"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_randomize — Generate 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_randomize</b>(</code></td><td>sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193952784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_randomize()</code>
generates a new randomized 128-bit ID and returns it
in <em class="parameter"><code>ret</code></em>. Every invocation
returns a new randomly generated ID. This uses the
<a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
<code class="option">--new-id</code> option may be used as a
command-line front-end for
- <code class="function">sd_id128_randomize()</code>.</p></div><div class="refsect1"><a name="idm214197892208"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The call returns 0 on success (in which
+ <code class="function">sd_id128_randomize()</code>.</p></div><div class="refsect1"><a name="idm214193496448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The call returns 0 on success (in which
case <em class="parameter"><code>ret</code></em> is filled in), or a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214197890368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_randomize()</code> interface
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192733072"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_randomize()</code> interface
is available as a shared library, which can be compiled
and linked to with the
"<code class="literal">libsystemd</code>" <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214198082432"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214193438416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>,
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214203487536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd-id128"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-id128, sd_id128_t, SD_ID128_MAKE, SD_ID128_CONST_STR, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL, sd_id128_equal — APIs for processing 128-bit IDs</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd</code> </p></div></div><div class="refsect1"><a name="idm214191197712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">sd-id128.h</code> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <a class="ulink" href="https://tools.ietf.org/html/rfc4122" target="_top">RFC
}</pre><p>Note that new, randomized IDs may be generated
with
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>'s
- <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214194742784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ <code class="option">--new-id</code> option.</p></div><div class="refsect1"><a name="idm214187744304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214203585552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214191643840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>,
<a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>,
'\" t
-.TH "SD_ID128_TO_STRING" "3" "" "systemd 214" "sd_id128_to_string"
+.TH "SD_ID128_TO_STRING" "3" "" "systemd 215" "sd_id128_to_string"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_id128_to_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_to_string, sd_id128_from_string — Format or parse 128-bit IDs as strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">sd_id128_to_string</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, char <var class="pdparam">s</var>[33]<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_from_string</b>(</code></td><td>const char *<var class="pdparam">s</var>, sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186772432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_to_string()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_id128_to_string"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_id128_to_string, sd_id128_from_string — Format or parse 128-bit IDs as strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-id128.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">sd_id128_to_string</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, char <var class="pdparam">s</var>[33]<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_id128_from_string</b>(</code></td><td>const char *<var class="pdparam">s</var>, sd_id128_t *<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171729760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_id128_to_string()</code>
formats a 128-bit ID as a character string. It expects
the ID and a string array capable of storing 33
characters. The ID will be formatted as 32 lowercase
<code class="function">SD_ID128_FORMAT_STR</code> and
<code class="function">SD_ID128_FORMAT_VAL()</code> macros. For
more information see
- <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214186838016"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_id128_to_string()</code> always
+ <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>.</p></div><div class="refsect1"><a name="idm214171795728"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_id128_to_string()</code> always
succeeds and returns a pointer to the string array
passed in. <code class="function">sd_id128_from_string</code>
returns 0 on success, in which case
<em class="parameter"><code>ret</code></em> is filled in, or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214186834816"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_to_string()</code>
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214171792528"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_id128_to_string()</code>
and <code class="function">sd_id128_from_string()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the "<code class="literal">libsystemd</code>" <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214186830448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214171788160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>,
<a href="printf.html"><span class="citerefentry"><span class="refentrytitle">printf</span>(3)</span></a>
'\" t
-.TH "SD_IS_FIFO" "3" "" "systemd 214" "sd_is_fifo"
+.TH "SD_IS_FIFO" "3" "" "systemd 215" "sd_is_fifo"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197320368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182952992"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <em class="parameter"><code>path</code></em>
parameter is not <code class="constant">NULL</code>, it is
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <code class="filename">/proc</code>
- or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214192317264"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214178000768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
- zero.</p></div><div class="refsect1"><a name="idm214192315824"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ zero.</p></div><div class="refsect1"><a name="idm214177999328"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these function use a combination of
<code class="filename">fstat()</code> and
<code class="filename">getsockname()</code> to check the file
- descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214192312688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214177996192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197320368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182952992"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <em class="parameter"><code>path</code></em>
parameter is not <code class="constant">NULL</code>, it is
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <code class="filename">/proc</code>
- or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214192317264"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214178000768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
- zero.</p></div><div class="refsect1"><a name="idm214192315824"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ zero.</p></div><div class="refsect1"><a name="idm214177999328"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these function use a combination of
<code class="filename">fstat()</code> and
<code class="filename">getsockname()</code> to check the file
- descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214192312688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214177996192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197320368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182952992"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <em class="parameter"><code>path</code></em>
parameter is not <code class="constant">NULL</code>, it is
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <code class="filename">/proc</code>
- or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214192317264"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214178000768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
- zero.</p></div><div class="refsect1"><a name="idm214192315824"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ zero.</p></div><div class="refsect1"><a name="idm214177999328"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these function use a combination of
<code class="filename">fstat()</code> and
<code class="filename">getsockname()</code> to check the file
- descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214192312688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214177996192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197320368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182952992"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <em class="parameter"><code>path</code></em>
parameter is not <code class="constant">NULL</code>, it is
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <code class="filename">/proc</code>
- or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214192317264"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214178000768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
- zero.</p></div><div class="refsect1"><a name="idm214192315824"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ zero.</p></div><div class="refsect1"><a name="idm214177999328"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these function use a combination of
<code class="filename">fstat()</code> and
<code class="filename">getsockname()</code> to check the file
- descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214192312688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214177996192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197320368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182952992"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <em class="parameter"><code>path</code></em>
parameter is not <code class="constant">NULL</code>, it is
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <code class="filename">/proc</code>
- or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214192317264"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214178000768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
- zero.</p></div><div class="refsect1"><a name="idm214192315824"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ zero.</p></div><div class="refsect1"><a name="idm214177999328"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these function use a combination of
<code class="filename">fstat()</code> and
<code class="filename">getsockname()</code> to check the file
- descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214192312688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214177996192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197320368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_is_fifo"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_is_fifo, sd_is_socket, sd_is_socket_inet, sd_is_socket_unix, sd_is_mq, sd_is_special — Check the type of a file descriptor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_fifo</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_inet</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">family</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>uint16_t <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_socket_unix</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">listening</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_mq</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_is_special</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182952992"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_is_fifo()</code> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <em class="parameter"><code>path</code></em>
parameter is not <code class="constant">NULL</code>, it is
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <code class="filename">/proc</code>
- or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214192317264"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ or <code class="filename">/sys</code>.</p></div><div class="refsect1"><a name="idm214178000768"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
- zero.</p></div><div class="refsect1"><a name="idm214192315824"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ zero.</p></div><div class="refsect1"><a name="idm214177999328"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these function use a combination of
<code class="filename">fstat()</code> and
<code class="filename">getsockname()</code> to check the file
- descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214192312688"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ descriptor type and where it is bound to.</p></div><div class="refsect1"><a name="idm214177996192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189202816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214175498320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
a match by which to filter the entries of the journal
file. Matches applied with this call will filter what
can be iterated through and read from the journal file
is removed and all entries in the journal will be
iterated again.</p><p>Note that filtering via matches only applies to
the way the journal is read, it has no effect on storage
- on disk.</p></div><div class="refsect1"><a name="idm214189378512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
+ on disk.</p></div><div class="refsect1"><a name="idm214175672320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code> and
<code class="function">sd_journal_add_conjunction()</code>
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_flush_matches()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214189367552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214175668288"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code>,
<code class="function">sd_journal_add_conjunction()</code> and
<code class="function">sd_journal_flush_matches()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214189361952"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
+ file.</p></div><div class="refsect1"><a name="idm214175662688"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
context object to iterate only through messages
generated by the Avahi service at the four error log
levels, plus all messages of the message ID
sd_journal_add_match(j, "PRIORITY=3", 0);
sd_journal_add_disjunction(j);
sd_journal_add_match(j, "MESSAGE_ID=03bb1dab98ab4ecfbf6fff2738bdd964", 0);
-}</pre></div><div class="refsect1"><a name="idm214189359248"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214175659984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189202816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214175498320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
a match by which to filter the entries of the journal
file. Matches applied with this call will filter what
can be iterated through and read from the journal file
is removed and all entries in the journal will be
iterated again.</p><p>Note that filtering via matches only applies to
the way the journal is read, it has no effect on storage
- on disk.</p></div><div class="refsect1"><a name="idm214189378512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
+ on disk.</p></div><div class="refsect1"><a name="idm214175672320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code> and
<code class="function">sd_journal_add_conjunction()</code>
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_flush_matches()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214189367552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214175668288"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code>,
<code class="function">sd_journal_add_conjunction()</code> and
<code class="function">sd_journal_flush_matches()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214189361952"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
+ file.</p></div><div class="refsect1"><a name="idm214175662688"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
context object to iterate only through messages
generated by the Avahi service at the four error log
levels, plus all messages of the message ID
sd_journal_add_match(j, "PRIORITY=3", 0);
sd_journal_add_disjunction(j);
sd_journal_add_match(j, "MESSAGE_ID=03bb1dab98ab4ecfbf6fff2738bdd964", 0);
-}</pre></div><div class="refsect1"><a name="idm214189359248"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214175659984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_ADD_MATCH" "3" "" "systemd 214" "sd_journal_add_match"
+.TH "SD_JOURNAL_ADD_MATCH" "3" "" "systemd 215" "sd_journal_add_match"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189202816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214175498320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
a match by which to filter the entries of the journal
file. Matches applied with this call will filter what
can be iterated through and read from the journal file
is removed and all entries in the journal will be
iterated again.</p><p>Note that filtering via matches only applies to
the way the journal is read, it has no effect on storage
- on disk.</p></div><div class="refsect1"><a name="idm214189378512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
+ on disk.</p></div><div class="refsect1"><a name="idm214175672320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code> and
<code class="function">sd_journal_add_conjunction()</code>
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_flush_matches()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214189367552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214175668288"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code>,
<code class="function">sd_journal_add_conjunction()</code> and
<code class="function">sd_journal_flush_matches()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214189361952"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
+ file.</p></div><div class="refsect1"><a name="idm214175662688"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
context object to iterate only through messages
generated by the Avahi service at the four error log
levels, plus all messages of the message ID
sd_journal_add_match(j, "PRIORITY=3", 0);
sd_journal_add_disjunction(j);
sd_journal_add_match(j, "MESSAGE_ID=03bb1dab98ab4ecfbf6fff2738bdd964", 0);
-}</pre></div><div class="refsect1"><a name="idm214189359248"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214175659984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187428608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182872080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
having to decompress large compressed data objects in
full.</p><p><code class="function">sd_journal_get_data_threshold()</code>
returns the currently configured data field size
- threshold.</p></div><div class="refsect1"><a name="idm214187402928"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
+ threshold.</p></div><div class="refsect1"><a name="idm214182845904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
nothing. <code class="function">sd_journal_set_data_threshold()</code>
and <code class="function">sd_journal_get_threshold()</code>
return 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214187396880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
+ code.</p></div><div class="refsect1"><a name="idm214182839856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
<code class="function">sd_journal_enumerate_data()</code>,
<code class="function">sd_journal_restart_data()</code>,
<code class="function">sd_journal_set_data_threshold()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187390528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
+ file.</p></div><div class="refsect1"><a name="idm214177917392"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
for a complete example how to use
<code class="function">sd_journal_get_data()</code>.</p><p>Use the
entry:</p><pre class="programlisting">...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
-...</pre></div><div class="refsect1"><a name="idm214182417888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+...</pre></div><div class="refsect1"><a name="idm214177912896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170804784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197431712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
queries the journal for all unique values the
specified field can take. It takes two arguments: the
journal to query and the field name to look
influenced by matches set with
<code class="function">sd_journal_add_match()</code> but this
might change in a later version of this
- software.</p></div><div class="refsect1"><a name="idm214170790992"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ software.</p></div><div class="refsect1"><a name="idm214197493904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
returns 0 on success or a negative errno-style error
code. <code class="function">sd_journal_enumerate_unique()</code>
returns a positive integer if the next field data has
been read, 0 when no more fields are known, or a
negative errno-style error
code. <code class="function">sd_journal_restart_unique()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214170780096"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214197490352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
<code class="function">sd_journal_enumerate_unique()</code> and
<code class="function">sd_journal_restart_unique()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214170775216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
+ file.</p></div><div class="refsect1"><a name="idm214197485472"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
<code class="function">SD_JOURNAL_FOREACH_UNIQUE</code> macro
to iterate through all values a field of the journal
can take. The following example lists all unit names
printf("%.*s\n", (int) l, (const char*) d);
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214170770608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197482672"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189202816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_add_match"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_add_match, sd_journal_add_disjunction, sd_journal_add_conjunction, sd_journal_flush_matches — Add or remove entry matches</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_match</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_disjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_add_conjunction</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_flush_matches</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214175498320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_add_match()</code> adds
a match by which to filter the entries of the journal
file. Matches applied with this call will filter what
can be iterated through and read from the journal file
is removed and all entries in the journal will be
iterated again.</p><p>Note that filtering via matches only applies to
the way the journal is read, it has no effect on storage
- on disk.</p></div><div class="refsect1"><a name="idm214189378512"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
+ on disk.</p></div><div class="refsect1"><a name="idm214175672320"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code> and
<code class="function">sd_journal_add_conjunction()</code>
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_flush_matches()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214189367552"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214175668288"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_add_match()</code>,
<code class="function">sd_journal_add_disjunction()</code>,
<code class="function">sd_journal_add_conjunction()</code> and
<code class="function">sd_journal_flush_matches()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214189361952"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
+ file.</p></div><div class="refsect1"><a name="idm214175662688"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following example adds matches to a journal
context object to iterate only through messages
generated by the Avahi service at the four error log
levels, plus all messages of the message ID
sd_journal_add_match(j, "PRIORITY=3", 0);
sd_journal_add_disjunction(j);
sd_journal_add_match(j, "MESSAGE_ID=03bb1dab98ab4ecfbf6fff2738bdd964", 0);
-}</pre></div><div class="refsect1"><a name="idm214189359248"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214175659984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_CATALOG" "3" "" "systemd 214" "sd_journal_get_catalog"
+.TH "SD_JOURNAL_GET_CATALOG" "3" "" "systemd 215" "sd_journal_get_catalog"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_catalog"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_catalog, sd_journal_get_catalog_for_message_id — Retrieve message catalog entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog_for_message_id</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172907056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_catalog"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_catalog, sd_journal_get_catalog_for_message_id — Retrieve message catalog entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog_for_message_id</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214178125312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
retrieves a message catalog entry for the current
journal entry. This will look up an entry in the
message catalog by using the
open journal context is necessary for this), and no
field substitution is performed.</p><p>For more information about the journal message
catalog please refer to the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/catalog" target="_top">Journal
- Message Catalogs</a> documentation page.</p></div><div class="refsect1"><a name="idm214172781216"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
+ Message Catalogs</a> documentation page.</p></div><div class="refsect1"><a name="idm214178119184"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
and
<code class="function">sd_journal_get_catalog_for_message_id()</code>
return 0 on success or a negative errno-style error
-ENOENT is returned.</p><p>On successful return, <em class="parameter"><code>ret</code></em>
points to a new string, which must be freed with
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>.
- </p></div><div class="refsect1"><a name="idm214172972304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_catalog()</code> and
+ </p></div><div class="refsect1"><a name="idm214178315952"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_catalog()</code> and
<code class="function">sd_journal_get_catalog_for_message_id()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214172968160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214178311808"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_catalog"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_catalog, sd_journal_get_catalog_for_message_id — Retrieve message catalog entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog_for_message_id</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172907056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_catalog"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_catalog, sd_journal_get_catalog_for_message_id — Retrieve message catalog entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_catalog_for_message_id</b>(</code></td><td>sd_id128_t <var class="pdparam">id</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214178125312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
retrieves a message catalog entry for the current
journal entry. This will look up an entry in the
message catalog by using the
open journal context is necessary for this), and no
field substitution is performed.</p><p>For more information about the journal message
catalog please refer to the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/catalog" target="_top">Journal
- Message Catalogs</a> documentation page.</p></div><div class="refsect1"><a name="idm214172781216"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
+ Message Catalogs</a> documentation page.</p></div><div class="refsect1"><a name="idm214178119184"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_catalog()</code>
and
<code class="function">sd_journal_get_catalog_for_message_id()</code>
return 0 on success or a negative errno-style error
-ENOENT is returned.</p><p>On successful return, <em class="parameter"><code>ret</code></em>
points to a new string, which must be freed with
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>.
- </p></div><div class="refsect1"><a name="idm214172972304"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_catalog()</code> and
+ </p></div><div class="refsect1"><a name="idm214178315952"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_catalog()</code> and
<code class="function">sd_journal_get_catalog_for_message_id()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214172968160"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214178311808"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_CURSOR" "3" "" "systemd 214" "sd_journal_get_cursor"
+.TH "SD_JOURNAL_GET_CURSOR" "3" "" "systemd 215" "sd_journal_get_cursor"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_cursor"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cursor, sd_journal_test_cursor — Get cursor string for or test cursor string against the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_test_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192150240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_cursor"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cursor, sd_journal_test_cursor — Get cursor string for or test cursor string against the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_test_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172116480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
returns a cursor string for the current journal
entry. A cursor is a serialization of the current
journal position formatted as text. The string only
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>
whether the entry being sought to was actually found
in the journal or the next closest entry was used
- instead.</p></div><div class="refsect1"><a name="idm214192215984"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
+ instead.</p></div><div class="refsect1"><a name="idm214172307584"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
returns 0 on success or a negative errno-style error
code. <code class="function">sd_journal_test_cursor()</code>
returns positive if the current entry matches the
specified cursor, 0 if it does not match the specified
cursor or a negative errno-style error code on
- failure.</p></div><div class="refsect1"><a name="idm214192213184"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_cursor()</code>
+ failure.</p></div><div class="refsect1"><a name="idm214172304784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_cursor()</code>
and <code class="function">sd_journal_test_cursor()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192209056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214172300656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_cutoff_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cutoff_realtime_usec, sd_journal_get_cutoff_monotonic_usec — Read cut-off timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214191890912"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_cutoff_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cutoff_realtime_usec, sd_journal_get_cutoff_monotonic_usec — Read cut-off timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214196451792"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
gets the realtime (wallclock) timestamps of the first
and last entries accessible in the journal. It takes
three arguments: the journal context object and two
timestamps for the boot identified by the passed boot
ID. Either one of the two timestamp arguments may be
passed as <code class="constant">NULL</code> in case the
- timestamp is not needed, but not both.</p></div><div class="refsect1"><a name="idm214192080816"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
+ timestamp is not needed, but not both.</p></div><div class="refsect1"><a name="idm214196646256"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
and
<code class="function">sd_journal_get_cutoff_monotonic_usec()</code>
return 1 on success, 0 if not suitable entries are in
- the journal or a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192078144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ the journal or a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214196643584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_journal_get_cutoff_realtime_usec()</code>
and
<code class="function">sd_journal_get_cutoff_monotonic_usec()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192073984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214196639424"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_CUTOFF_REALTIME_USEC" "3" "" "systemd 214" "sd_journal_get_cutoff_realtime_usec"
+.TH "SD_JOURNAL_GET_CUTOFF_REALTIME_USEC" "3" "" "systemd 215" "sd_journal_get_cutoff_realtime_usec"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_cutoff_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cutoff_realtime_usec, sd_journal_get_cutoff_monotonic_usec — Read cut-off timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214191890912"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_cutoff_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cutoff_realtime_usec, sd_journal_get_cutoff_monotonic_usec — Read cut-off timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cutoff_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">from</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">to</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214196451792"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
gets the realtime (wallclock) timestamps of the first
and last entries accessible in the journal. It takes
three arguments: the journal context object and two
timestamps for the boot identified by the passed boot
ID. Either one of the two timestamp arguments may be
passed as <code class="constant">NULL</code> in case the
- timestamp is not needed, but not both.</p></div><div class="refsect1"><a name="idm214192080816"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
+ timestamp is not needed, but not both.</p></div><div class="refsect1"><a name="idm214196646256"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cutoff_realtime_usec()</code>
and
<code class="function">sd_journal_get_cutoff_monotonic_usec()</code>
return 1 on success, 0 if not suitable entries are in
- the journal or a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214192078144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ the journal or a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214196643584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_journal_get_cutoff_realtime_usec()</code>
and
<code class="function">sd_journal_get_cutoff_monotonic_usec()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192073984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214196639424"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_DATA" "3" "" "systemd 214" "sd_journal_get_data"
+.TH "SD_JOURNAL_GET_DATA" "3" "" "systemd 215" "sd_journal_get_data"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\&.\&.\&.
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%\&.*s\en", (int) length, data);
}
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187428608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182872080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
having to decompress large compressed data objects in
full.</p><p><code class="function">sd_journal_get_data_threshold()</code>
returns the currently configured data field size
- threshold.</p></div><div class="refsect1"><a name="idm214187402928"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
+ threshold.</p></div><div class="refsect1"><a name="idm214182845904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
nothing. <code class="function">sd_journal_set_data_threshold()</code>
and <code class="function">sd_journal_get_threshold()</code>
return 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214187396880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
+ code.</p></div><div class="refsect1"><a name="idm214182839856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
<code class="function">sd_journal_enumerate_data()</code>,
<code class="function">sd_journal_restart_data()</code>,
<code class="function">sd_journal_set_data_threshold()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187390528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
+ file.</p></div><div class="refsect1"><a name="idm214177917392"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
for a complete example how to use
<code class="function">sd_journal_get_data()</code>.</p><p>Use the
entry:</p><pre class="programlisting">...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
-...</pre></div><div class="refsect1"><a name="idm214182417888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+...</pre></div><div class="refsect1"><a name="idm214177912896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<programlisting>...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187428608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182872080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
having to decompress large compressed data objects in
full.</p><p><code class="function">sd_journal_get_data_threshold()</code>
returns the currently configured data field size
- threshold.</p></div><div class="refsect1"><a name="idm214187402928"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
+ threshold.</p></div><div class="refsect1"><a name="idm214182845904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
nothing. <code class="function">sd_journal_set_data_threshold()</code>
and <code class="function">sd_journal_get_threshold()</code>
return 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214187396880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
+ code.</p></div><div class="refsect1"><a name="idm214182839856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
<code class="function">sd_journal_enumerate_data()</code>,
<code class="function">sd_journal_restart_data()</code>,
<code class="function">sd_journal_set_data_threshold()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187390528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
+ file.</p></div><div class="refsect1"><a name="idm214177917392"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
for a complete example how to use
<code class="function">sd_journal_get_data()</code>.</p><p>Use the
entry:</p><pre class="programlisting">...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
-...</pre></div><div class="refsect1"><a name="idm214182417888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+...</pre></div><div class="refsect1"><a name="idm214177912896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_FD" "3" "" "systemd 214" "sd_journal_get_fd"
+.TH "SD_JOURNAL_GET_FD" "3" "" "systemd 215" "sd_journal_get_fd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_realtime_usec, sd_journal_get_monotonic_usec — Read timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>sd_id128_t *<var class="pdparam">boot_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195659952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_realtime_usec, sd_journal_get_monotonic_usec — Read timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>sd_id128_t *<var class="pdparam">boot_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173749456"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
gets the realtime (wallclock) timestamp of the
current journal entry. It takes two arguments: the
journal context object and a pointer to a 64-bit
is not of the current system boot.</p><p>Note that these functions will not work before
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
(or related call) has been called at least
- once, in order to position the read pointer at a valid entry.</p></div><div class="refsect1"><a name="idm214199554448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
+ once, in order to position the read pointer at a valid entry.</p></div><div class="refsect1"><a name="idm214173943232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
and
<code class="function">sd_journal_get_monotonic_usec()</code>
returns 0 on success or a negative errno-style error
code. If the boot ID parameter was passed <code class="constant">NULL</code> and the
monotonic timestamp of the current journal entry is
- not of the current system boot, -ESTALE is returned by <code class="function">sd_journal_get_monotonic_usec()</code>.</p></div><div class="refsect1"><a name="idm214199550544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ not of the current system boot, -ESTALE is returned by <code class="function">sd_journal_get_monotonic_usec()</code>.</p></div><div class="refsect1"><a name="idm214173939296"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_journal_get_realtime_usec()</code>
and
<code class="function">sd_journal_get_monotonic_usec()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214199546384"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214173935136"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_REALTIME_USEC" "3" "" "systemd 214" "sd_journal_get_realtime_usec"
+.TH "SD_JOURNAL_GET_REALTIME_USEC" "3" "" "systemd 215" "sd_journal_get_realtime_usec"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_realtime_usec, sd_journal_get_monotonic_usec — Read timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>sd_id128_t *<var class="pdparam">boot_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195659952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_realtime_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_realtime_usec, sd_journal_get_monotonic_usec — Read timestamps from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var>, </td></tr><tr><td> </td><td>sd_id128_t *<var class="pdparam">boot_id</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173749456"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
gets the realtime (wallclock) timestamp of the
current journal entry. It takes two arguments: the
journal context object and a pointer to a 64-bit
is not of the current system boot.</p><p>Note that these functions will not work before
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
(or related call) has been called at least
- once, in order to position the read pointer at a valid entry.</p></div><div class="refsect1"><a name="idm214199554448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
+ once, in order to position the read pointer at a valid entry.</p></div><div class="refsect1"><a name="idm214173943232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_realtime_usec()</code>
and
<code class="function">sd_journal_get_monotonic_usec()</code>
returns 0 on success or a negative errno-style error
code. If the boot ID parameter was passed <code class="constant">NULL</code> and the
monotonic timestamp of the current journal entry is
- not of the current system boot, -ESTALE is returned by <code class="function">sd_journal_get_monotonic_usec()</code>.</p></div><div class="refsect1"><a name="idm214199550544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
+ not of the current system boot, -ESTALE is returned by <code class="function">sd_journal_get_monotonic_usec()</code>.</p></div><div class="refsect1"><a name="idm214173939296"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
<code class="function">sd_journal_get_realtime_usec()</code>
and
<code class="function">sd_journal_get_monotonic_usec()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214199546384"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214173935136"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_GET_USAGE" "3" "" "systemd 214" "sd_journal_get_usage"
+.TH "SD_JOURNAL_GET_USAGE" "3" "" "systemd 215" "sd_journal_get_usage"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_usage"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_usage — Journal disk usage</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_usage</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">bytes</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192658160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_usage()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_usage"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_usage — Journal disk usage</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_usage</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">bytes</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179445872"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_usage()</code>
determines the total disk space currently used by
journal files (in bytes). If
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code> was passed
when opening the journal, this value will only reflect
the size of journal files of the local host, otherwise
- of all hosts.</p></div><div class="refsect1"><a name="idm214192655664"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_usage()</code>
+ of all hosts.</p></div><div class="refsect1"><a name="idm214179443376"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_usage()</code>
returns 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214192653808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_usage()</code>
+ code.</p></div><div class="refsect1"><a name="idm214179316592"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_usage()</code>
interface is available as a shared library, which can be
compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192650416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214179313200"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_NEXT" "3" "" "systemd 214" "sd_journal_next"
+.TH "SD_JOURNAL_NEXT" "3" "" "systemd 215" "sd_journal_next"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\en", strerror(\-r));
continue;
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184331424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197612176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
for an example. Similarly,
<code class="function">SD_JOURNAL_FOREACH_BACKWARDS()</code>
may be used for iterating the journal in reverse
- order.</p></div><div class="refsect1"><a name="idm214184318032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
+ order.</p></div><div class="refsect1"><a name="idm214197598784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
<code class="function">sd_journal_previous()</code> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
- considered an EOF marker.</p></div><div class="refsect1"><a name="idm214184307648"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
+ considered an EOF marker.</p></div><div class="refsect1"><a name="idm214197588368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
<code class="function">sd_journal_next_skip()</code> and
<code class="function">sd_journal_previous_skip()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184302064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214197582832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214184298560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197579328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184331424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197612176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
for an example. Similarly,
<code class="function">SD_JOURNAL_FOREACH_BACKWARDS()</code>
may be used for iterating the journal in reverse
- order.</p></div><div class="refsect1"><a name="idm214184318032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
+ order.</p></div><div class="refsect1"><a name="idm214197598784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
<code class="function">sd_journal_previous()</code> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
- considered an EOF marker.</p></div><div class="refsect1"><a name="idm214184307648"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
+ considered an EOF marker.</p></div><div class="refsect1"><a name="idm214197588368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
<code class="function">sd_journal_next_skip()</code> and
<code class="function">sd_journal_previous_skip()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184302064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214197582832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214184298560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197579328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_OPEN" "3" "" "systemd 214" "sd_journal_open"
+.TH "SD_JOURNAL_OPEN" "3" "" "systemd 215" "sd_journal_open"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195234384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_open"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_open, sd_journal_open_directory, sd_journal_open_files, sd_journal_open_container, sd_journal_close, sd_journal, SD_JOURNAL_LOCAL_ONLY, SD_JOURNAL_RUNTIME_ONLY, SD_JOURNAL_SYSTEM, SD_JOURNAL_CURRENT_USER — Open the system journal for reading</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_directory</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_files</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">paths</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_open_container</b>(</code></td><td>sd_journal **<var class="pdparam">ret</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">machine</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_close</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214202620928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_open()</code> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
locally, to its closest entry in time)
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>.</p><p>Notification of journal changes is available via
<code class="function">sd_journal_get_fd()</code> and related
- calls.</p></div><div class="refsect1"><a name="idm214195199952"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ calls.</p></div><div class="refsect1"><a name="idm214202586464"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code>, and
<code class="function">sd_journal_open_files()</code> calls
return 0 on success or a negative errno-style error
code. <code class="function">sd_journal_close()</code> returns
- nothing.</p></div><div class="refsect1"><a name="idm214195195744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
+ nothing.</p></div><div class="refsect1"><a name="idm214202582256"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_open_directory()</code> and
<code class="function">sd_journal_close()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214190277136"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
+ file.</p></div><div class="refsect1"><a name="idm214197661808"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p><code class="function">sd_journal_open()</code>,
<code class="function">sd_journal_close()</code>,
<code class="constant">SD_JOURNAL_LOCAL_ONLY</code>,
<code class="constant">SD_JOURNAL_RUNTIME_ONLY</code>,
and <code class="function">sd_journal_open_files()</code>
were added in systemd-205.
<code class="constant">SD_JOURNAL_SYSTEM_ONLY</code>
- was deprecated.</p></div><div class="refsect1"><a name="idm214190270800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ was deprecated.</p></div><div class="refsect1"><a name="idm214197655472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171911712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193392656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
log entries that are generated via
<code class="function">sd_journal_send()</code>. Using
<code class="function">syslog()</code> has the benefit of being
- more portable.</p></div><div class="refsect1"><a name="idm214171870448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
+ more portable.</p></div><div class="refsect1"><a name="idm214193498576"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
errno-style error code. The
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>
variable itself is not altered.</p><p>If
<a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>
is not running (the socket is not present), those
- functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214166952576"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
+ functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214193495056"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
safe" in the meaning of <a href="signal.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>.
</p><p><code class="function">sd_journal_print</code>,
<code class="function">sd_journal_printv</code>,
<code class="function">sd_journal_send</code>, and
<code class="function">sd_journal_perror</code> are
- not async signal safe.</p></div><div class="refsect1"><a name="idm214166947408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
+ not async signal safe.</p></div><div class="refsect1"><a name="idm214193489376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
<code class="function">sd_journal_printv()</code>,
<code class="function">sd_journal_send()</code> and
<code class="function">sd_journal_sendv()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214166942448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188855456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184331424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197612176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
for an example. Similarly,
<code class="function">SD_JOURNAL_FOREACH_BACKWARDS()</code>
may be used for iterating the journal in reverse
- order.</p></div><div class="refsect1"><a name="idm214184318032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
+ order.</p></div><div class="refsect1"><a name="idm214197598784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
<code class="function">sd_journal_previous()</code> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
- considered an EOF marker.</p></div><div class="refsect1"><a name="idm214184307648"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
+ considered an EOF marker.</p></div><div class="refsect1"><a name="idm214197588368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
<code class="function">sd_journal_next_skip()</code> and
<code class="function">sd_journal_previous_skip()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184302064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214197582832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214184298560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197579328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214184331424"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_next, sd_journal_previous, sd_journal_next_skip, sd_journal_previous_skip, SD_JOURNAL_FOREACH, SD_JOURNAL_FOREACH_BACKWARDS — Advance or set back the read pointer in the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_next_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_previous_skip</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">skip</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_BACKWARDS</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197612176"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_next()</code> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
for an example. Similarly,
<code class="function">SD_JOURNAL_FOREACH_BACKWARDS()</code>
may be used for iterating the journal in reverse
- order.</p></div><div class="refsect1"><a name="idm214184318032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
+ order.</p></div><div class="refsect1"><a name="idm214197598784"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
<code class="function">sd_journal_previous()</code> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
- considered an EOF marker.</p></div><div class="refsect1"><a name="idm214184307648"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
+ considered an EOF marker.</p></div><div class="refsect1"><a name="idm214197588368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_next()</code>, <code class="function">sd_journal_previous()</code>,
<code class="function">sd_journal_next_skip()</code> and
<code class="function">sd_journal_previous_skip()</code> interfaces are
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184302064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214197582832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
const char *d;
size_t l;
- r = sd_journal_get_data(j, "MESSAGE", &d, &l);
+ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l);
if (r < 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214184298560"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197579328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_PRINT" "3" "" "systemd 214" "sd_journal_print"
+.TH "SD_JOURNAL_PRINT" "3" "" "systemd 215" "sd_journal_print"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171911712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193392656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
log entries that are generated via
<code class="function">sd_journal_send()</code>. Using
<code class="function">syslog()</code> has the benefit of being
- more portable.</p></div><div class="refsect1"><a name="idm214171870448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
+ more portable.</p></div><div class="refsect1"><a name="idm214193498576"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
errno-style error code. The
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>
variable itself is not altered.</p><p>If
<a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>
is not running (the socket is not present), those
- functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214166952576"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
+ functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214193495056"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
safe" in the meaning of <a href="signal.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>.
</p><p><code class="function">sd_journal_print</code>,
<code class="function">sd_journal_printv</code>,
<code class="function">sd_journal_send</code>, and
<code class="function">sd_journal_perror</code> are
- not async signal safe.</p></div><div class="refsect1"><a name="idm214166947408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
+ not async signal safe.</p></div><div class="refsect1"><a name="idm214193489376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
<code class="function">sd_journal_printv()</code>,
<code class="function">sd_journal_send()</code> and
<code class="function">sd_journal_sendv()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214166942448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188855456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171911712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193392656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
log entries that are generated via
<code class="function">sd_journal_send()</code>. Using
<code class="function">syslog()</code> has the benefit of being
- more portable.</p></div><div class="refsect1"><a name="idm214171870448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
+ more portable.</p></div><div class="refsect1"><a name="idm214193498576"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
errno-style error code. The
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>
variable itself is not altered.</p><p>If
<a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>
is not running (the socket is not present), those
- functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214166952576"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
+ functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214193495056"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
safe" in the meaning of <a href="signal.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>.
</p><p><code class="function">sd_journal_print</code>,
<code class="function">sd_journal_printv</code>,
<code class="function">sd_journal_send</code>, and
<code class="function">sd_journal_perror</code> are
- not async signal safe.</p></div><div class="refsect1"><a name="idm214166947408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
+ not async signal safe.</p></div><div class="refsect1"><a name="idm214193489376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
<code class="function">sd_journal_printv()</code>,
<code class="function">sd_journal_send()</code> and
<code class="function">sd_journal_sendv()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214166942448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188855456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_QUERY_UNIQUE" "3" "" "systemd 214" "sd_journal_query_unique"
+.TH "SD_JOURNAL_QUERY_UNIQUE" "3" "" "systemd 215" "sd_journal_query_unique"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170804784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197431712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
queries the journal for all unique values the
specified field can take. It takes two arguments: the
journal to query and the field name to look
influenced by matches set with
<code class="function">sd_journal_add_match()</code> but this
might change in a later version of this
- software.</p></div><div class="refsect1"><a name="idm214170790992"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ software.</p></div><div class="refsect1"><a name="idm214197493904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
returns 0 on success or a negative errno-style error
code. <code class="function">sd_journal_enumerate_unique()</code>
returns a positive integer if the next field data has
been read, 0 when no more fields are known, or a
negative errno-style error
code. <code class="function">sd_journal_restart_unique()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214170780096"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214197490352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
<code class="function">sd_journal_enumerate_unique()</code> and
<code class="function">sd_journal_restart_unique()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214170775216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
+ file.</p></div><div class="refsect1"><a name="idm214197485472"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
<code class="function">SD_JOURNAL_FOREACH_UNIQUE</code> macro
to iterate through all values a field of the journal
can take. The following example lists all unit names
printf("%.*s\n", (int) l, (const char*) d);
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214170770608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197482672"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187428608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182872080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
having to decompress large compressed data objects in
full.</p><p><code class="function">sd_journal_get_data_threshold()</code>
returns the currently configured data field size
- threshold.</p></div><div class="refsect1"><a name="idm214187402928"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
+ threshold.</p></div><div class="refsect1"><a name="idm214182845904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
nothing. <code class="function">sd_journal_set_data_threshold()</code>
and <code class="function">sd_journal_get_threshold()</code>
return 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214187396880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
+ code.</p></div><div class="refsect1"><a name="idm214182839856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
<code class="function">sd_journal_enumerate_data()</code>,
<code class="function">sd_journal_restart_data()</code>,
<code class="function">sd_journal_set_data_threshold()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187390528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
+ file.</p></div><div class="refsect1"><a name="idm214177917392"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
for a complete example how to use
<code class="function">sd_journal_get_data()</code>.</p><p>Use the
entry:</p><pre class="programlisting">...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
-...</pre></div><div class="refsect1"><a name="idm214182417888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+...</pre></div><div class="refsect1"><a name="idm214177912896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170804784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_query_unique"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_query_unique, sd_journal_enumerate_unique, sd_journal_restart_unique, SD_JOURNAL_FOREACH_UNIQUE — Read unique data fields from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_query_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_unique</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_UNIQUE</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197431712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
queries the journal for all unique values the
specified field can take. It takes two arguments: the
journal to query and the field name to look
influenced by matches set with
<code class="function">sd_journal_add_match()</code> but this
might change in a later version of this
- software.</p></div><div class="refsect1"><a name="idm214170790992"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
+ software.</p></div><div class="refsect1"><a name="idm214197493904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_query_unique()</code>
returns 0 on success or a negative errno-style error
code. <code class="function">sd_journal_enumerate_unique()</code>
returns a positive integer if the next field data has
been read, 0 when no more fields are known, or a
negative errno-style error
code. <code class="function">sd_journal_restart_unique()</code>
- returns nothing.</p></div><div class="refsect1"><a name="idm214170780096"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
+ returns nothing.</p></div><div class="refsect1"><a name="idm214197490352"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_query_unique()</code>,
<code class="function">sd_journal_enumerate_unique()</code> and
<code class="function">sd_journal_restart_unique()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214170775216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
+ file.</p></div><div class="refsect1"><a name="idm214197485472"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Use the
<code class="function">SD_JOURNAL_FOREACH_UNIQUE</code> macro
to iterate through all values a field of the journal
can take. The following example lists all unit names
printf("%.*s\n", (int) l, (const char*) d);
sd_journal_close(j);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214170770608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214197482672"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
- journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214177237680"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
+ journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186439344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
seeks to the beginning of the journal, i.e. the oldest
available entry.</p><p>Similarly,
<code class="function">sd_journal_seek_tail()</code> may be
if
<a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a>
is used the closest preceding entry is sought
- to.</p></div><div class="refsect1"><a name="idm214177223936"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214177215408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
+ to.</p></div><div class="refsect1"><a name="idm214186572240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214186571056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
<code class="function">sd_journal_seek_tail()</code>,
<code class="function">sd_journal_seek_monotonic_usec()</code>,
<code class="function">sd_journal_seek_realtime_usec()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177209088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214186564736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_SEEK_HEAD" "3" "" "systemd 214" "sd_journal_seek_head"
+.TH "SD_JOURNAL_SEEK_HEAD" "3" "" "systemd 215" "sd_journal_seek_head"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
- journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214177237680"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
+ journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186439344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
seeks to the beginning of the journal, i.e. the oldest
available entry.</p><p>Similarly,
<code class="function">sd_journal_seek_tail()</code> may be
if
<a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a>
is used the closest preceding entry is sought
- to.</p></div><div class="refsect1"><a name="idm214177223936"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214177215408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
+ to.</p></div><div class="refsect1"><a name="idm214186572240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214186571056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
<code class="function">sd_journal_seek_tail()</code>,
<code class="function">sd_journal_seek_monotonic_usec()</code>,
<code class="function">sd_journal_seek_realtime_usec()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177209088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214186564736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
- journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214177237680"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
+ journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186439344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
seeks to the beginning of the journal, i.e. the oldest
available entry.</p><p>Similarly,
<code class="function">sd_journal_seek_tail()</code> may be
if
<a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a>
is used the closest preceding entry is sought
- to.</p></div><div class="refsect1"><a name="idm214177223936"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214177215408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
+ to.</p></div><div class="refsect1"><a name="idm214186572240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214186571056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
<code class="function">sd_journal_seek_tail()</code>,
<code class="function">sd_journal_seek_monotonic_usec()</code>,
<code class="function">sd_journal_seek_realtime_usec()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177209088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214186564736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
- journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214177237680"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
+ journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186439344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
seeks to the beginning of the journal, i.e. the oldest
available entry.</p><p>Similarly,
<code class="function">sd_journal_seek_tail()</code> may be
if
<a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a>
is used the closest preceding entry is sought
- to.</p></div><div class="refsect1"><a name="idm214177223936"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214177215408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
+ to.</p></div><div class="refsect1"><a name="idm214186572240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214186571056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
<code class="function">sd_journal_seek_tail()</code>,
<code class="function">sd_journal_seek_monotonic_usec()</code>,
<code class="function">sd_journal_seek_realtime_usec()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177209088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214186564736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
- journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214177237680"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_seek_head"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_seek_head, sd_journal_seek_tail, sd_journal_seek_monotonic_usec, sd_journal_seek_realtime_usec, sd_journal_seek_cursor — Seek to a position in the
+ journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_head</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_tail</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_monotonic_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>sd_id128_t <var class="pdparam">boot_id</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_realtime_usec</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_seek_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214186439344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_seek_head()</code>
seeks to the beginning of the journal, i.e. the oldest
available entry.</p><p>Similarly,
<code class="function">sd_journal_seek_tail()</code> may be
if
<a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a>
is used the closest preceding entry is sought
- to.</p></div><div class="refsect1"><a name="idm214177223936"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214177215408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
+ to.</p></div><div class="refsect1"><a name="idm214186572240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The functions return 0 on success or a negative
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214186571056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_seek_head()</code>,
<code class="function">sd_journal_seek_tail()</code>,
<code class="function">sd_journal_seek_monotonic_usec()</code>,
<code class="function">sd_journal_seek_realtime_usec()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214177209088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214186564736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171911712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193392656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
log entries that are generated via
<code class="function">sd_journal_send()</code>. Using
<code class="function">syslog()</code> has the benefit of being
- more portable.</p></div><div class="refsect1"><a name="idm214171870448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
+ more portable.</p></div><div class="refsect1"><a name="idm214193498576"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
errno-style error code. The
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>
variable itself is not altered.</p><p>If
<a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>
is not running (the socket is not present), those
- functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214166952576"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
+ functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214193495056"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
safe" in the meaning of <a href="signal.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>.
</p><p><code class="function">sd_journal_print</code>,
<code class="function">sd_journal_printv</code>,
<code class="function">sd_journal_send</code>, and
<code class="function">sd_journal_perror</code> are
- not async signal safe.</p></div><div class="refsect1"><a name="idm214166947408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
+ not async signal safe.</p></div><div class="refsect1"><a name="idm214193489376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
<code class="function">sd_journal_printv()</code>,
<code class="function">sd_journal_send()</code> and
<code class="function">sd_journal_sendv()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214166942448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188855456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214171911712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_print"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_print, sd_journal_printv, sd_journal_send, sd_journal_sendv, sd_journal_perror, SD_JOURNAL_SUPPRESS_LOCATION — Submit log entries to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_print</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_printv</b>(</code></td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_send</b>(</code></td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_sendv</b>(</code></td><td>const struct iovec *<var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">n</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_perror</b>(</code></td><td>const char *<var class="pdparam">message</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214193392656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_print()</code> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
log entries that are generated via
<code class="function">sd_journal_send()</code>. Using
<code class="function">syslog()</code> has the benefit of being
- more portable.</p></div><div class="refsect1"><a name="idm214171870448"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
+ more portable.</p></div><div class="refsect1"><a name="idm214193498576"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The four calls return 0 on success or a negative
errno-style error code. The
<a href="errno.html"><span class="citerefentry"><span class="refentrytitle">errno</span>(3)</span></a>
variable itself is not altered.</p><p>If
<a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>
is not running (the socket is not present), those
- functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214166952576"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
+ functions do nothing, and also return 0.</p></div><div class="refsect1"><a name="idm214193495056"></a><h2 id="Async signal safety">Async signal safety<a class="headerlink" title="Permalink to this headline" href="#Async%20signal%20safety">¶</a></h2><p><code class="function">sd_journal_sendv()</code> is "async signal
safe" in the meaning of <a href="signal.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>.
</p><p><code class="function">sd_journal_print</code>,
<code class="function">sd_journal_printv</code>,
<code class="function">sd_journal_send</code>, and
<code class="function">sd_journal_perror</code> are
- not async signal safe.</p></div><div class="refsect1"><a name="idm214166947408"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
+ not async signal safe.</p></div><div class="refsect1"><a name="idm214193489376"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_print()</code>,
<code class="function">sd_journal_printv()</code>,
<code class="function">sd_journal_send()</code> and
<code class="function">sd_journal_sendv()</code> interfaces
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214166942448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214188855456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187428608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_data"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_data, sd_journal_enumerate_data, sd_journal_restart_data, SD_JOURNAL_FOREACH_DATA, sd_journal_set_data_threshold, sd_journal_get_data_threshold — Read data fields from the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">field</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_enumerate_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void **<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">sd_journal_restart_data</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef"><b class="fsfunc">SD_JOURNAL_FOREACH_DATA</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const void *<var class="pdparam">data</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_set_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_data_threshold</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>size_t *<var class="pdparam">sz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214182872080"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_data()</code> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
having to decompress large compressed data objects in
full.</p><p><code class="function">sd_journal_get_data_threshold()</code>
returns the currently configured data field size
- threshold.</p></div><div class="refsect1"><a name="idm214187402928"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
+ threshold.</p></div><div class="refsect1"><a name="idm214182845904"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_data()</code>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
nothing. <code class="function">sd_journal_set_data_threshold()</code>
and <code class="function">sd_journal_get_threshold()</code>
return 0 on success or a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214187396880"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
+ code.</p></div><div class="refsect1"><a name="idm214182839856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_data()</code>,
<code class="function">sd_journal_enumerate_data()</code>,
<code class="function">sd_journal_restart_data()</code>,
<code class="function">sd_journal_set_data_threshold()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214187390528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
+ file.</p></div><div class="refsect1"><a name="idm214177917392"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>See
<a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>
for a complete example how to use
<code class="function">sd_journal_get_data()</code>.</p><p>Use the
entry:</p><pre class="programlisting">...
int print_fields(sd_journal *j) {
const void *data;
- size_t l;
+ size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
-...</pre></div><div class="refsect1"><a name="idm214182417888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+...</pre></div><div class="refsect1"><a name="idm214177912896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
'\" t
-.TH "SD_JOURNAL_STREAM_FD" "3" "" "systemd 214" "sd_journal_stream_fd"
+.TH "SD_JOURNAL_STREAM_FD" "3" "" "systemd 215" "sd_journal_stream_fd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_stream_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_stream_fd — Create log stream file descriptor to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_stream_fd</b>(</code></td><td>const char *<var class="pdparam">identifier</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">level_prefix</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187843248"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_stream_fd()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_stream_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_stream_fd — Create log stream file descriptor to the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_stream_fd</b>(</code></td><td>const char *<var class="pdparam">identifier</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">priority</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">level_prefix</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214173639024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_stream_fd()</code> may
be used to create a log stream file descriptor. Log
messages written to this file descriptor as simple
newline-separated text strings are written to the
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>
for more information.</p><p>It is recommended that applications log UTF-8
messages only with this API, but this is not
- enforced.</p></div><div class="refsect1"><a name="idm214186429328"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The call returns a valid write-only file descriptor on success or a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214186004144"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_stream_fd()</code>
+ enforced.</p></div><div class="refsect1"><a name="idm214173632368"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>The call returns a valid write-only file descriptor on success or a
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214173631056"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_stream_fd()</code>
interface is available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184631376"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Creating a log stream suitable for
+ file.</p></div><div class="refsect1"><a name="idm214173627664"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Creating a log stream suitable for
<a href="fprintf.html"><span class="citerefentry"><span class="refentrytitle">fprintf</span>(3)</span></a>:</p><pre class="programlisting">#include <syslog.h>
#include <stdio.h>
#include <string.h>
fprintf(log, SD_WARNING "This is a warning!\n");
fclose(log);
return 0;
-}</pre></div><div class="refsect1"><a name="idm214186692464"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214173625024"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_cursor"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cursor, sd_journal_test_cursor — Get cursor string for or test cursor string against the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_test_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192150240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_cursor"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_cursor, sd_journal_test_cursor — Get cursor string for or test cursor string against the current journal entry</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_test_cursor</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">cursor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172116480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
returns a cursor string for the current journal
entry. A cursor is a serialization of the current
journal position formatted as text. The string only
<a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a>
whether the entry being sought to was actually found
in the journal or the next closest entry was used
- instead.</p></div><div class="refsect1"><a name="idm214192215984"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
+ instead.</p></div><div class="refsect1"><a name="idm214172307584"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_cursor()</code>
returns 0 on success or a negative errno-style error
code. <code class="function">sd_journal_test_cursor()</code>
returns positive if the current entry matches the
specified cursor, 0 if it does not match the specified
cursor or a negative errno-style error code on
- failure.</p></div><div class="refsect1"><a name="idm214192213184"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_cursor()</code>
+ failure.</p></div><div class="refsect1"><a name="idm214172304784"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_cursor()</code>
and <code class="function">sd_journal_test_cursor()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214192209056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214172300656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
- interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214189551600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_journal_get_fd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_journal_get_fd, sd_journal_get_events, sd_journal_get_timeout, sd_journal_process, sd_journal_wait, sd_journal_reliable_fd, SD_JOURNAL_NOP, SD_JOURNAL_APPEND, SD_JOURNAL_INVALIDATE — Journal change notification
+ interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-journal.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_events</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_get_timeout</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_process</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_wait</b>(</code></td><td>sd_journal *<var class="pdparam">j</var>, </td></tr><tr><td> </td><td>uint64_t <var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_journal_reliable_fd</b>(</code></td><td>sd_journal *<var class="pdparam">j</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185830672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
no need to invoke this function directly as
<code class="function">sd_journal_get_timeout()</code> on these
file systems will ask for timeouts explicitly
- anyway.</p></div><div class="refsect1"><a name="idm214189511696"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
+ anyway.</p></div><div class="refsect1"><a name="idm214185790416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p><code class="function">sd_journal_get_fd()</code> returns
a valid file descriptor on success or a negative
errno-style error code.</p><p><code class="function">sd_journal_get_events()</code>
returns a combination of <code class="constant">POLLIN</code>,
probably refresh their entire display, while in the
case of <code class="constant">SD_JOURNAL_APPEND</code>, it is
sufficient to simply continue reading at the previous
- end of the journal.</p></div><div class="refsect1"><a name="idm214184533264"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
+ end of the journal.</p></div><div class="refsect1"><a name="idm214180864000"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_journal_get_fd()</code>,
<code class="function">sd_journal_get_events()</code>,
<code class="function">sd_journal_reliable_fd()</code>,
<code class="function">sd_journal_process()</code> and
available as a shared library, which can be compiled and
linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214184527680"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
+ file.</p></div><div class="refsect1"><a name="idm214180858416"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Iterating through the journal, in a live view tracking all changes:</p><pre class="programlisting">#include <stdio.h>
#include <string.h>
#include <systemd/sd-journal.h>
pollfd.events = sd_journal_get_events(j);
poll(&pollfd, 1, msec);
return sd_journal_process(j);
-}</pre></div><div class="refsect1"><a name="idm214184521056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+}</pre></div><div class="refsect1"><a name="idm214180851792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
<a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>,
'\" t
-.TH "SD_LISTEN_FDS" "3" "" "systemd 214" "sd_listen_fds"
+.TH "SD_LISTEN_FDS" "3" "" "systemd 215" "sd_listen_fds"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_listen_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_listen_fds, SD_LISTEN_FDS_START — Check for file descriptors passed by the system manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><pre class="funcsynopsisinfo">#define SD_LISTEN_FDS_START 3</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_listen_fds</b>(</code></td><td>int <var class="pdparam">unset_environment</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192684512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_listen_fds()</code> shall be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_listen_fds"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_listen_fds, SD_LISTEN_FDS_START — Check for file descriptors passed by the system manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><pre class="funcsynopsisinfo">#define SD_LISTEN_FDS_START 3</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_listen_fds</b>(</code></td><td>int <var class="pdparam">unset_environment</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197560512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_listen_fds()</code> shall be
called by a daemon to check for file descriptors
passed by the init system as part of the socket-based
activation logic.</p><p>If the <em class="parameter"><code>unset_environment</code></em>
datagram or stream socket matters a lot for the most
common program logics and should be checked.</p><p>This function call will set the FD_CLOEXEC flag
for all passed file descriptors to avoid further
- inheritance to children of the calling process.</p></div><div class="refsect1"><a name="idm214192892160"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
+ inheritance to children of the calling process.</p></div><div class="refsect1"><a name="idm214197624416"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
errno-style error code. If
<code class="varname">$LISTEN_FDS</code>/<code class="varname">$LISTEN_PID</code>
was not set or was not correctly set for this daemon and
returned. Otherwise, the number of file descriptors
passed is returned. The application may find them
starting with file descriptor SD_LISTEN_FDS_START,
- i.e. file descriptor 3.</p></div><div class="refsect1"><a name="idm214194136768"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ i.e. file descriptor 3.</p></div><div class="refsect1"><a name="idm214197551888"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, this function checks whether the
variable, then sets the FD_CLOEXEC flag for the parsed
number of file descriptors starting from
SD_LISTEN_FDS_START. Finally, it returns the parsed
- number.</p></div><div class="refsect1"><a name="idm214192287840"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_PID"><span class="term"><code class="varname">$LISTEN_PID</code>, </span><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_PID">¶</a></dt><dd><p>Set by the init system
+ number.</p></div><div class="refsect1"><a name="idm214197548512"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_PID"><span class="term"><code class="varname">$LISTEN_PID</code>, </span><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_PID">¶</a></dt><dd><p>Set by the init system
for supervised processes that use
socket-based activation. This
environment variable specifies the
data
<code class="function">sd_listen_fds()</code>
parses. See above for
- details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193629840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197690240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
'\" t
-.TH "SD_LOGIN_MONITOR_NEW" "3" "" "systemd 214" "sd_login_monitor_new"
+.TH "SD_LOGIN_MONITOR_NEW" "3" "" "systemd 215" "sd_login_monitor_new"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214183358160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_login_monitor_new"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_login_monitor_new, sd_login_monitor_unref, sd_login_monitor_flush, sd_login_monitor_get_fd, sd_login_monitor_get_events, sd_login_monitor_get_timeout, sd_login_monitor — Monitor login sessions, seats, users and virtual machines/containers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_new</b>(</code></td><td>const char *<var class="pdparam">category</var>, </td></tr><tr><td> </td><td>sd_login_monitor **<var class="pdparam">ret</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">sd_login_monitor *<b class="fsfunc">sd_login_monitor_unref</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_flush</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_fd</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_events</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_login_monitor_get_timeout</b>(</code></td><td>sd_login_monitor *<var class="pdparam">m</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">timeout_usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197895280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_login_monitor_new()</code> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
for brevity's sake. The calculated <code class="varname">msec</code>
integer can be passed directly as
<code class="function">poll()</code>'s timeout
- parameter.</p></div><div class="refsect1"><a name="idm214183322688"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ parameter.</p></div><div class="refsect1"><a name="idm214197859856"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_flush()</code> and
<code class="function">sd_login_monitor_get_timeout()</code>
<code class="constant">POLLOUT</code> and suchlike. On failure,
these calls return a negative errno-style error
code.</p><p><code class="function">sd_login_monitor_unref()</code>
- always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214183315280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
+ always returns <code class="constant">NULL</code>.</p></div><div class="refsect1"><a name="idm214197852544"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_login_monitor_new()</code>,
<code class="function">sd_login_monitor_unref()</code>,
<code class="function">sd_login_monitor_flush()</code>,
<code class="function">sd_login_monitor_get_fd()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214178395040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214192935712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>,
'\" t
-.TH "SD_NOTIFY" "3" "" "systemd 214" "sd_notify"
+.TH "SD_NOTIFY" "3" "" "systemd 215" "sd_notify"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_notify"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_notify, sd_notifyf — Notify service manager about start-up completion and other daemon status changes</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notify</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notifyf</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197057360"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_notify()</code> shall be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_notify"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_notify, sd_notifyf — Notify service manager about start-up completion and other daemon status changes</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notify</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notifyf</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198380880"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_notify()</code> shall be called
by a daemon to notify the init system about status
changes. It can be used to send arbitrary information,
encoded in an environment-block-like string. Most
for details.</p><p><code class="function">sd_notifyf()</code> is similar to
<code class="function">sd_notify()</code> but takes a
<code class="function">printf()</code>-like format string plus
- arguments.</p></div><div class="refsect1"><a name="idm214198382832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ arguments.</p></div><div class="refsect1"><a name="idm214198431088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If
<code class="varname">$NOTIFY_SOCKET</code> was not set and
hence no status data could be sent, 0 is returned. If
positive return value. In order to support both, init
systems that implement this scheme and those which
do not, it is generally recommended to ignore the return
- value of this call.</p></div><div class="refsect1"><a name="idm214197843232"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ value of this call.</p></div><div class="refsect1"><a name="idm214198428960"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these functions send a single
<code class="varname">$NOTIFY_SOCKET</code> is "<code class="literal">@</code>", the string is
understood as Linux abstract namespace socket. The
datagram is accompanied by the process credentials of
- the sending daemon, using SCM_CREDENTIALS.</p></div><div class="refsect1"><a name="idm214196359440"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$NOTIFY_SOCKET"><span class="term"><code class="varname">$NOTIFY_SOCKET</code></span><a class="headerlink" title="Permalink to this term" href="#%24NOTIFY_SOCKET">¶</a></dt><dd><p>Set by the init system
+ the sending daemon, using SCM_CREDENTIALS.</p></div><div class="refsect1"><a name="idm214198417120"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$NOTIFY_SOCKET"><span class="term"><code class="varname">$NOTIFY_SOCKET</code></span><a class="headerlink" title="Permalink to this term" href="#%24NOTIFY_SOCKET">¶</a></dt><dd><p>Set by the init system
for supervised processes for status
and start-up completion
notification. This environment variable
specifies the socket
<code class="function">sd_notify()</code> talks
- to. See above for details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195992736"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214196376304"></a><p class="title"><b>Example 1. Start-up Notification</b></p><div class="example-contents"><p>When a daemon finished starting up, it
+ to. See above for details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214198413216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214198412544"></a><p class="title"><b>Example 1. Start-up Notification</b></p><div class="example-contents"><p>When a daemon finished starting up, it
might issue the following call to notify
- the init system:</p><pre class="programlisting">sd_notify(0, "READY=1");</pre></div></div><br class="example-break"><div class="example"><a name="idm214196110288"></a><p class="title"><b>Example 2. Extended Start-up Notification</b></p><div class="example-contents"><p>A daemon could send the following after
+ the init system:</p><pre class="programlisting">sd_notify(0, "READY=1");</pre></div></div><br class="example-break"><div class="example"><a name="idm214198410496"></a><p class="title"><b>Example 2. Extended Start-up Notification</b></p><div class="example-contents"><p>A daemon could send the following after
completing initialization:</p><pre class="programlisting">sd_notifyf(0, "READY=1\n"
"STATUS=Processing requests...\n"
"MAINPID=%lu",
- (unsigned long) getpid());</pre></div></div><br class="example-break"><div class="example"><a name="idm214197408464"></a><p class="title"><b>Example 3. Error Cause Notification</b></p><div class="example-contents"><p>A daemon could send the following shortly before exiting, on failure</p><pre class="programlisting">sd_notifyf(0, "STATUS=Failed to start up: %s\n"
+ (unsigned long) getpid());</pre></div></div><br class="example-break"><div class="example"><a name="idm214198408368"></a><p class="title"><b>Example 3. Error Cause Notification</b></p><div class="example-contents"><p>A daemon could send the following shortly before exiting, on failure</p><pre class="programlisting">sd_notifyf(0, "STATUS=Failed to start up: %s\n"
"ERRNO=%i",
strerror(errno),
- errno);</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214196863152"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ errno);</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214198406240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_notify"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_notify, sd_notifyf — Notify service manager about start-up completion and other daemon status changes</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notify</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notifyf</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214197057360"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_notify()</code> shall be called
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_notify"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_notify, sd_notifyf — Notify service manager about start-up completion and other daemon status changes</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notify</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_notifyf</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214198380880"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_notify()</code> shall be called
by a daemon to notify the init system about status
changes. It can be used to send arbitrary information,
encoded in an environment-block-like string. Most
for details.</p><p><code class="function">sd_notifyf()</code> is similar to
<code class="function">sd_notify()</code> but takes a
<code class="function">printf()</code>-like format string plus
- arguments.</p></div><div class="refsect1"><a name="idm214198382832"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ arguments.</p></div><div class="refsect1"><a name="idm214198431088"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. If
<code class="varname">$NOTIFY_SOCKET</code> was not set and
hence no status data could be sent, 0 is returned. If
positive return value. In order to support both, init
systems that implement this scheme and those which
do not, it is generally recommended to ignore the return
- value of this call.</p></div><div class="refsect1"><a name="idm214197843232"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ value of this call.</p></div><div class="refsect1"><a name="idm214198428960"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, these functions send a single
<code class="varname">$NOTIFY_SOCKET</code> is "<code class="literal">@</code>", the string is
understood as Linux abstract namespace socket. The
datagram is accompanied by the process credentials of
- the sending daemon, using SCM_CREDENTIALS.</p></div><div class="refsect1"><a name="idm214196359440"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$NOTIFY_SOCKET"><span class="term"><code class="varname">$NOTIFY_SOCKET</code></span><a class="headerlink" title="Permalink to this term" href="#%24NOTIFY_SOCKET">¶</a></dt><dd><p>Set by the init system
+ the sending daemon, using SCM_CREDENTIALS.</p></div><div class="refsect1"><a name="idm214198417120"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$NOTIFY_SOCKET"><span class="term"><code class="varname">$NOTIFY_SOCKET</code></span><a class="headerlink" title="Permalink to this term" href="#%24NOTIFY_SOCKET">¶</a></dt><dd><p>Set by the init system
for supervised processes for status
and start-up completion
notification. This environment variable
specifies the socket
<code class="function">sd_notify()</code> talks
- to. See above for details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195992736"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214196376304"></a><p class="title"><b>Example 1. Start-up Notification</b></p><div class="example-contents"><p>When a daemon finished starting up, it
+ to. See above for details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214198413216"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214198412544"></a><p class="title"><b>Example 1. Start-up Notification</b></p><div class="example-contents"><p>When a daemon finished starting up, it
might issue the following call to notify
- the init system:</p><pre class="programlisting">sd_notify(0, "READY=1");</pre></div></div><br class="example-break"><div class="example"><a name="idm214196110288"></a><p class="title"><b>Example 2. Extended Start-up Notification</b></p><div class="example-contents"><p>A daemon could send the following after
+ the init system:</p><pre class="programlisting">sd_notify(0, "READY=1");</pre></div></div><br class="example-break"><div class="example"><a name="idm214198410496"></a><p class="title"><b>Example 2. Extended Start-up Notification</b></p><div class="example-contents"><p>A daemon could send the following after
completing initialization:</p><pre class="programlisting">sd_notifyf(0, "READY=1\n"
"STATUS=Processing requests...\n"
"MAINPID=%lu",
- (unsigned long) getpid());</pre></div></div><br class="example-break"><div class="example"><a name="idm214197408464"></a><p class="title"><b>Example 3. Error Cause Notification</b></p><div class="example-contents"><p>A daemon could send the following shortly before exiting, on failure</p><pre class="programlisting">sd_notifyf(0, "STATUS=Failed to start up: %s\n"
+ (unsigned long) getpid());</pre></div></div><br class="example-break"><div class="example"><a name="idm214198408368"></a><p class="title"><b>Example 3. Error Cause Notification</b></p><div class="example-contents"><p>A daemon could send the following shortly before exiting, on failure</p><pre class="programlisting">sd_notifyf(0, "STATUS=Failed to start up: %s\n"
"ERRNO=%i",
strerror(errno),
- errno);</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214196863152"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ errno);</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214198406240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
'\" t
-.TH "SD_PID_GET_SESSION" "3" "" "systemd 214" "sd_pid_get_session"
+.TH "SD_PID_GET_SESSION" "3" "" "systemd 215" "sd_pid_get_session"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_pid_get_session"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_pid_get_session, sd_pid_get_unit, sd_pid_get_user_unit, sd_pid_get_owner_uid, sd_pid_get_machine_name, sd_pid_get_slice, sd_peer_get_session, sd_peer_get_unit, sd_peer_get_user_unit, sd_peer_get_owner_uid, sd_peer_get_machine_name, sd_peer_get_slice — Determine session, service, owner of a
session, container/VM or slice of a specific
- PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194564464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
+ PID or socket peer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_session</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_user_unit</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_owner_uid</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_machine_name</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_pid_get_slice</b>(</code></td><td>pid_t <var class="pdparam">pid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_session</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_user_unit</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">unit</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_owner_uid</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_machine_name</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_peer_get_slice</b>(</code></td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">slice</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179159952"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_pid_get_session()</code> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
<code class="function">sd_peer_get_slice()</code> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
- about the connected peer process.</p></div><div class="refsect1"><a name="idm214189630000"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
+ about the connected peer process.</p></div><div class="refsect1"><a name="idm214174228912"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
- errno-style error code.</p></div><div class="refsect1"><a name="idm214189628672"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
+ errno-style error code.</p></div><div class="refsect1"><a name="idm214174227584"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_pid_get_session()</code>,
<code class="function">sd_pid_get_unit()</code>,
<code class="function">sd_pid_get_user_unit()</code>,
<code class="function">sd_pid_get_owner_uid()</code>,
returned by <code class="function">sd_pid_get_session()</code>
is completely unrelated to the process session
identifier as returned by
- <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214189616800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="getsid.html"><span class="citerefentry"><span class="refentrytitle">getsid</span>(2)</span></a>.</p></div><div class="refsect1"><a name="idm214174215712"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>,
'\" t
-.TH "SD_READAHEAD" "3" "" "systemd 214" "sd_readahead"
+.TH "SD_READAHEAD" "3" "" "systemd 215" "sd_readahead"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_readahead"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_readahead — Control ongoing disk boot-time read-ahead operations</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include "sd-readahead.h"</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_readahead</b>(</code></td><td>const char *<var class="pdparam">action</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214194633440"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_readahead()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_readahead"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_readahead — Control ongoing disk boot-time read-ahead operations</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include "sd-readahead.h"</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_readahead</b>(</code></td><td>const char *<var class="pdparam">action</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214180411520"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_readahead()</code> may be
called by programs involved with early boot-up to
control ongoing boot-time disk read-ahead operations. It may be
used to terminate read-ahead operations in case an
read-ahead data collected during this
boot-up around for use during
subsequent boot-ups.</p></dd><dt id="noreplay"><span class="term">noreplay</span><a class="headerlink" title="Permalink to this term" href="#noreplay">¶</a></dt><dd><p>Terminates read-ahead
- replay.</p></dd></dl></div></div><div class="refsect1"><a name="idm214190871104"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
+ replay.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180403328"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, these calls return a negative
errno-style error code. It is generally recommended to
- ignore the return value of this call.</p></div><div class="refsect1"><a name="idm214190869744"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This function is provided by the reference
+ ignore the return value of this call.</p></div><div class="refsect1"><a name="idm214180401968"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This function is provided by the reference
implementation of APIs for controlling boot-time
read-ahead and distributed with the systemd
package. The algorithm it implements is simple, and
details about the reference implementation, see
<a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a></p><p>If -DDISABLE_SYSTEMD is set during compilation,
this function will always return 0 and otherwise
- become a NOP.</p></div><div class="refsect1"><a name="idm214190861584"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214190860912"></a><p class="title"><b>Example 1. Cancelling all read-ahead operations</b></p><div class="example-contents"><p>During boots where SELinux has to
+ become a NOP.</p></div><div class="refsect1"><a name="idm214184347568"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214184346896"></a><p class="title"><b>Example 1. Cancelling all read-ahead operations</b></p><div class="example-contents"><p>During boots where SELinux has to
relabel the file system hierarchy, it will
create a large amount of disk accesses that
are not necessary during normal boots. Hence
it is a good idea to disable both read-ahead replay and read-ahead collection.
</p><pre class="programlisting">sd_readahead("cancel");
-sd_readahead("noreplay");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214190858544"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+sd_readahead("noreplay");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214184344576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a>,
<a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179516240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195794128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
used to determine which session is currently active on
a seat, if there is any. Returns the session
identifier and the user identifier of the Unix user
of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the seat of the session of the calling process, if
- there is any.</p></div><div class="refsect1"><a name="idm214179504144"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
+ there is any.</p></div><div class="refsect1"><a name="idm214195782032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
<code class="function">sd_seat_get_active()</code>
returns 0 or a positive integer. On success,
<code class="function">sd_seat_get_sessions()</code> returns
<code class="function">sd_seat_can_tty</code> and
<code class="function">sd_seat_can_graphical</code> return a
positive integer, if it fails 0. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214179491728"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214195769616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
<code class="function">sd_seat_get_sessions()</code>,
<code class="function">sd_seat_can_multi_session()</code>,
<code class="function">sd_seat_can_tty()</code> and
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179485488"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195763328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179516240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195794128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
used to determine which session is currently active on
a seat, if there is any. Returns the session
identifier and the user identifier of the Unix user
of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the seat of the session of the calling process, if
- there is any.</p></div><div class="refsect1"><a name="idm214179504144"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
+ there is any.</p></div><div class="refsect1"><a name="idm214195782032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
<code class="function">sd_seat_get_active()</code>
returns 0 or a positive integer. On success,
<code class="function">sd_seat_get_sessions()</code> returns
<code class="function">sd_seat_can_tty</code> and
<code class="function">sd_seat_can_graphical</code> return a
positive integer, if it fails 0. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214179491728"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214195769616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
<code class="function">sd_seat_get_sessions()</code>,
<code class="function">sd_seat_can_multi_session()</code>,
<code class="function">sd_seat_can_tty()</code> and
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179485488"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195763328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179516240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195794128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
used to determine which session is currently active on
a seat, if there is any. Returns the session
identifier and the user identifier of the Unix user
of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the seat of the session of the calling process, if
- there is any.</p></div><div class="refsect1"><a name="idm214179504144"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
+ there is any.</p></div><div class="refsect1"><a name="idm214195782032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
<code class="function">sd_seat_get_active()</code>
returns 0 or a positive integer. On success,
<code class="function">sd_seat_get_sessions()</code> returns
<code class="function">sd_seat_can_tty</code> and
<code class="function">sd_seat_can_graphical</code> return a
positive integer, if it fails 0. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214179491728"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214195769616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
<code class="function">sd_seat_get_sessions()</code>,
<code class="function">sd_seat_can_multi_session()</code>,
<code class="function">sd_seat_can_tty()</code> and
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179485488"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195763328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
'\" t
-.TH "SD_SEAT_GET_ACTIVE" "3" "" "systemd 214" "sd_seat_get_active"
+.TH "SD_SEAT_GET_ACTIVE" "3" "" "systemd 215" "sd_seat_get_active"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179516240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195794128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
used to determine which session is currently active on
a seat, if there is any. Returns the session
identifier and the user identifier of the Unix user
of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the seat of the session of the calling process, if
- there is any.</p></div><div class="refsect1"><a name="idm214179504144"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
+ there is any.</p></div><div class="refsect1"><a name="idm214195782032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
<code class="function">sd_seat_get_active()</code>
returns 0 or a positive integer. On success,
<code class="function">sd_seat_get_sessions()</code> returns
<code class="function">sd_seat_can_tty</code> and
<code class="function">sd_seat_can_graphical</code> return a
positive integer, if it fails 0. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214179491728"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214195769616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
<code class="function">sd_seat_get_sessions()</code>,
<code class="function">sd_seat_can_multi_session()</code>,
<code class="function">sd_seat_can_tty()</code> and
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179485488"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195763328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214179516240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_seat_get_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_seat_get_active, sd_seat_get_sessions, sd_seat_can_multi_session, sd_seat_can_tty, sd_seat_can_graphical — Determine state of a specific seat</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_active</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_get_sessions</b>(</code></td><td>const char *<var class="pdparam">seat</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var>, </td></tr><tr><td> </td><td>uid_t **<var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">n_uids</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_multi_session</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_tty</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_seat_can_graphical</b>(</code></td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214195794128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_seat_get_active()</code> may be
used to determine which session is currently active on
a seat, if there is any. Returns the session
identifier and the user identifier of the Unix user
of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the seat of the session of the calling process, if
- there is any.</p></div><div class="refsect1"><a name="idm214179504144"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
+ there is any.</p></div><div class="refsect1"><a name="idm214195782032"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p> On success,
<code class="function">sd_seat_get_active()</code>
returns 0 or a positive integer. On success,
<code class="function">sd_seat_get_sessions()</code> returns
<code class="function">sd_seat_can_tty</code> and
<code class="function">sd_seat_can_graphical</code> return a
positive integer, if it fails 0. On failure, these
- calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214179491728"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
+ calls return a negative errno-style error code.</p></div><div class="refsect1"><a name="idm214195769616"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_seat_get_active()</code>,
<code class="function">sd_seat_get_sessions()</code>,
<code class="function">sd_seat_can_multi_session()</code>,
<code class="function">sd_seat_can_tty()</code> and
are available as a shared library, which can be compiled
and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214179485488"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214195763328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
'\" t
-.TH "SD_SESSION_IS_ACTIVE" "3" "" "systemd 214" "sd_session_is_active"
+.TH "SD_SESSION_IS_ACTIVE" "3" "" "systemd 215" "sd_session_is_active"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214172690320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
- there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
+ there is any.</p></div><div class="refsect1"><a name="idm214167746672"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
- negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
+ negative errno-style error code.</p></div><div class="refsect1"><a name="idm214167737776"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ file.</p></div><div class="refsect1"><a name="idm214167728448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170342560"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192661936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
used to determine the login state of a specific Unix
user identifier. The following states are currently
known: "<code class="literal">offline</code>" (user not logged in
returns the name of the "primary" session of a user.
If the user has graphical sessions, it will be the
oldest graphical session. Otherwise, it will be the
- oldest open session.</p></div><div class="refsect1"><a name="idm214170316800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ oldest open session.</p></div><div class="refsect1"><a name="idm214192636272"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_uid_get_state()</code> returns 0 or a
positive integer. If the test succeeds,
<code class="function">sd_uid_is_on_seat()</code> returns a
<code class="function">sd_uid_get_display()</code> returns
a non-negative code on success. On failure,
these calls return a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214170311808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
+ code.</p></div><div class="refsect1"><a name="idm214192631280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
shared library, and can be compiled and linked to
using the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- entry.</p></div><div class="refsect1"><a name="idm214170309168"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
+ entry.</p></div><div class="refsect1"><a name="idm214192628592"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
<code class="function">sd_uid_is_on_seat()</code>,
<code class="function">sd_uid_get_sessions()</code>,
and <code class="function">sd_uid_get_seats()</code> functions
were added in systemd-31.
<p><code class="function">sd_uid_get_display()</code> was
- added in systemd-213.</p></div><div class="refsect1"><a name="idm214170304576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ added in systemd-213.</p></div><div class="refsect1"><a name="idm214192624000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170342560"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192661936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
used to determine the login state of a specific Unix
user identifier. The following states are currently
known: "<code class="literal">offline</code>" (user not logged in
returns the name of the "primary" session of a user.
If the user has graphical sessions, it will be the
oldest graphical session. Otherwise, it will be the
- oldest open session.</p></div><div class="refsect1"><a name="idm214170316800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ oldest open session.</p></div><div class="refsect1"><a name="idm214192636272"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_uid_get_state()</code> returns 0 or a
positive integer. If the test succeeds,
<code class="function">sd_uid_is_on_seat()</code> returns a
<code class="function">sd_uid_get_display()</code> returns
a non-negative code on success. On failure,
these calls return a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214170311808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
+ code.</p></div><div class="refsect1"><a name="idm214192631280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
shared library, and can be compiled and linked to
using the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- entry.</p></div><div class="refsect1"><a name="idm214170309168"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
+ entry.</p></div><div class="refsect1"><a name="idm214192628592"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
<code class="function">sd_uid_is_on_seat()</code>,
<code class="function">sd_uid_get_sessions()</code>,
and <code class="function">sd_uid_get_seats()</code> functions
were added in systemd-31.
<p><code class="function">sd_uid_get_display()</code> was
- added in systemd-213.</p></div><div class="refsect1"><a name="idm214170304576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ added in systemd-213.</p></div><div class="refsect1"><a name="idm214192624000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170342560"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192661936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
used to determine the login state of a specific Unix
user identifier. The following states are currently
known: "<code class="literal">offline</code>" (user not logged in
returns the name of the "primary" session of a user.
If the user has graphical sessions, it will be the
oldest graphical session. Otherwise, it will be the
- oldest open session.</p></div><div class="refsect1"><a name="idm214170316800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ oldest open session.</p></div><div class="refsect1"><a name="idm214192636272"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_uid_get_state()</code> returns 0 or a
positive integer. If the test succeeds,
<code class="function">sd_uid_is_on_seat()</code> returns a
<code class="function">sd_uid_get_display()</code> returns
a non-negative code on success. On failure,
these calls return a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214170311808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
+ code.</p></div><div class="refsect1"><a name="idm214192631280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
shared library, and can be compiled and linked to
using the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- entry.</p></div><div class="refsect1"><a name="idm214170309168"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
+ entry.</p></div><div class="refsect1"><a name="idm214192628592"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
<code class="function">sd_uid_is_on_seat()</code>,
<code class="function">sd_uid_get_sessions()</code>,
and <code class="function">sd_uid_get_seats()</code> functions
were added in systemd-31.
<p><code class="function">sd_uid_get_display()</code> was
- added in systemd-213.</p></div><div class="refsect1"><a name="idm214170304576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ added in systemd-213.</p></div><div class="refsect1"><a name="idm214192624000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a>
'\" t
-.TH "SD_UID_GET_STATE" "3" "" "systemd 214" "sd_uid_get_state"
+.TH "SD_UID_GET_STATE" "3" "" "systemd 215" "sd_uid_get_state"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170342560"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192661936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
used to determine the login state of a specific Unix
user identifier. The following states are currently
known: "<code class="literal">offline</code>" (user not logged in
returns the name of the "primary" session of a user.
If the user has graphical sessions, it will be the
oldest graphical session. Otherwise, it will be the
- oldest open session.</p></div><div class="refsect1"><a name="idm214170316800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ oldest open session.</p></div><div class="refsect1"><a name="idm214192636272"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_uid_get_state()</code> returns 0 or a
positive integer. If the test succeeds,
<code class="function">sd_uid_is_on_seat()</code> returns a
<code class="function">sd_uid_get_display()</code> returns
a non-negative code on success. On failure,
these calls return a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214170311808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
+ code.</p></div><div class="refsect1"><a name="idm214192631280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
shared library, and can be compiled and linked to
using the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- entry.</p></div><div class="refsect1"><a name="idm214170309168"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
+ entry.</p></div><div class="refsect1"><a name="idm214192628592"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
<code class="function">sd_uid_is_on_seat()</code>,
<code class="function">sd_uid_get_sessions()</code>,
and <code class="function">sd_uid_get_seats()</code> functions
were added in systemd-31.
<p><code class="function">sd_uid_get_display()</code> was
- added in systemd-213.</p></div><div class="refsect1"><a name="idm214170304576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ added in systemd-213.</p></div><div class="refsect1"><a name="idm214192624000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214170342560"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_uid_get_state"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_uid_get_state, sd_uid_is_on_seat, sd_uid_get_sessions, sd_uid_get_seats, sd_uid_get_display — Determine login state of a specific Unix user ID</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-login.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_state</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_is_on_seat</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_sessions</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">sessions</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_seats</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">require_active</var>, </td></tr><tr><td> </td><td>char ***<var class="pdparam">seats</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_uid_get_display</b>(</code></td><td>uid_t <var class="pdparam">uid</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214192661936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_uid_get_state()</code> may be
used to determine the login state of a specific Unix
user identifier. The following states are currently
known: "<code class="literal">offline</code>" (user not logged in
returns the name of the "primary" session of a user.
If the user has graphical sessions, it will be the
oldest graphical session. Otherwise, it will be the
- oldest open session.</p></div><div class="refsect1"><a name="idm214170316800"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
+ oldest open session.</p></div><div class="refsect1"><a name="idm214192636272"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success,
<code class="function">sd_uid_get_state()</code> returns 0 or a
positive integer. If the test succeeds,
<code class="function">sd_uid_is_on_seat()</code> returns a
<code class="function">sd_uid_get_display()</code> returns
a non-negative code on success. On failure,
these calls return a negative errno-style error
- code.</p></div><div class="refsect1"><a name="idm214170311808"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
+ code.</p></div><div class="refsect1"><a name="idm214192631280"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>Functions described here are available as a
shared library, and can be compiled and linked to
using the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
- entry.</p></div><div class="refsect1"><a name="idm214170309168"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
+ entry.</p></div><div class="refsect1"><a name="idm214192628592"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><code class="function">sd_uid_get_state()</code>,
<code class="function">sd_uid_is_on_seat()</code>,
<code class="function">sd_uid_get_sessions()</code>,
and <code class="function">sd_uid_get_seats()</code> functions
were added in systemd-31.
<p><code class="function">sd_uid_get_display()</code> was
- added in systemd-213.</p></div><div class="refsect1"><a name="idm214170304576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ added in systemd-213.</p></div><div class="refsect1"><a name="idm214192624000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a>
'\" t
-.TH "SD_WATCHDOG_ENABLED" "3" "" "systemd 214" "sd_watchdog_enabled"
+.TH "SD_WATCHDOG_ENABLED" "3" "" "systemd 215" "sd_watchdog_enabled"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.fi
.ft
.HP \w'int\ sd_watchdog_enabled('u
-.BI "int sd_watchdog_enabled(int\ " "unset_environment" ", const\ uint64_t\ *" "usec" ");"
+.BI "int sd_watchdog_enabled(int\ " "unset_environment" ", uint64_t\ *" "usec" ");"
.SH "DESCRIPTION"
.PP
\fBsd_watchdog_enabled()\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_watchdog_enabled"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_watchdog_enabled — Check whether the service manager expects watchdog keep-alive notifications from a service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_watchdog_enabled</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>const uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214188950800"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_watchdog_enabled()</code> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_watchdog_enabled"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_watchdog_enabled — Check whether the service manager expects watchdog keep-alive notifications from a service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <systemd/sd-daemon.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_watchdog_enabled</b>(</code></td><td>int <var class="pdparam">unset_environment</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214185911456"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_watchdog_enabled()</code> may
be called by a service to detect whether the service
manager expects regular keep-alive watchdog
notification events from it, and the timeout after
logic, use <code class="varname">WatchdogSec=</code> in service
files. See
<a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>
- for details.</p></div><div class="refsect1"><a name="idm214190777808"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
+ for details.</p></div><div class="refsect1"><a name="idm214185975520"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On failure, this call returns a negative
errno-style error code. If the service manager expects
watchdog keep-alive notification messages to be sent,
> 0 is returned, otherwise 0 is returned. Only if
the return value is > 0, the
<em class="parameter"><code>usec</code></em> parameter is valid after
- the call.</p></div><div class="refsect1"><a name="idm214190410576"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
+ the call.</p></div><div class="refsect1"><a name="idm214185902512"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p><a name="pkgconfig-text"></a>These APIs are implemented as a shared
library, which can be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p><p>Internally, this functions parses the
<code class="varname">$WATCHDOG_PID</code> does containe the PID
of the current process, under the assumption that in
that case, the variables were set for a different
- process further up the process tree.</p></div><div class="refsect1"><a name="idm214189186128"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$WATCHDOG_PID"><span class="term"><code class="varname">$WATCHDOG_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24WATCHDOG_PID">¶</a></dt><dd><p>Set by the system
+ process further up the process tree.</p></div><div class="refsect1"><a name="idm214185898800"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$WATCHDOG_PID"><span class="term"><code class="varname">$WATCHDOG_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24WATCHDOG_PID">¶</a></dt><dd><p>Set by the system
manager for supervised process for
which watchdog support is enabled, and
contains the PID of that process. See
which watchdog support is enabled, and
contains the watchdog timeout in µs
See above for
- details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189804720"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186040224"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>,
<a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>,
<funcprototype>
<funcdef>int <function>sd_watchdog_enabled</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
- <paramdef>const uint64_t *<parameter>usec</parameter></paramdef>
+ <paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
'\" t
-.TH "SHUTDOWN" "8" "" "systemd 214" "shutdown"
+.TH "SHUTDOWN" "8" "" "systemd 215" "shutdown"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="shutdown"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>shutdown — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">shutdown [OPTIONS...] [TIME] [WALL...]</code> </p></div></div><div class="refsect1"><a name="idm214194470896"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>shutdown</strong></span> may be used to halt,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="shutdown"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>shutdown — Halt, power-off or reboot the machine</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">shutdown [OPTIONS...] [TIME] [WALL...]</code> </p></div></div><div class="refsect1"><a name="idm214194988640"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>shutdown</strong></span> may be used to halt,
power-off or reboot the machine.</p><p>The first argument may be a time string (which
is usually "<code class="literal">now</code>"). Optionally, this
may be followed by a wall message to be sent to all
before the system goes down the
<code class="filename">/run/nologin</code> file is created to
ensure that further logins shall not be
- allowed.</p></div><div class="refsect1"><a name="idm214194239456"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ allowed.</p></div><div class="refsect1"><a name="idm214195054320"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--halt</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p>Halt the machine.</p></dd><dt id="-P"><span class="term"><code class="option">-P</code>, </span><span class="term"><code class="option">--poweroff</code></span><a class="headerlink" title="Permalink to this term" href="#-P">¶</a></dt><dd><p>Power-off the
machine (the default).</p></dd><dt id="-r"><span class="term"><code class="option">-r</code>, </span><span class="term"><code class="option">--reboot</code></span><a class="headerlink" title="Permalink to this term" href="#-r">¶</a></dt><dd><p>Reboot the
machine.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Equivalent to
<span class="command"><strong>shutdown</strong></span> with a
time argument that is not
"<code class="literal">+0</code>" or
- "<code class="literal">now</code>".</p></dd></dl></div></div><div class="refsect1"><a name="idm214194940352"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214194660208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ "<code class="literal">now</code>".</p></dd></dl></div></div><div class="refsect1"><a name="idm214195111840"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214195110656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>,
'\" t
-.TH "SYSCTL\&.D" "5" "" "systemd 214" "sysctl.d"
+.TH "SYSCTL\&.D" "5" "" "systemd 215" "sysctl.d"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
";"
are ignored\&.
.PP
+Each configuration file shall be named in the style of
+\fIprogram\fR\&.conf\&. Files in
+/etc/
+override files with the same name in
+/usr/lib/
+and
+/run/\&. Files in
+/run/
+override files with the same name in
+/usr/lib/\&. Packages should install their configuration files in
+/usr/lib/\&. Files in
+/etc/
+are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages\&. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in\&. If multiple files specify the same variable name, the entry in the file with the lexicographically latest name will be applied\&. It is recommended to prefix all filenames with a two\-digit number and a dash, to simplify the ordering of the files\&.
+.PP
Note that either
"/"
or
may be used to refer to
/proc/sys/net/ipv4/conf/enp3s0\&.200/forwarding\&.
.PP
-Each configuration file shall be named in the style of
-\fIprogram\fR\&.conf\&. Files in
-/etc/
-override files with the same name in
-/usr/lib/
-and
-/run/\&. Files in
-/run/
-override files with the same name in
-/usr/lib/\&. Packages should install their configuration files in
-/usr/lib/\&. Files in
-/etc/
-are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages\&. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in\&. If multiple files specify the same variable name, the entry in the file with the lexicographically latest name will be applied\&. It is recommended to prefix all filenames with a two\-digit number and a dash, to simplify the ordering of the files\&.
-.PP
If the administrator wants to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to
/dev/null
in
net\&.ipv6\&.conf\&.*,
net\&.ipv4\&.neigh\&.*
and
-net\&.ipv6\&.neigh\&.*)
-.SH "EXAMPLE"
+net\&.ipv6\&.neigh\&.*)\&.
.PP
-\fBExample\ \&1.\ \&/etc/sysctl.d/domain-name.conf example:\fR
+Many sysctl parameters only become available when certain kernel modules are loaded\&. Modules are usually loaded on demand, e\&.g\&. when certain hardware is plugged in or network brought up\&. This means that
+\fBsystemd-sysctl.service\fR(8)
+which runs during early boot will not configure such parameters if they become available after it has run\&. To set such parameters, it is recommended to add an
+\fBudev\fR(7)
+rule to set those parameters when they become available\&. Alternatively, a slightly simpler and less efficient option is to add the module to
+\fBmodules-load.d\fR(5), causing it to be loaded statically before sysctl settings are applied (see example below)\&.
+.SH "EXAMPLES"
+.PP
+\fBExample\ \&1.\ \&Set kernel YP domain name\fR
+.PP
+/etc/sysctl\&.d/domain\-name\&.conf:
.sp
.if n \{\
.RS 4
.\}
.nf
-# Set kernel YP domain name
kernel\&.domainname=example\&.com
.fi
.if n \{\
.RE
.\}
+.PP
+\fBExample\ \&2.\ \&Disable packet filter on bridged packets (method one)\fR
+.PP
+/etc/udev/rules\&.d/99\-bridge\&.conf:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd\-sysctl \-\-prefix=/proc/sys/net/bridge"
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+/etc/sysctl\&.d/bridge\&.conf:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+net\&.bridge\&.bridge\-nf\-call\-ip6tables = 0
+net\&.bridge\&.bridge\-nf\-call\-iptables = 0
+net\&.bridge\&.bridge\-nf\-call\-arptables = 0
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&3.\ \&Disable packet filter on bridged packets (method two)\fR
+.PP
+/etc/modules\-load\&.d/bridge\&.conf:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+bridge
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+/etc/sysctl\&.d/bridge\&.conf:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+net\&.bridge\&.bridge\-nf\-call\-ip6tables = 0
+net\&.bridge\&.bridge\-nf\-call\-iptables = 0
+net\&.bridge\&.bridge\-nf\-call\-arptables = 0
+.fi
+.if n \{\
+.RE
+.\}
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsystemd-sysctl.service\fR(8),
\fBsystemd-delta\fR(1),
\fBsysctl\fR(8),
-\fBsysctl.conf\fR(5)
+\fBsysctl.conf\fR(5)\fBmodprobe\fR(8)
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sysctl.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sysctl.d — Configure kernel parameters at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/sysctl.d/*.conf</code></p><p><code class="filename">/run/sysctl.d/*.conf</code></p><p><code class="filename">/usr/lib/sysctl.d/*.conf</code></p></div><div class="refsect1"><a name="idm214188131520"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>At boot,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sysctl.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sysctl.d — Configure kernel parameters at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/sysctl.d/*.conf</code></p><p><code class="filename">/run/sysctl.d/*.conf</code></p><p><code class="filename">/usr/lib/sysctl.d/*.conf</code></p></div><div class="refsect1"><a name="idm214178788384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>At boot,
<a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a>
reads configuration files from the above directories
to configure
<a href="sysctl.html"><span class="citerefentry"><span class="refentrytitle">sysctl</span>(8)</span></a>
- kernel parameters.</p></div><div class="refsect1"><a name="idm214188802640"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>The configuration files contain a list of
+ kernel parameters.</p></div><div class="refsect1"><a name="idm214180384960"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>The configuration files contain a list of
variable assignments, separated by newlines. Empty
lines and lines whose first non-whitespace character
is "<code class="literal">#</code>" or "<code class="literal">;</code>" are
- ignored.</p><p>Note that either "<code class="literal">/</code>" or
- "<code class="literal">.</code>" may be used as separators within
- sysctl variable names. If the first separator is a
- slash, remaining slashes and dots are left intact. If
- the first separator is a dot, dots and slashes are
- interchanged. "<code class="literal">kernel.domainname=foo</code>"
- and "<code class="literal">kernel/domainname=foo</code>" are
- equivalent and will cause "<code class="literal">foo</code>" to
- be written to
- <code class="filename">/proc/sys/kernel/domainname</code>.
- Either
- "<code class="literal">net.ipv4.conf.enp3s0/200.forwarding</code>"
- or
- "<code class="literal">net/ipv4/conf/enp3s0.200/forwarding</code>"
- may be used to refer to
- <code class="filename">/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</code>.
- </p><p>Each configuration file shall be named in the
+ ignored.</p><p>Each configuration file shall be named in the
style of <code class="filename"><em class="replaceable"><code>program</code></em>.conf</code>.
Files in <code class="filename">/etc/</code> override files
with the same name in <code class="filename">/usr/lib/</code>
lexicographically latest name will be applied. It is
recommended to prefix all filenames with a two-digit
number and a dash, to simplify the ordering of the
- files.</p><p>If the administrator wants to disable a
+ files.</p><p>Note that either "<code class="literal">/</code>" or
+ "<code class="literal">.</code>" may be used as separators within
+ sysctl variable names. If the first separator is a
+ slash, remaining slashes and dots are left intact. If
+ the first separator is a dot, dots and slashes are
+ interchanged. "<code class="literal">kernel.domainname=foo</code>"
+ and "<code class="literal">kernel/domainname=foo</code>" are
+ equivalent and will cause "<code class="literal">foo</code>" to
+ be written to
+ <code class="filename">/proc/sys/kernel/domainname</code>.
+ Either
+ "<code class="literal">net.ipv4.conf.enp3s0/200.forwarding</code>"
+ or
+ "<code class="literal">net/ipv4/conf/enp3s0.200/forwarding</code>"
+ may be used to refer to
+ <code class="filename">/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</code>.
+ </p><p>If the administrator wants to disable a
configuration file supplied by the vendor, the
recommended way is to place a symlink to
<code class="filename">/dev/null</code> in
specifically,
<code class="filename">net.ipv4.conf.*</code>,
<code class="filename">net.ipv6.conf.*</code>,
- <code class="filename">net.ipv4.neigh.*</code> and <code class="filename">net.ipv6.neigh.*</code>)</p></div><div class="refsect1"><a name="idm214188146352"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214189983344"></a><p class="title"><b>Example 1. /etc/sysctl.d/domain-name.conf example:</b></p><div class="example-contents"><pre class="programlisting"># Set kernel YP domain name
-kernel.domainname=example.com</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214189776704"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="filename">net.ipv4.neigh.*</code> and <code class="filename">net.ipv6.neigh.*</code>).</p><p>Many sysctl parameters only become available
+ when certain kernel modules are loaded. Modules are
+ usually loaded on demand, e.g. when certain hardware
+ is plugged in or network brought up. This means that
+ <a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a> which runs
+ during early boot will not configure such parameters
+ if they become available after it has run. To
+ set such parameters, it is recommended to add
+ an <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a> rule to set those parameters when they become
+ available. Alternatively, a slightly simpler and
+ less efficient option is to add the module to
+ <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, causing it to be loaded statically
+ before sysctl settings are applied (see
+ example below).</p></div><div class="refsect1"><a name="idm214180508656"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214180507984"></a><p class="title"><b>Example 1. Set kernel YP domain name</b></p><div class="example-contents"><p><code class="filename">/etc/sysctl.d/domain-name.conf</code>:
+ </p><pre class="programlisting">kernel.domainname=example.com</pre></div></div><br class="example-break"><div class="example"><a name="idm214180505408"></a><p class="title"><b>Example 2. Disable packet filter on bridged packets (method one)</b></p><div class="example-contents"><p><code class="filename">/etc/udev/rules.d/99-bridge.conf</code>:
+ </p><pre class="programlisting">ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/bridge"
+</pre><p><code class="filename">/etc/sysctl.d/bridge.conf</code>:
+ </p><pre class="programlisting">net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
+</pre></div></div><br class="example-break"><div class="example"><a name="idm214180493760"></a><p class="title"><b>Example 3. Disable packet filter on bridged packets (method two)</b></p><div class="example-contents"><p><code class="filename">/etc/modules-load.d/bridge.conf</code>:
+ </p><pre class="programlisting">bridge</pre><p><code class="filename">/etc/sysctl.d/bridge.conf</code>:
+ </p><pre class="programlisting">net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
+</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214180489376"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a>,
<a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>,
<a href="sysctl.html"><span class="citerefentry"><span class="refentrytitle">sysctl</span>(8)</span></a>,
<a href="sysctl.conf.html"><span class="citerefentry"><span class="refentrytitle">sysctl.conf</span>(5)</span></a>
+ <a href="modprobe.html"><span class="citerefentry"><span class="refentrytitle">modprobe</span>(8)</span></a>
</p></div></div></body></html>
is <literal>#</literal> or <literal>;</literal> are
ignored.</para>
- <para>Note that either <literal>/</literal> or
- <literal>.</literal> may be used as separators within
- sysctl variable names. If the first separator is a
- slash, remaining slashes and dots are left intact. If
- the first separator is a dot, dots and slashes are
- interchanged. <literal>kernel.domainname=foo</literal>
- and <literal>kernel/domainname=foo</literal> are
- equivalent and will cause <literal>foo</literal> to
- be written to
- <filename>/proc/sys/kernel/domainname</filename>.
- Either
- <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
- or
- <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
- may be used to refer to
- <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
- </para>
-
<para>Each configuration file shall be named in the
style of <filename><replaceable>program</replaceable>.conf</filename>.
Files in <filename>/etc/</filename> override files
number and a dash, to simplify the ordering of the
files.</para>
+ <para>Note that either <literal>/</literal> or
+ <literal>.</literal> may be used as separators within
+ sysctl variable names. If the first separator is a
+ slash, remaining slashes and dots are left intact. If
+ the first separator is a dot, dots and slashes are
+ interchanged. <literal>kernel.domainname=foo</literal>
+ and <literal>kernel/domainname=foo</literal> are
+ equivalent and will cause <literal>foo</literal> to
+ be written to
+ <filename>/proc/sys/kernel/domainname</filename>.
+ Either
+ <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
+ or
+ <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
+ may be used to refer to
+ <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
+ </para>
+
<para>If the administrator wants to disable a
configuration file supplied by the vendor, the
recommended way is to place a symlink to
specifically,
<filename>net.ipv4.conf.*</filename>,
<filename>net.ipv6.conf.*</filename>,
- <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>)</para>
+ <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>).</para>
+
+ <para>Many sysctl parameters only become available
+ when certain kernel modules are loaded. Modules are
+ usually loaded on demand, e.g. when certain hardware
+ is plugged in or network brought up. This means that
+ <citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> which runs
+ during early boot will not configure such parameters
+ if they become available after it has run. To
+ set such parameters, it is recommended to add
+ an <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> rule to set those parameters when they become
+ available. Alternatively, a slightly simpler and
+ less efficient option is to add the module to
+ <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, causing it to be loaded statically
+ before sysctl settings are applied (see
+ example below).</para>
</refsect1>
<refsect1>
- <title>Example</title>
+ <title>Examples</title>
<example>
- <title>/etc/sysctl.d/domain-name.conf example:</title>
+ <title>Set kernel YP domain name</title>
+ <para><filename>/etc/sysctl.d/domain-name.conf</filename>:
+ </para>
+
+ <programlisting>kernel.domainname=example.com</programlisting>
+ </example>
+
+ <example>
+ <title>Disable packet filter on bridged packets (method one)</title>
+ <para><filename>/etc/udev/rules.d/99-bridge.conf</filename>:
+ </para>
+
+ <programlisting>ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/bridge"
+</programlisting>
+
+ <para><filename>/etc/sysctl.d/bridge.conf</filename>:
+ </para>
+
+ <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
+</programlisting>
+ </example>
+
+ <example>
+ <title>Disable packet filter on bridged packets (method two)</title>
+ <para><filename>/etc/modules-load.d/bridge.conf</filename>:
+ </para>
+
+ <programlisting>bridge</programlisting>
+
+ <para><filename>/etc/sysctl.d/bridge.conf</filename>:
+ </para>
- <programlisting># Set kernel YP domain name
-kernel.domainname=example.com</programlisting>
+ <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
+</programlisting>
</example>
</refsect1>
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
'\" t
-.TH "SYSTEMCTL" "1" "" "systemd 214" "systemctl"
+.TH "SYSTEMCTL" "1" "" "systemd 215" "systemctl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\fBsnapshot\fR,
\fBis\-active\fR,
\fBis\-failed\fR,
+\fBis\-enabled\fR,
+\fBis\-system\-running\fR,
\fBenable\fR
and
\fBdisable\fR\&.
\fBset\-property\fR, make changes only temporarily, so that they are lost on the next reboot\&.
.RE
.PP
+\fB\-\-preset\-mode=\fR
+.RS 4
+Takes one of
+"full"
+(the default),
+"enable\-only",
+"disable\-only"\&. When used with the
+\fBpreset\fR
+or
+\fBpreset\-all\fR
+commands, controls whether units shall be disabled and enabled according to the preset rules, or only enabled, or only disabled\&.
+.RE
+.PP
\fB\-n\fR, \fB\-\-lines=\fR
.RS 4
When used with
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
Reset one or more unit files, as specified on the command line, to the defaults configured in the preset policy files\&. This has the same effect as
\fBdisable\fR
or
-\fBenable\fR, depending how the unit is listed in the preset files\&. For more information on the preset policy format, see
+\fBenable\fR, depending how the unit is listed in the preset files\&.
+.sp
+Use
+\fB\-\-preset\-mode=\fR
+to control whether units shall be enabled and disabled, or only enabled, or only disabled\&.
+.sp
+For more information on the preset policy format, see
\fBsystemd.preset\fR(5)\&. For more information on the concept of presets, please consult the
\m[blue]\fBPreset\fR\m[]\&\s-2\u[1]\d\s+2
document\&.
.RE
.PP
+\fBpreset\-all\fR
+.RS 4
+Resets all installed unit files to the defaults configured in the preset policy file (see above)\&.
+.sp
+Use
+\fB\-\-preset\-mode=\fR
+to control whether units shall be enabled and disabled, or only enabled, or only disabled\&.
+.RE
+.PP
\fBmask \fR\fB\fINAME\fR\fR\fB\&.\&.\&.\fR
.RS 4
Mask one or more unit files, as specified on the command line\&. This will link these units to
.RE
.SS "System Commands"
.PP
+\fBis\-system\-running\fR
+.RS 4
+Checks whether the system is running\&. This returns success when the system is fully up and running, meaning not in startup, shutdown or maintainance mode\&. Failure is returned otherwise\&. In addition, the current state is printed in a short string to standard output\&. Use
+\fB\-\-quiet\fR
+to suppress output of this state string\&.
+.RE
+.PP
\fBdefault\fR
.RS 4
Enter default mode\&. This is mostly equivalent to
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemctl — Control the systemd system and service manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemctl</code> [OPTIONS...] COMMAND [NAME...]</p></div></div><div class="refsect1"><a name="idm214192531264"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemctl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemctl — Control the systemd system and service manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemctl</code> [OPTIONS...] COMMAND [NAME...]</p></div></div><div class="refsect1"><a name="idm214173287904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemctl</strong></span> may be used to
introspect and control the state of the
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
- system and service manager.</p></div><div class="refsect1"><a name="idm214195015744"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--type=</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>The argument should be a comma-separated list of unit
+ system and service manager.</p></div><div class="refsect1"><a name="idm214173285312"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--type=</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>The argument should be a comma-separated list of unit
types such as <code class="option">service</code> and
<code class="option">socket</code>.
</p><p>If one of the arguments is a unit type, when listing
<span class="command"><strong>snapshot</strong></span>,
<span class="command"><strong>is-active</strong></span>,
<span class="command"><strong>is-failed</strong></span>,
+ <span class="command"><strong>is-enabled</strong></span>,
+ <span class="command"><strong>is-system-running</strong></span>,
<span class="command"><strong>enable</strong></span> and
<span class="command"><strong>disable</strong></span>.</p></dd><dt id="--no-block"><span class="term"><code class="option">--no-block</code></span><a class="headerlink" title="Permalink to this term" href="#--no-block">¶</a></dt><dd><p>Do not synchronously wait for the requested operation
to finish. If this is not specified, the job will be
is lost on reboot, the changes are lost too.</p><p>Similarly, when used with
<span class="command"><strong>set-property</strong></span>, make changes only
temporarily, so that they are lost on the next
- reboot.</p></dd><dt id="-n"><span class="term"><code class="option">-n</code>, </span><span class="term"><code class="option">--lines=</code></span><a class="headerlink" title="Permalink to this term" href="#-n">¶</a></dt><dd><p>When used with <span class="command"><strong>status</strong></span>, controls the
+ reboot.</p></dd><dt id="--preset-mode="><span class="term"><code class="option">--preset-mode=</code></span><a class="headerlink" title="Permalink to this term" href="#--preset-mode=">¶</a></dt><dd><p>Takes one of "<code class="literal">full</code>" (the default),
+ "<code class="literal">enable-only</code>",
+ "<code class="literal">disable-only</code>". When used with the
+ <span class="command"><strong>preset</strong></span> or <span class="command"><strong>preset-all</strong></span>
+ commands, controls whether units shall be disabled and
+ enabled according to the preset rules, or only enabled, or
+ only disabled.</p></dd><dt id="-n"><span class="term"><code class="option">-n</code>, </span><span class="term"><code class="option">--lines=</code></span><a class="headerlink" title="Permalink to this term" href="#-n">¶</a></dt><dd><p>When used with <span class="command"><strong>status</strong></span>, controls the
number of journal lines to show, counting from the most
recent ones. Takes a positive integer argument. Defaults to
10.</p></dd><dt id="-o"><span class="term"><code class="option">-o</code>, </span><span class="term"><code class="option">--output=</code></span><a class="headerlink" title="Permalink to this term" href="#-o">¶</a></dt><dd><p>When used with <span class="command"><strong>status</strong></span>, controls the
available choices, see
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>.
Defaults to "<code class="literal">short</code>".</p></dd><dt id="--plain"><span class="term"><code class="option">--plain</code></span><a class="headerlink" title="Permalink to this term" href="#--plain">¶</a></dt><dd><p>When used with <span class="command"><strong>list-dependencies</strong></span>,
- the output is printed as a list instead of a tree.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ the output is printed as a list instead of a tree.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197337648"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood:</p><div class="refsect2"><a name="idm214197336544"></a><h3 id="Unit Commands">Unit Commands<a class="headerlink" title="Permalink to this headline" href="#Unit%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-units PATTERN..."><span class="term"><span class="command"><strong>list-units [<span class="optional"><em class="replaceable"><code>PATTERN</code></em>...</span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-units%20PATTERN...">¶</a></dt><dd><p>List known units (subject to limitations specified
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168669712"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood:</p><div class="refsect2"><a name="idm214168668688"></a><h3 id="Unit Commands">Unit Commands<a class="headerlink" title="Permalink to this headline" href="#Unit%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-units PATTERN..."><span class="term"><span class="command"><strong>list-units [<span class="optional"><em class="replaceable"><code>PATTERN</code></em>...</span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-units%20PATTERN...">¶</a></dt><dd><p>List known units (subject to limitations specified
with <code class="option">-t</code>). If one or more
<em class="replaceable"><code>PATTERN</code></em>s are specified, only
units matching one of them are shown.</p><p>This is the default command.</p></dd><dt id="list-sockets PATTERN..."><span class="term"><span class="command"><strong>list-sockets [<span class="optional"><em class="replaceable"><code>PATTERN</code></em>...</span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-sockets%20PATTERN...">¶</a></dt><dd><p>List socket units ordered by listening address.
<code class="filename">default.target</code> is implied. Target units
are recursively expanded. When <code class="option">--all</code> is
passed, all other units are recursively expanded as
- well.</p></dd></dl></div></div><div class="refsect2"><a name="idm214195442112"></a><h3 id="Unit File Commands">Unit File Commands<a class="headerlink" title="Permalink to this headline" href="#Unit%20File%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-unit-files PATTERN..."><span class="term"><span class="command"><strong>list-unit-files [<span class="optional"><em class="replaceable"><code>PATTERN...</code></em></span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-unit-files%20PATTERN...">¶</a></dt><dd><p>List installed unit files. If one or more
+ well.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168583040"></a><h3 id="Unit File Commands">Unit File Commands<a class="headerlink" title="Permalink to this headline" href="#Unit%20File%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-unit-files PATTERN..."><span class="term"><span class="command"><strong>list-unit-files [<span class="optional"><em class="replaceable"><code>PATTERN...</code></em></span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-unit-files%20PATTERN...">¶</a></dt><dd><p>List installed unit files. If one or more
<em class="replaceable"><code>PATTERN</code></em>s are specified, only
units whose filename (just the last component of the path)
matches one of them are shown.</p></dd><dt id="enable NAME..."><span class="term"><span class="command"><strong>enable <em class="replaceable"><code>NAME</code></em>...</strong></span></span><a class="headerlink" title="Permalink to this term" href="#enable%20NAME...">¶</a></dt><dd><p>Enable one or more unit files or unit file instances,
exit code of 0 if at least one is enabled, non-zero
otherwise. Prints the current enable status (see table).
To suppress this output, use <code class="option">--quiet</code>.
- </p><div class="table"><a name="idm214192417056"></a><p class="title"><b>Table 1.
+ </p><div class="table"><a name="idm214168555792"></a><p class="title"><b>Table 1.
<span class="command">is-enabled</span> output
</b></p><div class="table-contents"><table summary="
is-enabled output
command line, to the defaults configured in the preset
policy files. This has the same effect as
<span class="command"><strong>disable</strong></span> or <span class="command"><strong>enable</strong></span>,
- depending how the unit is listed in the preset files. For
- more information on the preset policy format, see
+ depending how the unit is listed in the preset files.</p><p>Use <code class="option">--preset-mode=</code> to control
+ whether units shall be enabled and disabled, or only
+ enabled, or only disabled.</p><p>For more information on the preset policy format,
+ see
<a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>.
For more information on the concept of presets, please
- consult the
- <a class="ulink" href="http://freedesktop.org/wiki/Software/systemd/Preset" target="_top">Preset</a>
- document.</p></dd><dt id="mask NAME..."><span class="term"><span class="command"><strong>mask <em class="replaceable"><code>NAME</code></em>...</strong></span></span><a class="headerlink" title="Permalink to this term" href="#mask%20NAME...">¶</a></dt><dd><p>Mask one or more unit files, as specified on the
+ consult the <a class="ulink" href="http://freedesktop.org/wiki/Software/systemd/Preset" target="_top">Preset</a>
+ document.</p></dd><dt id="preset-all"><span class="term"><span class="command"><strong>preset-all</strong></span></span><a class="headerlink" title="Permalink to this term" href="#preset-all">¶</a></dt><dd><p>Resets all installed unit files to the defaults
+ configured in the preset policy file (see above).</p><p>Use <code class="option">--preset-mode=</code> to control
+ whether units shall be enabled and disabled, or only
+ enabled, or only disabled.</p></dd><dt id="mask NAME..."><span class="term"><span class="command"><strong>mask <em class="replaceable"><code>NAME</code></em>...</strong></span></span><a class="headerlink" title="Permalink to this term" href="#mask%20NAME...">¶</a></dt><dd><p>Mask one or more unit files, as specified on the
command line. This will link these units to
<code class="filename">/dev/null</code>, making it impossible to
start them. This is a stronger version of
<span class="command"><strong>start</strong></span> and other commands although it
is not installed directly in the unit search path.</p></dd><dt id="get-default"><span class="term"><span class="command"><strong>get-default</strong></span></span><a class="headerlink" title="Permalink to this term" href="#get-default">¶</a></dt><dd><p>Get the default target specified
via <code class="filename">default.target</code> link.</p></dd><dt id="set-default NAME"><span class="term"><span class="command"><strong>set-default <em class="replaceable"><code>NAME</code></em></strong></span></span><a class="headerlink" title="Permalink to this term" href="#set-default%20NAME">¶</a></dt><dd><p>Set the default target to boot into. Command links
- <code class="filename">default.target</code> to the given unit.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192368240"></a><h3 id="Machine Commands">Machine Commands<a class="headerlink" title="Permalink to this headline" href="#Machine%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-machines PATTERN..."><span class="term"><span class="command"><strong>list-machines [<span class="optional"><em class="replaceable"><code>PATTERN</code></em>...</span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-machines%20PATTERN...">¶</a></dt><dd><p>List the host and all running local containers with
+ <code class="filename">default.target</code> to the given unit.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168502768"></a><h3 id="Machine Commands">Machine Commands<a class="headerlink" title="Permalink to this headline" href="#Machine%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-machines PATTERN..."><span class="term"><span class="command"><strong>list-machines [<span class="optional"><em class="replaceable"><code>PATTERN</code></em>...</span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-machines%20PATTERN...">¶</a></dt><dd><p>List the host and all running local containers with
their state. If one or more
<em class="replaceable"><code>PATTERN</code></em>s are specified, only
containers matching one of them are shown.
- </p></dd></dl></div></div><div class="refsect2"><a name="idm214192364048"></a><h3 id="Job Commands">Job Commands<a class="headerlink" title="Permalink to this headline" href="#Job%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-jobs PATTERN..."><span class="term"><span class="command"><strong>list-jobs [<span class="optional"><em class="replaceable"><code>PATTERN...</code></em></span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-jobs%20PATTERN...">¶</a></dt><dd><p>List jobs that are in progress. If one or more
+ </p></dd></dl></div></div><div class="refsect2"><a name="idm214168498576"></a><h3 id="Job Commands">Job Commands<a class="headerlink" title="Permalink to this headline" href="#Job%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="list-jobs PATTERN..."><span class="term"><span class="command"><strong>list-jobs [<span class="optional"><em class="replaceable"><code>PATTERN...</code></em></span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list-jobs%20PATTERN...">¶</a></dt><dd><p>List jobs that are in progress. If one or more
<em class="replaceable"><code>PATTERN</code></em>s are specified, only
jobs for units matching one of them are shown.</p></dd><dt id="cancel JOB..."><span class="term"><span class="command"><strong>cancel <em class="replaceable"><code>JOB</code></em>...</strong></span></span><a class="headerlink" title="Permalink to this term" href="#cancel%20JOB...">¶</a></dt><dd><p>Cancel one or more jobs specified on the command line
by their numeric job IDs. If no job ID is specified, cancel
- all pending jobs.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192357584"></a><h3 id="Snapshot Commands">Snapshot Commands<a class="headerlink" title="Permalink to this headline" href="#Snapshot%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="snapshot NAME"><span class="term"><span class="command"><strong>snapshot [<span class="optional"><em class="replaceable"><code>NAME</code></em></span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#snapshot%20NAME">¶</a></dt><dd><p>Create a snapshot. If a snapshot name is specified,
+ all pending jobs.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168492112"></a><h3 id="Snapshot Commands">Snapshot Commands<a class="headerlink" title="Permalink to this headline" href="#Snapshot%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="snapshot NAME"><span class="term"><span class="command"><strong>snapshot [<span class="optional"><em class="replaceable"><code>NAME</code></em></span>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#snapshot%20NAME">¶</a></dt><dd><p>Create a snapshot. If a snapshot name is specified,
the new snapshot will be named after it. If none is
specified, an automatic snapshot name is generated. In
either case, the snapshot name used is printed to standard
which units are running or are stopped, they do not
save/restore any other state. Snapshots are dynamic and lost
on reboot.</p></dd><dt id="delete PATTERN..."><span class="term"><span class="command"><strong>delete <em class="replaceable"><code>PATTERN</code></em>...</strong></span></span><a class="headerlink" title="Permalink to this term" href="#delete%20PATTERN...">¶</a></dt><dd><p>Remove a snapshot previously created with
- <span class="command"><strong>snapshot</strong></span>.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192348592"></a><h3 id="Environment Commands">Environment Commands<a class="headerlink" title="Permalink to this headline" href="#Environment%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="show-environment"><span class="term"><span class="command"><strong>show-environment</strong></span></span><a class="headerlink" title="Permalink to this term" href="#show-environment">¶</a></dt><dd><p>Dump the systemd manager environment block. The
+ <span class="command"><strong>snapshot</strong></span>.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168483120"></a><h3 id="Environment Commands">Environment Commands<a class="headerlink" title="Permalink to this headline" href="#Environment%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="show-environment"><span class="term"><span class="command"><strong>show-environment</strong></span></span><a class="headerlink" title="Permalink to this term" href="#show-environment">¶</a></dt><dd><p>Dump the systemd manager environment block. The
environment block will be dumped in straight-forward form
suitable for sourcing into a shell script. This environment
block will be passed to all processes the manager
imported. Otherwise, a list of one or more environment
variable names should be passed, whose client-side values
are then imported into the manager's environment
- block.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192337536"></a><h3 id="Manager Lifecycle Commands">Manager Lifecycle Commands<a class="headerlink" title="Permalink to this headline" href="#Manager%20Lifecycle%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="daemon-reload"><span class="term"><span class="command"><strong>daemon-reload</strong></span></span><a class="headerlink" title="Permalink to this term" href="#daemon-reload">¶</a></dt><dd><p>Reload systemd manager configuration. This will reload
+ block.</p></dd></dl></div></div><div class="refsect2"><a name="idm214173480768"></a><h3 id="Manager Lifecycle Commands">Manager Lifecycle Commands<a class="headerlink" title="Permalink to this headline" href="#Manager%20Lifecycle%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="daemon-reload"><span class="term"><span class="command"><strong>daemon-reload</strong></span></span><a class="headerlink" title="Permalink to this term" href="#daemon-reload">¶</a></dt><dd><p>Reload systemd manager configuration. This will reload
all unit files and recreate the entire dependency
tree. While the daemon is being reloaded, all sockets systemd
listens on on behalf of user configuration will stay
helpful as a heavy-weight <span class="command"><strong>daemon-reload</strong></span>.
While the daemon is being reexecuted, all sockets systemd listening
on behalf of user configuration will stay accessible.
- </p></dd></dl></div></div><div class="refsect2"><a name="idm214192329472"></a><h3 id="System Commands">System Commands<a class="headerlink" title="Permalink to this headline" href="#System%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="default"><span class="term"><span class="command"><strong>default</strong></span></span><a class="headerlink" title="Permalink to this term" href="#default">¶</a></dt><dd><p>Enter default mode. This is mostly equivalent to
+ </p></dd></dl></div></div><div class="refsect2"><a name="idm214168455376"></a><h3 id="System Commands">System Commands<a class="headerlink" title="Permalink to this headline" href="#System%20Commands">¶</a></h3><div class="variablelist"><dl class="variablelist"><dt id="is-system-running"><span class="term"><span class="command"><strong>is-system-running</strong></span></span><a class="headerlink" title="Permalink to this term" href="#is-system-running">¶</a></dt><dd><p>Checks whether the system is running. This returns
+ success when the system is fully up and running, meaning
+ not in startup, shutdown or maintainance mode. Failure is
+ returned otherwise. In addition, the current state is
+ printed in a short string to standard output. Use
+ <code class="option">--quiet</code> to suppress output of this state
+ string.</p></dd><dt id="default"><span class="term"><span class="command"><strong>default</strong></span></span><a class="headerlink" title="Permalink to this term" href="#default">¶</a></dt><dd><p>Enter default mode. This is mostly equivalent to
<span class="command"><strong>isolate default.target</strong></span>.</p></dd><dt id="rescue"><span class="term"><span class="command"><strong>rescue</strong></span></span><a class="headerlink" title="Permalink to this term" href="#rescue">¶</a></dt><dd><p>Enter rescue mode. This is mostly equivalent to
<span class="command"><strong>isolate rescue.target</strong></span>, but also prints a
wall message to all users.</p></dd><dt id="emergency"><span class="term"><span class="command"><strong>emergency</strong></span></span><a class="headerlink" title="Permalink to this term" href="#emergency">¶</a></dt><dd><p>Enter emergency mode. This is mostly equivalent to
equal to the empty string, the state of the initrd's system
manager process is passed to the main system manager, which
allows later introspection of the state of the services
- involved in the initrd boot.</p></dd></dl></div></div><div class="refsect2"><a name="idm214197414976"></a><h3 id="Parameter Syntax">Parameter Syntax<a class="headerlink" title="Permalink to this headline" href="#Parameter%20Syntax">¶</a></h3><p>Unit commands listed above take either a single unit name
+ involved in the initrd boot.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168410608"></a><h3 id="Parameter Syntax">Parameter Syntax<a class="headerlink" title="Permalink to this headline" href="#Parameter%20Syntax">¶</a></h3><p>Unit commands listed above take either a single unit name
(designated as <em class="replaceable"><code>NAME</code></em>), or multiple
unit specifications (designated as
<em class="replaceable"><code>PATTERN</code></em>...). In the first case, the
</p><pre class="programlisting"># systemctl enable foo.service</pre><p>
or
</p><pre class="programlisting"># systemctl link /path/to/foo.service</pre><p>
- </p></div></div><div class="refsect1"><a name="idm214192263520"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214178830064"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+ </p></div></div><div class="refsect1"><a name="idm214168395616"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214152885568"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214192261792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214168393888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemadm.html"><span class="citerefentry"><span class="refentrytitle">systemadm</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<command>snapshot</command>,
<command>is-active</command>,
<command>is-failed</command>,
+ <command>is-enabled</command>,
+ <command>is-system-running</command>,
<command>enable</command> and
<command>disable</command>.</para>
</listitem>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>--preset-mode=</option></term>
+
+ <listitem>
+ <para>Takes one of <literal>full</literal> (the default),
+ <literal>enable-only</literal>,
+ <literal>disable-only</literal>. When used with the
+ <command>preset</command> or <command>preset-all</command>
+ commands, controls whether units shall be disabled and
+ enabled according to the preset rules, or only enabled, or
+ only disabled.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><option>-n</option></term>
<term><option>--lines=</option></term>
command line, to the defaults configured in the preset
policy files. This has the same effect as
<command>disable</command> or <command>enable</command>,
- depending how the unit is listed in the preset files. For
- more information on the preset policy format, see
+ depending how the unit is listed in the preset files.</para>
+
+ <para>Use <option>--preset-mode=</option> to control
+ whether units shall be enabled and disabled, or only
+ enabled, or only disabled.</para>
+
+ <para>For more information on the preset policy format,
+ see
<citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
For more information on the concept of presets, please
- consult the
- <ulink url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
+ consult the <ulink
+ url="http://freedesktop.org/wiki/Software/systemd/Preset">Preset</ulink>
document.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><command>preset-all</command></term>
+
+ <listitem>
+ <para>Resets all installed unit files to the defaults
+ configured in the preset policy file (see above).</para>
+
+ <para>Use <option>--preset-mode=</option> to control
+ whether units shall be enabled and disabled, or only
+ enabled, or only disabled.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><command>mask <replaceable>NAME</replaceable>...</command></term>
<title>System Commands</title>
<variablelist>
+ <varlistentry>
+ <term><command>is-system-running</command></term>
+
+ <listitem>
+ <para>Checks whether the system is running. This returns
+ success when the system is fully up and running, meaning
+ not in startup, shutdown or maintainance mode. Failure is
+ returned otherwise. In addition, the current state is
+ printed in a short string to standard output. Use
+ <option>--quiet</option> to suppress output of this state
+ string.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><command>default</command></term>
<command>isolate default.target</command>.</para>
</listitem>
</varlistentry>
+
<varlistentry>
<term><command>rescue</command></term>
'\" t
-.TH "SYSTEMD\-ACTIVATE" "8" "" "systemd 214" "systemd-activate"
+.TH "SYSTEMD\-ACTIVATE" "8" "" "systemd 215" "systemd-activate"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-activate"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-activate — Test socket activation of daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-activate</code> [OPTIONS...] <em class="replaceable"><code>daemon</code></em> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214168112624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-activate</strong></span> can be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-activate"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-activate — Test socket activation of daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-activate</code> [OPTIONS...] <em class="replaceable"><code>daemon</code></em> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214176941344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-activate</strong></span> can be used to
launch a socket activated daemon from the command-line for
testing purposes. It can also be used to launch single instances
of the daemon per connection (inetd-style).
to <span class="command"><strong>systemd-activate</strong></span> will be passed through to
the dameon, in the original positions. Other sockets specified
with <code class="option">--listen</code> will use consecutive descriptors.
- </p></div><div class="refsect1"><a name="idm214167863312"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="-l address"><span class="term"><code class="option">-l <em class="replaceable"><code>address</code></em></code>, </span><span class="term"><code class="option">--listen=<em class="replaceable"><code>address</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-l%20address">¶</a></dt><dd><p>Listen on this <em class="replaceable"><code>address</code></em>.
+ </p></div><div class="refsect1"><a name="idm214177010960"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="-l address"><span class="term"><code class="option">-l <em class="replaceable"><code>address</code></em></code>, </span><span class="term"><code class="option">--listen=<em class="replaceable"><code>address</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-l%20address">¶</a></dt><dd><p>Listen on this <em class="replaceable"><code>address</code></em>.
Takes a string like "<code class="literal">2000</code>" or
"<code class="literal">127.0.0.1:2001</code>".</p></dd><dt id="-a"><span class="term"><code class="option">-a</code>, </span><span class="term"><code class="option">--accept</code></span><a class="headerlink" title="Permalink to this term" href="#-a">¶</a></dt><dd><p>Launch a separate instance of daemon per
connection and pass the connection socket as standard input
variable–value pair. Otherwise, obtain the value from the
environment of <span class="command"><strong>systemd-activate</strong></span> itself.
</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166852464"></a><h2 id="Environment variables">Environment variables<a class="headerlink" title="Permalink to this headline" href="#Environment%20variables">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code>, </span><span class="term"><code class="varname">$LISTEN_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_FDS">¶</a></dt><dd><p>See
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177071616"></a><h2 id="Environment variables">Environment variables<a class="headerlink" title="Permalink to this headline" href="#Environment%20variables">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code>, </span><span class="term"><code class="varname">$LISTEN_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_FDS">¶</a></dt><dd><p>See
<a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>.</p></dd><dt id="$SYSTEMD_LOG_TARGET"><span class="term"><code class="varname">$SYSTEMD_LOG_TARGET</code>, </span><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code>, </span><span class="term"><code class="varname">$SYSTEMD_LOG_COLOR</code>, </span><span class="term"><code class="varname">$SYSTEMD_LOG_LOCATION</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_TARGET">¶</a></dt><dd><p>Same as in
- <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169549648"></a><h2 id="Example 1">Example 1<a class="headerlink" title="Permalink to this headline" href="#Example%201">¶</a></h2><pre class="programlisting">$ /usr/lib/systemd/systemd-activate -l 2000 -a cat</pre><p>This runs an echo server on port 2000.</p></div><div class="refsect1"><a name="idm214168395680"></a><h2 id="Example 2">Example 2<a class="headerlink" title="Permalink to this headline" href="#Example%202">¶</a></h2><pre class="programlisting">$ /usr/lib/systemd/systemd-activate -l 19531 /usr/lib/systemd/systemd-journal-gatewayd</pre><p>This runs a socket activated instance of
- <a href="systemd-journal-gatewayd.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214167080880"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177063344"></a><h2 id="Example 1">Example 1<a class="headerlink" title="Permalink to this headline" href="#Example%201">¶</a></h2><pre class="programlisting">$ /usr/lib/systemd/systemd-activate -l 2000 -a cat</pre><p>This runs an echo server on port 2000.</p></div><div class="refsect1"><a name="idm214177061456"></a><h2 id="Example 2">Example 2<a class="headerlink" title="Permalink to this headline" href="#Example%202">¶</a></h2><pre class="programlisting">$ /usr/lib/systemd/systemd-activate -l 19531 /usr/lib/systemd/systemd-journal-gatewayd</pre><p>This runs a socket activated instance of
+ <a href="systemd-journal-gatewayd.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214177058800"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>,
<a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-ANALYZE" "1" "" "systemd 214" "systemd-analyze"
+.TH "SYSTEMD\-ANALYZE" "1" "" "systemd 215" "systemd-analyze"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-analyze"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-analyze — Analyze system boot-up performance</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] [time]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] blame </p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] critical-chain [<em class="replaceable"><code>UNIT</code></em>...]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] plot [> file.svg]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] dot [<em class="replaceable"><code>PATTERN</code></em>...] [> file.dot]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] dump </p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] set-log-level [<em class="replaceable"><code>LEVEL</code></em>]</p></div></div><div class="refsect1"><a name="idm214180780064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-analyze</strong></span> may be used
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-analyze"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-analyze — Analyze system boot-up performance</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] [time]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] blame </p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] critical-chain [<em class="replaceable"><code>UNIT</code></em>...]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] plot [> file.svg]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] dot [<em class="replaceable"><code>PATTERN</code></em>...] [> file.dot]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] dump </p></div><div class="cmdsynopsis"><p><code class="command">systemd-analyze</code> [OPTIONS...] set-log-level [<em class="replaceable"><code>LEVEL</code></em>]</p></div></div><div class="refsect1"><a name="idm214183644624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-analyze</strong></span> may be used
to determine system boot-up performance statistics and
retrieve other state and tracing information from the
system and service manager.</p><p><span class="command"><strong>systemd-analyze time</strong></span>
the same values as <code class="option">--log-level=</code>
described in
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>).</p><p>If no command is passed, <span class="command"><strong>systemd-analyze
- time</strong></span> is implied.</p></div><div class="refsect1"><a name="idm214180753776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="#--user">¶</a></dt><dd><p>Shows performance data
+ time</strong></span> is implied.</p></div><div class="refsect1"><a name="idm214183618672"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="#--user">¶</a></dt><dd><p>Shows performance data
of user sessions instead of the system
manager.</p></dd><dt id="--system"><span class="term"><code class="option">--system</code></span><a class="headerlink" title="Permalink to this term" href="#--system">¶</a></dt><dd><p>Shows performance data
of the system manager. This is the
latest unit in the same level. The unit of
<em class="replaceable"><code>timespan</code></em> is seconds
unless specified with a different unit,
- e.g. "50ms".</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ e.g. "50ms".</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214175820960"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214175819808"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>This plots all dependencies of any unit whose
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178965472"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214178964320"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>This plots all dependencies of any unit whose
name starts with "<code class="literal">avahi-daemon.</code>":</p><pre class="programlisting">$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg</pre><p>This plots the dependencies between all known target units:</p><pre class="programlisting">systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
-$ eog targets.svg</pre></div><div class="refsect1"><a name="idm214163648976"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+$ eog targets.svg</pre></div><div class="refsect1"><a name="idm214166569984"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214175815776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214178960288"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
- console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214192625168"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
+ console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214174234032"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
is a system service that queries the user for system
passwords (such as hard disk encryption keys and SSL
certificate passphrases) on the console. It is
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>
with either the <span class="command"><strong>--watch --console</strong></span>
or <span class="command"><strong>--watch --wall</strong></span> command line
- parameters.</p></div><div class="refsect1"><a name="idm214192617536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ parameters.</p></div><div class="refsect1"><a name="idm214174221776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>,
<a href="wall.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
'\" t
-.TH "SYSTEMD\-ASK\-PASSWORD\-CONSOLE\&.SERVICE" "8" "" "systemd 214" "systemd-ask-password-console.service"
+.TH "SYSTEMD\-ASK\-PASSWORD\-CONSOLE\&.SERVICE" "8" "" "systemd 215" "systemd-ask-password-console.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
- console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214192625168"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
+ console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214174234032"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
is a system service that queries the user for system
passwords (such as hard disk encryption keys and SSL
certificate passphrases) on the console. It is
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>
with either the <span class="command"><strong>--watch --console</strong></span>
or <span class="command"><strong>--watch --wall</strong></span> command line
- parameters.</p></div><div class="refsect1"><a name="idm214192617536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ parameters.</p></div><div class="refsect1"><a name="idm214174221776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>,
<a href="wall.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
- console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214192625168"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
+ console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214174234032"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
is a system service that queries the user for system
passwords (such as hard disk encryption keys and SSL
certificate passphrases) on the console. It is
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>
with either the <span class="command"><strong>--watch --console</strong></span>
or <span class="command"><strong>--watch --wall</strong></span> command line
- parameters.</p></div><div class="refsect1"><a name="idm214192617536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ parameters.</p></div><div class="refsect1"><a name="idm214174221776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>,
<a href="wall.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
- console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214192625168"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-ask-password-console.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password-console.service, systemd-ask-password-console.path, systemd-ask-password-wall.service, systemd-ask-password-wall.path — Query the user for system passwords on the
+ console and via wall</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-ask-password-console.service</code></p><p><code class="filename">systemd-ask-password-console.path</code></p><p><code class="filename">systemd-ask-password-wall.service</code></p><p><code class="filename">systemd-ask-password-wall.path</code></p></div><div class="refsect1"><a name="idm214174234032"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-ask-password-console.service</code>
is a system service that queries the user for system
passwords (such as hard disk encryption keys and SSL
certificate passphrases) on the console. It is
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>
with either the <span class="command"><strong>--watch --console</strong></span>
or <span class="command"><strong>--watch --wall</strong></span> command line
- parameters.</p></div><div class="refsect1"><a name="idm214192617536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ parameters.</p></div><div class="refsect1"><a name="idm214174221776"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>,
<a href="wall.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
'\" t
-.TH "SYSTEMD\-ASK\-PASSWORD" "1" "" "systemd 214" "systemd-ask-password"
+.TH "SYSTEMD\-ASK\-PASSWORD" "1" "" "systemd 215" "systemd-ask-password"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-ask-password"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password — Query the user for a system password</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-ask-password [OPTIONS...] [MESSAGE]</code> </p></div></div><div class="refsect1"><a name="idm214198536528"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-ask-password</strong></span> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-ask-password"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-ask-password — Query the user for a system password</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-ask-password [OPTIONS...] [MESSAGE]</code> </p></div></div><div class="refsect1"><a name="idm214169972928"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-ask-password</strong></span> may be
used to query a system password or passphrase from the
user, using a question message specified on the
command line. When run from a TTY it will query a
Password Agent Specification</a>.</p><p>If a password is queried on a TTY, the user may
press TAB to hide the asterisks normally shown for
each character typed. Pressing Backspace as first key
- achieves the same effect.</p></div><div class="refsect1"><a name="idm214198528832"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--icon="><span class="term"><code class="option">--icon=</code></span><a class="headerlink" title="Permalink to this term" href="#--icon=">¶</a></dt><dd><p>Specify an icon name
+ achieves the same effect.</p></div><div class="refsect1"><a name="idm214173855824"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--icon="><span class="term"><code class="option">--icon=</code></span><a class="headerlink" title="Permalink to this term" href="#--icon=">¶</a></dt><dd><p>Specify an icon name
alongside the password query, which may
be used in all agents supporting
graphical display. The icon name
accept multiple passwords. This will
output one password per
line.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214202413696"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214202412512"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214173749680"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214173748496"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="plymouth.html"><span class="citerefentry"><span class="refentrytitle">plymouth</span>(8)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-backlight@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-backlight@.service, systemd-backlight — Load and save the display backlight brightness at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-backlight@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-backlight</code></p></div><div class="refsect1"><a name="idm214199017552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-backlight@.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-backlight@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-backlight@.service, systemd-backlight — Load and save the display backlight brightness at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-backlight@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-backlight</code></p></div><div class="refsect1"><a name="idm214201334672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-backlight@.service</code>
is a service that restores the display backlight
brightness at early boot and saves it at shutdown. On
disk, the backlight brightness is stored in
- <code class="filename">/var/lib/systemd/backlight/</code>.</p></div><div class="refsect1"><a name="idm214199014864"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-backlight</code> understands
+ <code class="filename">/var/lib/systemd/backlight/</code>.</p></div><div class="refsect1"><a name="idm214202765200"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-backlight</code> understands
the following kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p>Takes a boolean
argument. Defaults to
"<code class="literal">1</code>". If
"<code class="literal">0</code>", does not restore
the backlight settings on boot. However,
settings will still be stored on shutdown.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214199009280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214199022576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-BACKLIGHT@\&.SERVICE" "8" "" "systemd 214" "systemd-backlight@.service"
+.TH "SYSTEMD\-BACKLIGHT@\&.SERVICE" "8" "" "systemd 215" "systemd-backlight@.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-backlight@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-backlight@.service, systemd-backlight — Load and save the display backlight brightness at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-backlight@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-backlight</code></p></div><div class="refsect1"><a name="idm214199017552"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-backlight@.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-backlight@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-backlight@.service, systemd-backlight — Load and save the display backlight brightness at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-backlight@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-backlight</code></p></div><div class="refsect1"><a name="idm214201334672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-backlight@.service</code>
is a service that restores the display backlight
brightness at early boot and saves it at shutdown. On
disk, the backlight brightness is stored in
- <code class="filename">/var/lib/systemd/backlight/</code>.</p></div><div class="refsect1"><a name="idm214199014864"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-backlight</code> understands
+ <code class="filename">/var/lib/systemd/backlight/</code>.</p></div><div class="refsect1"><a name="idm214202765200"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-backlight</code> understands
the following kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p>Takes a boolean
argument. Defaults to
"<code class="literal">1</code>". If
"<code class="literal">0</code>", does not restore
the backlight settings on boot. However,
settings will still be stored on shutdown.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214199009280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214199022576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-binfmt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-binfmt.service, systemd-binfmt — Configure additional binary formats for executables at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-binfmt.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-binfmt</code></p></div><div class="refsect1"><a name="idm214199515040"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-binfmt.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-binfmt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-binfmt.service, systemd-binfmt — Configure additional binary formats for executables at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-binfmt.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-binfmt</code></p></div><div class="refsect1"><a name="idm214195358608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-binfmt.service</code> is
an early-boot service that registers additional binary
formats for executables in the kernel.</p><p>See
<a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214199539440"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ service.</p></div><div class="refsect1"><a name="idm214196788528"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>,
<a href="wine.html"><span class="citerefentry"><span class="refentrytitle">wine</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-BINFMT\&.SERVICE" "8" "" "systemd 214" "systemd-binfmt.service"
+.TH "SYSTEMD\-BINFMT\&.SERVICE" "8" "" "systemd 215" "systemd-binfmt.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-binfmt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-binfmt.service, systemd-binfmt — Configure additional binary formats for executables at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-binfmt.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-binfmt</code></p></div><div class="refsect1"><a name="idm214199515040"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-binfmt.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-binfmt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-binfmt.service, systemd-binfmt — Configure additional binary formats for executables at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-binfmt.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-binfmt</code></p></div><div class="refsect1"><a name="idm214195358608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-binfmt.service</code> is
an early-boot service that registers additional binary
formats for executables in the kernel.</p><p>See
<a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214199539440"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ service.</p></div><div class="refsect1"><a name="idm214196788528"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>,
<a href="wine.html"><span class="citerefentry"><span class="refentrytitle">wine</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-BOOTCHART" "1" "" "systemd 214" "systemd-bootchart"
+.TH "SYSTEMD\-BOOTCHART" "1" "" "systemd 215" "systemd-bootchart"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-bootchart"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bootchart — Boot performance graphing tool</p></div><div class="refsect1"><a name="idm214174416304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-bootchart"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bootchart — Boot performance graphing tool</p></div><div class="refsect1"><a name="idm214173999824"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
<span class="command"><strong>systemd-bootchart</strong></span> is a
tool, usually run at system startup, that
collects the CPU load, disk load, memory
<code class="varname">MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518</code>.
Journal field <code class="varname">BOOTCHART=</code> contains
the bootchart in SVG format.
- </p></div><div class="refsect1"><a name="idm214175197856"></a><h2 id="Invocation">Invocation<a class="headerlink" title="Permalink to this headline" href="#Invocation">¶</a></h2><p><span class="command"><strong>systemd-bootchart</strong></span> can be invoked in several different ways:</p><div class="variablelist"><dl class="variablelist"><dt id="Kernel invocation"><span class="term"><span class="emphasis"><em>Kernel invocation</em></span></span><a class="headerlink" title="Permalink to this term" href="#Kernel%20invocation">¶</a></dt><dd><p>The kernel can invoke
+ </p></div><div class="refsect1"><a name="idm214174603200"></a><h2 id="Invocation">Invocation<a class="headerlink" title="Permalink to this headline" href="#Invocation">¶</a></h2><p><span class="command"><strong>systemd-bootchart</strong></span> can be invoked in several different ways:</p><div class="variablelist"><dl class="variablelist"><dt id="Kernel invocation"><span class="term"><span class="emphasis"><em>Kernel invocation</em></span></span><a class="headerlink" title="Permalink to this term" href="#Kernel%20invocation">¶</a></dt><dd><p>The kernel can invoke
<span class="command"><strong>systemd-bootchart</strong></span>
instead of the init process. In turn,
<span class="command"><strong>systemd-bootchart</strong></span>
not graph the time elapsed since boot
and before systemd-bootchart was
started, as it may result in extremely
- large graphs. </p></dd></dl></div></div><div class="refsect1"><a name="idm214175188960"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>These options can also be set in the
+ large graphs. </p></dd></dl></div></div><div class="refsect1"><a name="idm214174594304"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>These options can also be set in the
<code class="filename">/etc/systemd/bootchart.conf</code>
file. See
<a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>.
</p></dd><dt id="-e"><span class="term"><code class="option">-e</code>, </span><span class="term"><code class="option">--entropy</code></span><a class="headerlink" title="Permalink to this term" href="#-e">¶</a></dt><dd><p>Enable logging and graphing
of the kernel random entropy pool size.</p></dd><dt id="-x"><span class="term"><code class="option">-x</code>, </span><span class="term"><code class="option">--scale-x <em class="replaceable"><code>N</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-x">¶</a></dt><dd><p>Horizontal scaling factor for all variable
graph components.</p></dd><dt id="-y"><span class="term"><code class="option">-y</code>, </span><span class="term"><code class="option">--scale-y <em class="replaceable"><code>N</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-y">¶</a></dt><dd><p>Vertical scaling factor for all variable
- graph components.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179101872"></a><h2 id="Output">Output<a class="headerlink" title="Permalink to this headline" href="#Output">¶</a></h2><p><span class="command"><strong>systemd-bootchart</strong></span> generates SVG graphs. In order to render those
+ graph components.</p></dd></dl></div></div><div class="refsect1"><a name="idm214178454400"></a><h2 id="Output">Output<a class="headerlink" title="Permalink to this headline" href="#Output">¶</a></h2><p><span class="command"><strong>systemd-bootchart</strong></span> generates SVG graphs. In order to render those
on a graphical display any SVG capable viewer can be used. It should be
noted that the SVG render engines in most browsers (including Chrome
and Firefox) are many times faster than dedicated graphical applications
like Gimp and Inkscape. Just point your browser at <a class="ulink" href="file:///run/log/" target="_top">file:///run/log/</a>!
- </p></div><div class="refsect1"><a name="idm214179099168"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p>This version of bootchart was implemented from
+ </p></div><div class="refsect1"><a name="idm214178451696"></a><h2 id="History">History<a class="headerlink" title="Permalink to this headline" href="#History">¶</a></h2><p>This version of bootchart was implemented from
scratch, but is inspired by former bootchart
incantations:</p><div class="variablelist"><dl class="variablelist"><dt id="Original bash"><span class="term"><span class="emphasis"><em>Original bash</em></span></span><a class="headerlink" title="Permalink to this term" href="#Original%20bash">¶</a></dt><dd><p>The original bash/shell code implemented
bootchart. This version created a compressed tarball for
efficient and simpler. There are no longer any timing issues with the data
collector and the grapher, as the graphing cannot be run until the data
has been collected. Also, the data kept in memory is reduced to the absolute
- minimum needed.</p></div><div class="refsect1"><a name="idm214174409584"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ minimum needed.</p></div><div class="refsect1"><a name="idm214178442608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>
- </p></div><div class="refsect1"><a name="idm214174407664"></a><h2 id="Bugs">Bugs<a class="headerlink" title="Permalink to this headline" href="#Bugs">¶</a></h2><p>systemd-bootchart does not get the model information for the hard drive
+ </p></div><div class="refsect1"><a name="idm214173815824"></a><h2 id="Bugs">Bugs<a class="headerlink" title="Permalink to this headline" href="#Bugs">¶</a></h2><p>systemd-bootchart does not get the model information for the hard drive
unless the root device is specified with <code class="code">root=/dev/sdxY</code>. Using
UUIDs or PARTUUIDs will boot fine, but the hard drive model will not be
added to the chart.</p><p>For bugs, please contact the author and current maintainer:</p><table border="0" summary="Simple list" class="simplelist"><tr><td>Auke Kok <code class="email"><<a class="email" href="mailto:auke-jan.h.kok@intel.com">auke-jan.h.kok@intel.com</a>></code></td></tr></table></div></div></body></html>
'\" t
-.TH "SYSTEMD\-BUS\-PROXYD" "8" "" "systemd 214" "systemd-bus-proxyd"
+.TH "SYSTEMD\-BUS\-PROXYD" "8" "" "systemd 215" "systemd-bus-proxyd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-bus-proxyd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bus-proxyd — Connect STDIO or a socket to a given bus address</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-bus-proxyd</code> [OPTIONS...] [<em class="replaceable"><code>PLACEHOLDER</code></em>]</p></div></div><div class="refsect1"><a name="idm214181379264"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-bus-proxyd</strong></span> will proxy D-Bus
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-bus-proxyd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bus-proxyd — Connect STDIO or a socket to a given bus address</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-bus-proxyd</code> [OPTIONS...] [<em class="replaceable"><code>PLACEHOLDER</code></em>]</p></div></div><div class="refsect1"><a name="idm214171683136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-bus-proxyd</strong></span> will proxy D-Bus
messages to and from a bus. The will be either the system bus or
the bus specified with <code class="option">--address</code> when that option
is given. Messages will be proxied to/from standard input and
output, or the socket received through socket activation.</p><p>This program can be used to connect a program using classic
- D-Bus to kdbus.</p></div><div class="refsect1"><a name="idm214179777360"></a><h2 id="Options and Arguments">Options and Arguments<a class="headerlink" title="Permalink to this headline" href="#Options%20and%20Arguments">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--address=ADDRESS:ADDRESS..."><span class="term"><code class="option">--address=<em class="replaceable"><code>ADDRESS</code></em>[<span class="optional">:<em class="replaceable"><code>ADDRESS...</code></em></span>]</code></span><a class="headerlink" title="Permalink to this term" href="#--address=ADDRESS:ADDRESS...">¶</a></dt><dd><p>Connect to the bus specified by
+ D-Bus to kdbus.</p></div><div class="refsect1"><a name="idm214171680304"></a><h2 id="Options and Arguments">Options and Arguments<a class="headerlink" title="Permalink to this headline" href="#Options%20and%20Arguments">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--address=ADDRESS:ADDRESS..."><span class="term"><code class="option">--address=<em class="replaceable"><code>ADDRESS</code></em>[<span class="optional">:<em class="replaceable"><code>ADDRESS...</code></em></span>]</code></span><a class="headerlink" title="Permalink to this term" href="#--address=ADDRESS:ADDRESS...">¶</a></dt><dd><p>Connect to the bus specified by
<em class="replaceable"><code>ADDRESS</code></em>. Multiple colon-seperated
addresses can be specified, in which case
<span class="command"><strong>systemd-bus-proxyd</strong></span> will attempt to
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div><p><em class="replaceable"><code>PLACEHOLDER</code></em>, if given, must be a string
of "<code class="literal">x</code>" and will be used to display information about
the process that <span class="command"><strong>systemd-bus-proxyd</strong></span> is forwarding
- messages for.</p></div><div class="refsect1"><a name="idm214180014864"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ messages for.</p></div><div class="refsect1"><a name="idm214171671136"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="dbus-daemon.html"><span class="citerefentry"><span class="refentrytitle">dbus-daemon</span>(1)</span></a>,
<a class="ulink" href="http://freedesktop.org/wiki/Software/dbus" target="_top">D-Bus</a>,
<a class="ulink" href="https://code.google.com/p/d-bus/" target="_top">kdbus</a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-bus-proxyd@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bus-proxyd@.service, systemd-bus-proxyd.socket — Proxy classic D-Bus clients to kdbus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-bus-proxyd@.service</code></p><p><code class="filename">systemd-bus-proxyd.socket</code></p></div><div class="refsect1"><a name="idm214172982624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-bus-proxyd.socket</code> will launch
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-bus-proxyd@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bus-proxyd@.service, systemd-bus-proxyd.socket — Proxy classic D-Bus clients to kdbus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-bus-proxyd@.service</code></p><p><code class="filename">systemd-bus-proxyd.socket</code></p></div><div class="refsect1"><a name="idm214195818032"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-bus-proxyd.socket</code> will launch
<code class="filename">systemd-bus-proxyd@.service</code> for connections
to the classic D-Bus socket in
<code class="filename">/var/run/dbus/system_bus_socket</code>.</p><p><code class="filename">systemd-bus-proxyd@.service</code> is launched
for an existing D-Bus connection and will use
<span class="command"><strong>systemd-bus-proxyd</strong></span> to proxy messages from this
connection to the system bus (either kdbus or classic D-Bus).
- </p></div><div class="refsect1"><a name="idm214172977664"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214195813072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>
<a href="dbus-daemon.html"><span class="citerefentry"><span class="refentrytitle">dbus-daemon</span>(1)</span></a>
<a class="ulink" href="http://freedesktop.org/wiki/Software/dbus" target="_top">D-Bus</a>
'\" t
-.TH "SYSTEMD\-BUS\-PROXYD@\&.SERVICE" "8" "" "systemd 214" "systemd-bus-proxyd@.service"
+.TH "SYSTEMD\-BUS\-PROXYD@\&.SERVICE" "8" "" "systemd 215" "systemd-bus-proxyd@.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-bus-proxyd@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bus-proxyd@.service, systemd-bus-proxyd.socket — Proxy classic D-Bus clients to kdbus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-bus-proxyd@.service</code></p><p><code class="filename">systemd-bus-proxyd.socket</code></p></div><div class="refsect1"><a name="idm214172982624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-bus-proxyd.socket</code> will launch
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-bus-proxyd@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-bus-proxyd@.service, systemd-bus-proxyd.socket — Proxy classic D-Bus clients to kdbus</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-bus-proxyd@.service</code></p><p><code class="filename">systemd-bus-proxyd.socket</code></p></div><div class="refsect1"><a name="idm214195818032"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-bus-proxyd.socket</code> will launch
<code class="filename">systemd-bus-proxyd@.service</code> for connections
to the classic D-Bus socket in
<code class="filename">/var/run/dbus/system_bus_socket</code>.</p><p><code class="filename">systemd-bus-proxyd@.service</code> is launched
for an existing D-Bus connection and will use
<span class="command"><strong>systemd-bus-proxyd</strong></span> to proxy messages from this
connection to the system bus (either kdbus or classic D-Bus).
- </p></div><div class="refsect1"><a name="idm214172977664"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214195813072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>
<a href="dbus-daemon.html"><span class="citerefentry"><span class="refentrytitle">dbus-daemon</span>(1)</span></a>
<a class="ulink" href="http://freedesktop.org/wiki/Software/dbus" target="_top">D-Bus</a>
'\" t
-.TH "SYSTEMD\-CAT" "1" "" "systemd 214" "systemd-cat"
+.TH "SYSTEMD\-CAT" "1" "" "systemd 215" "systemd-cat"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-cat"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cat — Connect a pipeline or program's output with the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-cat [OPTIONS...] [COMMAND] [ARGUMENTS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">systemd-cat [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214192899024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-cat</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-cat"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cat — Connect a pipeline or program's output with the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-cat [OPTIONS...] [COMMAND] [ARGUMENTS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">systemd-cat [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214173873072"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-cat</strong></span> may be used to
connect the standard input and output of a process to the
journal, or as a filter tool in a shell pipeline to
pass the output the previous pipeline element
everything it reads from standard input (stdin) to the journal.</p><p>If parameters are passed, they are executed as
command line with standard output (stdout) and standard
error output (stderr) connected to the journal, so
- that all it writes is stored in the journal.</p></div><div class="refsect1"><a name="idm214192895184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ that all it writes is stored in the journal.</p></div><div class="refsect1"><a name="idm214173943168"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--identifier=</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Specify a short string
that is used to identify the logging
tool. If not specified, no identification
("<code class="literal">notice</code>"), and
similar for the other priority
levels. Takes a boolean
- argument.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196772960"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214196771776"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214196771104"></a><p class="title"><b>Example 1. Invoke a program</b></p><div class="example-contents"><p>This calls <code class="filename">/bin/ls</code>
+ argument.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173999760"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214173998576"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="example"><a name="idm214173997904"></a><p class="title"><b>Example 1. Invoke a program</b></p><div class="example-contents"><p>This calls <code class="filename">/bin/ls</code>
with standard output and error connected to the
- journal:</p><pre class="programlisting"># systemd-cat ls</pre></div></div><br class="example-break"><div class="example"><a name="idm214196760640"></a><p class="title"><b>Example 2. Usage in a shell pipeline</b></p><div class="example-contents"><p>This builds a shell pipeline also
+ journal:</p><pre class="programlisting"># systemd-cat ls</pre></div></div><br class="example-break"><div class="example"><a name="idm214173994912"></a><p class="title"><b>Example 2. Usage in a shell pipeline</b></p><div class="example-contents"><p>This builds a shell pipeline also
invoking <code class="filename">/bin/ls</code> and
writes the output it generates to the
journal:</p><pre class="programlisting"># ls | systemd-cat</pre></div></div><br class="example-break"><p>Even though the two examples have very similar
effects the first is preferable since only one process
is running at a time, and both stdout and stderr are
captured while in the second example, only stdout is
- captured.</p></div><div class="refsect1"><a name="idm214196757136"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ captured.</p></div><div class="refsect1"><a name="idm214173991408"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="logger.html"><span class="citerefentry"><span class="refentrytitle">logger</span>(1)</span></a>
'\" t
-.TH "SYSTEMD\-CGLS" "1" "" "systemd 214" "systemd-cgls"
+.TH "SYSTEMD\-CGLS" "1" "" "systemd 215" "systemd-cgls"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-cgls"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cgls — Recursively show control group contents</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-cgls</code> [OPTIONS...] [CGROUP...]</p></div></div><div class="refsect1"><a name="idm214170640048"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-cgls</strong></span> recursively
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-cgls"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cgls — Recursively show control group contents</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-cgls</code> [OPTIONS...] [CGROUP...]</p></div></div><div class="refsect1"><a name="idm214184118624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-cgls</strong></span> recursively
shows the contents of the selected Linux control group
hierarchy in a tree. If arguments are specified, shows
all member processes of the specified control groups
of the control group the working directory refers
to. Otherwise, the full systemd control group hierarchy
is shown.</p><p>By default, empty control groups are not
- shown.</p></div><div class="refsect1"><a name="idm214170636416"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--all"><span class="term"><code class="option">--all</code></span><a class="headerlink" title="Permalink to this term" href="#--all">¶</a></dt><dd><p>Do not hide empty
+ shown.</p></div><div class="refsect1"><a name="idm214187929552"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--all"><span class="term"><code class="option">--all</code></span><a class="headerlink" title="Permalink to this term" href="#--all">¶</a></dt><dd><p>Do not hide empty
control groups in the
output.</p></dd><dt id="-l"><span class="term"><code class="option">-l</code>, </span><span class="term"><code class="option">--full</code></span><a class="headerlink" title="Permalink to this term" href="#-l">¶</a></dt><dd><p>Do not ellipsize
process tree members.</p></dd><dt id="-k"><span class="term"><code class="option">-k</code></span><a class="headerlink" title="Permalink to this term" href="#-k">¶</a></dt><dd><p>Include kernel
the part corresponding to the
container <em class="replaceable"><code>MACHINE</code></em>.
</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174521488"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214174520304"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187869968"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214187868784"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD\-CGTOP" "1" "" "systemd 214" "systemd-cgtop"
+.TH "SYSTEMD\-CGTOP" "1" "" "systemd 215" "systemd-cgtop"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-cgtop"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cgtop — Show top control groups by their resource usage</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-cgtop</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214198637328"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-cgtop</strong></span> shows the top
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-cgtop"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cgtop — Show top control groups by their resource usage</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-cgtop</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214195806768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-cgtop</strong></span> shows the top
control groups of the local Linux control group
hierarchy, ordered by their CPU, memory, or disk I/O load. The
display is refreshed in regular intervals (by default
the services in question, no resource accounting will
be available for system services and the data shown by
<span class="command"><strong>systemd-cgtop</strong></span> will be
- incomplete.</p></div><div class="refsect1"><a name="idm214198625184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-p"><span class="term"><code class="option">-p</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Order by control group
+ incomplete.</p></div><div class="refsect1"><a name="idm214199989184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-p"><span class="term"><code class="option">-p</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Order by control group
path name.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Order by number of
tasks in control
group (i.e. threads and processes).</p></dd><dt id="-c"><span class="term"><code class="option">-c</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p>Order by CPU load.</p></dd><dt id="-m"><span class="term"><code class="option">-m</code></span><a class="headerlink" title="Permalink to this term" href="#-m">¶</a></dt><dd><p>Order by memory usage.</p></dd><dt id="-i"><span class="term"><code class="option">-i</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p>Order by disk I/O load.</p></dd><dt id="-b"><span class="term"><code class="option">-b</code>, </span><span class="term"><code class="option">--batch</code></span><a class="headerlink" title="Permalink to this term" href="#-b">¶</a></dt><dd><p>Run in "batch" mode:
only the first level of control groups
is monitored, and so on. Defaults to
3.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214202491696"></a><h2 id="Keys">Keys<a class="headerlink" title="Permalink to this headline" href="#Keys">¶</a></h2><p><span class="command"><strong>systemd-cgtop</strong></span> is an
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200041872"></a><h2 id="Keys">Keys<a class="headerlink" title="Permalink to this headline" href="#Keys">¶</a></h2><p><span class="command"><strong>systemd-cgtop</strong></span> is an
interactive tool and may be controlled via user input
using the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="h"><span class="term">h</span><a class="headerlink" title="Permalink to this term" href="#h">¶</a></dt><dd><p>Shows a short help text.</p></dd><dt id="SPACE"><span class="term">SPACE</span><a class="headerlink" title="Permalink to this term" href="#SPACE">¶</a></dt><dd><p>Immediately refresh output.</p></dd><dt id="q"><span class="term">q</span><a class="headerlink" title="Permalink to this term" href="#q">¶</a></dt><dd><p>Terminate the program.</p></dd><dt id="p"><span class="term">p, </span><span class="term">t, </span><span class="term">c, </span><span class="term">m, </span><span class="term">i</span><a class="headerlink" title="Permalink to this term" href="#p">¶</a></dt><dd><p>Sort the control groups
by path, number of tasks, CPU load,
load, respectively.</p></dd><dt id="%"><span class="term">%</span><a class="headerlink" title="Permalink to this term" href="#%">¶</a></dt><dd><p>Toggle between showing CPU time as
time or percentage.</p></dd><dt id="+"><span class="term">+, </span><span class="term">-</span><a class="headerlink" title="Permalink to this term" href="#+">¶</a></dt><dd><p>Increase
or decrease refresh
- delay, respectively.</p></dd></dl></div></div><div class="refsect1"><a name="idm214202479104"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214202477920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ delay, respectively.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200022192"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214200021008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>,
+++ /dev/null
-'\" t
-.TH "SYSTEMD\-COREDUMPCTL" "1" "" "systemd 214" "systemd-coredumpctl"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-systemd-coredumpctl \- Retrieve coredumps from the journal
-.SH "SYNOPSIS"
-.HP \w'\fBsystemd\-coredumpctl\fR\ 'u
-\fBsystemd\-coredumpctl\fR [OPTIONS...] {COMMAND} [PID|COMM|EXE|MATCH...]
-.SH "DESCRIPTION"
-.PP
-\fBsystemd\-coredumpctl\fR
-may be used to retrieve coredumps from
-\fBsystemd-journald\fR(8)\&.
-.SH "OPTIONS"
-.PP
-The following options are understood:
-.PP
-\fB\-F\fR, \fB\-\-field=\fR
-.RS 4
-Print all possible data values the specified field takes in matching coredump entries of the journal\&.
-.RE
-.PP
-\fB\-o\fR, \fB\-\-output=FILE\fR
-.RS 4
-Write the core to
-\fBFILE\fR\&.
-.RE
-.PP
-\fB\-\-no\-legend\fR
-.RS 4
-Do not print the column headers\&.
-.RE
-.PP
-\fB\-h\fR, \fB\-\-help\fR
-.RS 4
-Print a short help text and exit\&.
-.RE
-.PP
-\fB\-\-version\fR
-.RS 4
-Print a short version string and exit\&.
-.RE
-.PP
-\fB\-\-no\-pager\fR
-.RS 4
-Do not pipe output into a pager\&.
-.RE
-.PP
-The following commands are understood:
-.PP
-\fBlist\fR
-.RS 4
-List coredumps captured in the journal matching specified characteristics\&.
-.RE
-.PP
-\fBdump\fR
-.RS 4
-Extract the last coredump matching specified characteristics\&. The coredump will be written on standard output, unless an output file is specified with
-\fB\-o/\-\-output\fR\&.
-.RE
-.PP
-\fBgdb\fR
-.RS 4
-Invoke the GNU debugger on the last coredump matching specified characteristics\&.
-.RE
-.SH "MATCHING"
-.PP
-Match can be:
-.PP
-\fIPID\fR
-.RS 4
-Process ID of the process that dumped core\&. An integer\&.
-.RE
-.PP
-\fICOMM\fR
-.RS 4
-Name of the executable (matches
-\fBCOREDUMP_COMM=\fR)\&. Must not contain slashes\&.
-.RE
-.PP
-\fIEXE\fR
-.RS 4
-Path to the executable (matches
-\fBCOREDUMP_EXE=\fR)\&. Must contain at least one slash\&.
-.RE
-.PP
-\fIMATCH\fR
-.RS 4
-General journalctl predicates (see
-\fBjournalctl\fR(1))\&. Must contain an equals sign\&.
-.RE
-.SH "EXIT STATUS"
-.PP
-On success, 0 is returned; otherwise, a non\-zero failure code is returned\&. Not finding any matching coredumps is treated as failure\&.
-.SH "SEE ALSO"
-.PP
-\fBsystemd-journald.service\fR(8),
-\fBgdb\fR(1)
+++ /dev/null
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-coredumpctl</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
- a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
- visibility: hidden;
- }
-
- a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
- }
-
- h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
- visibility: visible;
- }
- </style><a href="index.html">Index </a>·
- <a href="systemd.directives.html">Directives </a>·
- <a href="../python-systemd/index.html">Python </a>·
- <a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-coredumpctl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-coredumpctl — Retrieve coredumps from the journal</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-coredumpctl</code> [OPTIONS...] {COMMAND} [PID|COMM|EXE|MATCH...]</p></div></div><div class="refsect1"><a name="idm214170585728"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-coredumpctl</strong></span> may be used to
- retrieve coredumps from
- <a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214170583184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-F"><span class="term"><code class="option">-F</code>, </span><span class="term"><code class="option">--field=</code></span><a class="headerlink" title="Permalink to this term" href="#-F">¶</a></dt><dd><p>Print all possible
- data values the specified field
- takes in matching coredump entries of the
- journal.</p></dd><dt id="-o"><span class="term"><code class="option">-o</code>, </span><span class="term"><code class="option">--output=FILE</code></span><a class="headerlink" title="Permalink to this term" href="#-o">¶</a></dt><dd><p>Write the core to
- <code class="option">FILE</code>.</p></dd><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p>Do not print the column headers.
- </p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="list"><span class="term"><span class="command"><strong>list</strong></span></span><a class="headerlink" title="Permalink to this term" href="#list">¶</a></dt><dd><p>List coredumps captured in the journal
- matching specified characteristics.</p></dd><dt id="dump"><span class="term"><span class="command"><strong>dump</strong></span></span><a class="headerlink" title="Permalink to this term" href="#dump">¶</a></dt><dd><p>Extract the last coredump
- matching specified characteristics.
- The coredump will be written on standard output,
- unless an output file is specified with
- <code class="option">-o/--output</code>.
- </p></dd><dt id="gdb"><span class="term"><span class="command"><strong>gdb</strong></span></span><a class="headerlink" title="Permalink to this term" href="#gdb">¶</a></dt><dd><p>Invoke the GNU
- debugger on the last coredump matching
- specified characteristics.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214170684464"></a><h2 id="Matching">Matching<a class="headerlink" title="Permalink to this headline" href="#Matching">¶</a></h2><p>Match can be:</p><div class="variablelist"><dl class="variablelist"><dt id="PID"><span class="term"><em class="replaceable"><code>PID</code></em></span><a class="headerlink" title="Permalink to this term" href="#PID">¶</a></dt><dd><p>Process ID of the
- process that dumped
- core. An integer.</p></dd><dt id="COMM"><span class="term"><em class="replaceable"><code>COMM</code></em></span><a class="headerlink" title="Permalink to this term" href="#COMM">¶</a></dt><dd><p>Name of the executable
- (matches <code class="option">COREDUMP_COMM=</code>).
- Must not contain slashes.
- </p></dd><dt id="EXE"><span class="term"><em class="replaceable"><code>EXE</code></em></span><a class="headerlink" title="Permalink to this term" href="#EXE">¶</a></dt><dd><p>Path to the executable
- (matches <code class="option">COREDUMP_EXE=</code>).
- Must contain at least one slash.
- </p></dd><dt id="MATCH"><span class="term"><em class="replaceable"><code>MATCH</code></em></span><a class="headerlink" title="Permalink to this term" href="#MATCH">¶</a></dt><dd><p>General journalctl predicates
- (see <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>).
- Must contain an equals sign.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214170675024"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned; otherwise, a non-zero failure
- code is returned. Not finding any matching coredumps is treated
- as failure.
- </p></div><div class="refsect1"><a name="idm214170673648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
- <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
- <a href="gdb.html"><span class="citerefentry"><span class="refentrytitle">gdb</span>(1)</span></a>
- </p></div></div></body></html>
+++ /dev/null
-<?xml version='1.0'?> <!--*-nxml-*-->
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<!--
- This file is part of systemd.
-
- Copyright 2012 Zbigniew Jędrzejewski-Szmek
-
- systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- systemd is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
--->
-
-<refentry id="systemd-coredumpctl" conditional='ENABLE_COREDUMP'
- xmlns:xi="http://www.w3.org/2001/XInclude">
-
- <refentryinfo>
- <title>systemd-coredumpctl</title>
- <productname>systemd</productname>
-
- <authorgroup>
- <author>
- <contrib>Developer</contrib>
- <firstname>Zbigniew</firstname>
- <surname>Jędrzejewski-Szmek</surname>
- <email>zbyszek@in.waw.pl</email>
- </author>
- </authorgroup>
- </refentryinfo>
-
- <refmeta>
- <refentrytitle>systemd-coredumpctl</refentrytitle>
- <manvolnum>1</manvolnum>
- </refmeta>
-
- <refnamediv>
- <refname>systemd-coredumpctl</refname>
- <refpurpose>Retrieve coredumps from the journal</refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>systemd-coredumpctl</command>
- <arg choice="opt" rep="repeat">OPTIONS</arg>
- <arg choice="req">COMMAND</arg>
- <arg choice="opt" rep="repeat">PID|COMM|EXE|MATCH</arg>
- </cmdsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>Description</title>
-
- <para><command>systemd-coredumpctl</command> may be used to
- retrieve coredumps from
- <citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
- </refsect1>
-
- <refsect1>
- <title>Options</title>
-
- <para>The following options are understood:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-F</option></term>
- <term><option>--field=</option></term>
-
- <listitem><para>Print all possible
- data values the specified field
- takes in matching coredump entries of the
- journal.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-o</option></term>
- <term><option>--output=FILE</option></term>
-
- <listitem><para>Write the core to
- <option>FILE</option>.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--no-legend</option></term>
-
- <listitem><para>Do not print the column headers.
- </para></listitem>
- </varlistentry>
-
- <xi:include href="standard-options.xml" xpointer="help" />
- <xi:include href="standard-options.xml" xpointer="version" />
- <xi:include href="standard-options.xml" xpointer="no-pager" />
- </variablelist>
-
- <para>The following commands are understood:</para>
-
- <variablelist>
- <varlistentry>
- <term><command>list</command></term>
-
- <listitem><para>List coredumps captured in the journal
- matching specified characteristics.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>dump</command></term>
-
- <listitem><para>Extract the last coredump
- matching specified characteristics.
- The coredump will be written on standard output,
- unless an output file is specified with
- <option>-o/--output</option>.
- </para></listitem>
- </varlistentry>
-
-
- <varlistentry>
- <term><command>gdb</command></term>
-
- <listitem><para>Invoke the GNU
- debugger on the last coredump matching
- specified characteristics.
- </para></listitem>
- </varlistentry>
-
- </variablelist>
-
- </refsect1>
-
- <refsect1>
- <title>Matching</title>
-
- <para>Match can be:</para>
-
- <variablelist>
- <varlistentry>
- <term><replaceable>PID</replaceable></term>
-
- <listitem><para>Process ID of the
- process that dumped
- core. An integer.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>COMM</replaceable></term>
-
- <listitem><para>Name of the executable
- (matches <option>COREDUMP_COMM=</option>).
- Must not contain slashes.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>EXE</replaceable></term>
-
- <listitem><para>Path to the executable
- (matches <option>COREDUMP_EXE=</option>).
- Must contain at least one slash.
- </para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>MATCH</replaceable></term>
-
- <listitem><para>General journalctl predicates
- (see <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
- Must contain an equals sign.
- </para></listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
-
- <refsect1>
- <title>Exit status</title>
- <para>On success, 0 is returned; otherwise, a non-zero failure
- code is returned. Not finding any matching coredumps is treated
- as failure.
- </para>
- </refsect1>
-
- <refsect1>
- <title>See Also</title>
- <para>
- <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- </para>
- </refsect1>
-
-</refentry>
'\" t
-.TH "SYSTEMD\-CRYPTSETUP\-GENERATOR" "8" "" "systemd 214" "systemd-cryptsetup-generator"
+.TH "SYSTEMD\-CRYPTSETUP\-GENERATOR" "8" "" "systemd 215" "systemd-cryptsetup-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-cryptsetup-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cryptsetup-generator — Unit generator for <code class="filename">/etc/crypttab</code></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</code></p></div><div class="refsect1"><a name="idm214181276000"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-cryptsetup-generator</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-cryptsetup-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cryptsetup-generator — Unit generator for <code class="filename">/etc/crypttab</code></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</code></p></div><div class="refsect1"><a name="idm214192676864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-cryptsetup-generator</code>
is a generator that translates
<code class="filename">/etc/crypttab</code> into native systemd
units early at boot and when configuration of the
<a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a>
units as necessary.</p><p><code class="filename">systemd-cryptsetup-generator</code>
implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators" target="_top">generator
- specification</a>.</p></div><div class="refsect1"><a name="idm214181656544"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-cryptsetup-generator</code> understands
+ specification</a>.</p></div><div class="refsect1"><a name="idm214192674672"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-cryptsetup-generator</code> understands
the following kernel command line parameters:</p><div class="variablelist"><dl class="variablelist"><dt id="luks="><span class="term"><code class="varname">luks=</code>, </span><span class="term"><code class="varname">rd.luks=</code></span><a class="headerlink" title="Permalink to this term" href="#luks=">¶</a></dt><dd><p>Takes a boolean
argument. Defaults to
"<code class="literal">yes</code>". If
(initrd) while
<code class="varname">luks.key=</code> is
honored by both the main system and
- the initrd.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182005056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ the initrd.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192788848"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>,
<a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-cryptsetup@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cryptsetup@.service, systemd-cryptsetup — Full disk decryption logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-cryptsetup@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-cryptsetup</code></p></div><div class="refsect1"><a name="idm214169779760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-cryptsetup@.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-cryptsetup@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cryptsetup@.service, systemd-cryptsetup — Full disk decryption logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-cryptsetup@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-cryptsetup</code></p></div><div class="refsect1"><a name="idm214177258816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-cryptsetup@.service</code>
is a service responsible for setting up encrypted
block devices. It is instantiated for each device that
requires decryption for access.</p><p><code class="filename">systemd-cryptsetup@.service</code>
<code class="filename">/etc/crypttab</code> is translated into
<code class="filename">systemd-cryptsetup@.service</code> units
by
- <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214169930304"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214173494288"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>,
<a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-CRYPTSETUP@\&.SERVICE" "8" "" "systemd 214" "systemd-cryptsetup@.service"
+.TH "SYSTEMD\-CRYPTSETUP@\&.SERVICE" "8" "" "systemd 215" "systemd-cryptsetup@.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-cryptsetup@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cryptsetup@.service, systemd-cryptsetup — Full disk decryption logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-cryptsetup@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-cryptsetup</code></p></div><div class="refsect1"><a name="idm214169779760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-cryptsetup@.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-cryptsetup@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-cryptsetup@.service, systemd-cryptsetup — Full disk decryption logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-cryptsetup@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-cryptsetup</code></p></div><div class="refsect1"><a name="idm214177258816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-cryptsetup@.service</code>
is a service responsible for setting up encrypted
block devices. It is instantiated for each device that
requires decryption for access.</p><p><code class="filename">systemd-cryptsetup@.service</code>
<code class="filename">/etc/crypttab</code> is translated into
<code class="filename">systemd-cryptsetup@.service</code> units
by
- <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214169930304"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214173494288"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>,
<a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>,
--- /dev/null
+'\" t
+.TH "SYSTEMD\-DEBUG\-GENERATOR" "8" "" "systemd 215" "systemd-debug-generator"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+systemd-debug-generator \- Generator for enabling a runtime debug shell and masking specific units at boot
+.SH "SYNOPSIS"
+.PP
+/usr/lib/systemd/system\-generators/systemd\-debug\-generator
+.SH "DESCRIPTION"
+.PP
+systemd\-debug\-generator
+is a generator that reads the kernel command line and understands three options:
+.PP
+If the
+\fBsystemd\&.mask=\fR
+option is specified and followed by a unit name, this unit is masked for the runtime, similar to the effect of
+\fBsystemctl\fR(1)\*(Aqs
+\fBmask\fR
+command\&. This is useful to boot with certain units removed from the initial boot transaction for debugging system startup\&. May be specified more than once\&.
+.PP
+If the
+\fBsystemd\&.wants=\fR
+option is specified and followed by a unit name, a start job for this unit is added to the initial transaction\&. This is useful to start one ore more additional units at boot\&. May be specified more than once\&.
+.PP
+If the
+\fBsystemd\&.debug\-shell\fR
+option is specified, the debug shell service
+"debug\-shell\&.service"
+is pulled into the boot transaction\&. It will spawn a debug shell on tty9 during early system startup\&. Note that the shell may also be turned on persistently by enabling it with
+\fBsystemctl\fR(1)\*(Aqs
+\fBenable\fR
+command\&.
+.PP
+systemd\-debug\-generator
+implements the
+\m[blue]\fBgenerator specification\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBsystemctl\fR(1),
+\fBkernel-command-line\fR(7)
+.SH "NOTES"
+.IP " 1." 4
+generator specification
+.RS 4
+\%http://www.freedesktop.org/wiki/Software/systemd/Generators
+.RE
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-debug-generator</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-debug-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-debug-generator — Generator for enabling a runtime debug shell and masking specific units at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-debug-generator</code></p></div><div class="refsect1"><a name="idm214183945248"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-debug-generator</code> is
+ a generator that reads the kernel command line and
+ understands three options:</p><p>If the <code class="option">systemd.mask=</code> option is
+ specified and followed by a unit name, this unit is
+ masked for the runtime, similar to the effect of
+ <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>'s
+ <span class="command"><strong>mask</strong></span> command. This is useful to
+ boot with certain units removed from the initial boot
+ transaction for debugging system startup. May be
+ specified more than once.</p><p>If the <code class="option">systemd.wants=</code> option is
+ specified and followed by a unit name, a start job for
+ this unit is added to the initial transaction. This is
+ useful to start one ore more additional units at
+ boot. May be specified more than once.</p><p>If the <code class="option">systemd.debug-shell</code>
+ option is specified, the debug shell service
+ "<code class="literal">debug-shell.service</code>" is pulled into
+ the boot transaction. It will spawn a debug shell on
+ tty9 during early system startup. Note that the shell
+ may also be turned on persistently by enabling it with
+ <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>'s
+ <span class="command"><strong>enable</strong></span> command.</p><p><code class="filename">systemd-debug-generator</code>
+ implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators" target="_top">generator
+ specification</a>.</p></div><div class="refsect1"><a name="idm214187199856"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
+ <a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version="1.0"?>
+<!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+<refentry id="systemd-debug-generator">
+
+ <refentryinfo>
+ <title>systemd-debug-generator</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd-debug-generator</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd-debug-generator</refname>
+ <refpurpose>Generator for enabling a runtime debug shell and masking specific units at boot</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>/usr/lib/systemd/system-generators/systemd-debug-generator</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><filename>systemd-debug-generator</filename> is
+ a generator that reads the kernel command line and
+ understands three options:</para>
+
+ <para>If the <option>systemd.mask=</option> option is
+ specified and followed by a unit name, this unit is
+ masked for the runtime, similar to the effect of
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
+ <command>mask</command> command. This is useful to
+ boot with certain units removed from the initial boot
+ transaction for debugging system startup. May be
+ specified more than once.</para>
+
+ <para>If the <option>systemd.wants=</option> option is
+ specified and followed by a unit name, a start job for
+ this unit is added to the initial transaction. This is
+ useful to start one ore more additional units at
+ boot. May be specified more than once.</para>
+
+ <para>If the <option>systemd.debug-shell</option>
+ option is specified, the debug shell service
+ <literal>debug-shell.service</literal> is pulled into
+ the boot transaction. It will spawn a debug shell on
+ tty9 during early system startup. Note that the shell
+ may also be turned on persistently by enabling it with
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
+ <command>enable</command> command.</para>
+
+ <para><filename>systemd-debug-generator</filename>
+ implements the <ulink
+ url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
+ specification</ulink>.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
'\" t
-.TH "SYSTEMD\-DELTA" "1" "" "systemd 214" "systemd-delta"
+.TH "SYSTEMD\-DELTA" "1" "" "systemd 215" "systemd-delta"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-delta"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-delta — Find overridden configuration files</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-delta</code> [OPTIONS...] [<em class="replaceable"><code>PREFIX</code></em>[<span class="optional">/<em class="replaceable"><code>SUFFIX</code></em></span>]|<em class="replaceable"><code>SUFFIX</code></em>...]</p></div></div><div class="refsect1"><a name="idm214169442352"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-delta</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-delta"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-delta — Find overridden configuration files</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-delta</code> [OPTIONS...] [<em class="replaceable"><code>PREFIX</code></em>[<span class="optional">/<em class="replaceable"><code>SUFFIX</code></em></span>]|<em class="replaceable"><code>SUFFIX</code></em>...]</p></div></div><div class="refsect1"><a name="idm214187729312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-delta</strong></span> may be used to
identify and compare configuration files that override
other configuration files. Files in
<code class="filename">/etc</code> have highest priority, files
all configuration files will be analyzed. If the
commandline argument is not given at all, all
configuration files will be analyzed. See below for
- some examples.</p></div><div class="refsect1"><a name="idm214168463456"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--type=</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>When listing the
+ some examples.</p></div><div class="refsect1"><a name="idm214191606976"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--type=</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>When listing the
differences, only list those that are
asked for. The list itself is a
comma-separated list of desired
diff as well. This option takes a
boolean argument. If omitted, it defaults
to <code class="option">true</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172345232"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>To see all local configuration:</p><pre class="programlisting">systemd-delta</pre><p>To see all runtime configuration:</p><pre class="programlisting">systemd-delta /run</pre><p>To see all system unit configuration changes:</p><pre class="programlisting">systemd-delta systemd/system</pre><p>To see all runtime "drop-in" changes for system units:</p><pre class="programlisting">systemd-delta --type=extended /run/systemd/system</pre></div><div class="refsect1"><a name="idm214172340064"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214172338880"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191664528"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>To see all local configuration:</p><pre class="programlisting">systemd-delta</pre><p>To see all runtime configuration:</p><pre class="programlisting">systemd-delta /run</pre><p>To see all system unit configuration changes:</p><pre class="programlisting">systemd-delta systemd/system</pre><p>To see all runtime "drop-in" changes for system units:</p><pre class="programlisting">systemd-delta --type=extended /run/systemd/system</pre></div><div class="refsect1"><a name="idm214191659360"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214191658176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-DETECT\-VIRT" "1" "" "systemd 214" "systemd-detect-virt"
+.TH "SYSTEMD\-DETECT\-VIRT" "1" "" "systemd 215" "systemd-detect-virt"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-detect-virt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-detect-virt — Detect execution in a virtualized environment</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-detect-virt [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214180312864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-detect-virt</strong></span> detects
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-detect-virt"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-detect-virt — Detect execution in a virtualized environment</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-detect-virt [OPTIONS...]</code> </p></div></div><div class="refsect1"><a name="idm214176292544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-detect-virt</strong></span> detects
execution in a virtualized environment. It identifies
the virtualization technology and can distinguish full
VM virtualization from container
means if both VM virtualization and container
virtualization are used in conjunction, only the latter
will be identified (unless <code class="option">--vm</code> is
- passed).</p></div><div class="refsect1"><a name="idm214180308016"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-c"><span class="term"><code class="option">-c</code>, </span><span class="term"><code class="option">--container</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p>Only detects container
+ passed).</p></div><div class="refsect1"><a name="idm214180477776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-c"><span class="term"><code class="option">-c</code>, </span><span class="term"><code class="option">--container</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p>Only detects container
virtualization (i.e. shared kernel
virtualization).</p></dd><dt id="-v"><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--vm</code></span><a class="headerlink" title="Permalink to this term" href="#-v">¶</a></dt><dd><p>Only detects VM
virtualization (i.e. full hardware
virtualization).</p></dd><dt id="-q"><span class="term"><code class="option">-q</code>, </span><span class="term"><code class="option">--quiet</code></span><a class="headerlink" title="Permalink to this term" href="#-q">¶</a></dt><dd><p>Suppress output of the
virtualization technology
identifier.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180298304"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>If a virtualization technology is detected, 0 is
- returned, a non-zero code otherwise.</p></div><div class="refsect1"><a name="idm214180297008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180374080"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>If a virtualization technology is detected, 0 is
+ returned, a non-zero code otherwise.</p></div><div class="refsect1"><a name="idm214180372784"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-EFI\-BOOT\-GENERATOR" "8" "" "systemd 214" "systemd-efi-boot-generator"
+.TH "SYSTEMD\-EFI\-BOOT\-GENERATOR" "8" "" "systemd 215" "systemd-efi-boot-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-efi-boot-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-efi-boot-generator — Generator for automatically mounting the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-efi-boot-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-efi-boot-generator — Generator for automatically mounting the
EFI System Partition used by the current boot to
- <code class="filename">/boot</code></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-efi-boot-generator</code></p></div><div class="refsect1"><a name="idm214192877216"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-efi-boot-generator</code>
+ <code class="filename">/boot</code></p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-efi-boot-generator</code></p></div><div class="refsect1"><a name="idm214175786880"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-efi-boot-generator</code>
is a generator that automatically creates mount and
automount units for the EFI System Partition (ESP),
mounting it to <code class="filename">/boot</code>. Note that
automount unit, the mount will only be activated
on-demand, when accessed.</p><p><code class="filename">systemd-efi-boot-generator</code>
implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators" target="_top">generator
- specification</a>.</p></div><div class="refsect1"><a name="idm214196228176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ specification</a>.</p></div><div class="refsect1"><a name="idm214178650096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>,
<a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-fsck@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fsck@.service, systemd-fsck-root.service, systemd-fsck — File system checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-fsck@.service</code></p><p><code class="filename">systemd-fsck-root.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-fsck</code></p></div><div class="refsect1"><a name="idm214189485840"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fsck@.service</code> is a
- service responsible for file system checks. It is
- instantiated for each device that requires a file
- system
- check. <code class="filename">systemd-fsck-root.service</code> is
- responsible for file system checks on the root
- file system. The root file system check is performed
- before the other file systems. Either service is enabled
- at boot if passno in <code class="filename">/etc/fstab</code> for
- the file system is set to a value greater than zero.</p><p><code class="filename">systemd-fsck</code> will
- forward file system checking progress to the
- console. If a file system check fails, emergency mode
- is activated, by isolating to
- <code class="filename">emergency.target</code>.</p></div><div class="refsect1"><a name="idm214193594368"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fsck</code> understands
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-fsck@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fsck@.service, systemd-fsck-root.service, systemd-fsck — File system checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-fsck@.service</code></p><p><code class="filename">systemd-fsck-root.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-fsck</code></p></div><div class="refsect1"><a name="idm214190706880"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fsck@.service</code> and
+ <code class="filename">systemd-fsck-root.service</code> are
+ services responsible for file system checks. They are
+ instantiated for each device that is configured for
+ file system checking.
+ <code class="filename">systemd-fsck-root.service</code> is
+ responsible for file system checks on the root file
+ system, but in only if the root filesystem wasn't
+ checked in the initramfs.
+ <code class="filename">systemd-fsck@.service</code> is used for
+ all other file systems and for the root file system in
+ the initramfs.</p><p>Those services are started at boot if
+ <code class="option">passno</code> in
+ <code class="filename">/etc/fstab</code> for the file system is
+ set to a value greater than zero. The file system
+ check for root is performed before the other file
+ systems. Other file systems may be checked in
+ parallel, except when they are one the same rotating
+ disk.</p><p><code class="filename">systemd-fsck</code> does not know
+ any details about specific filesystems, and simply
+ executes file system checkers specific to each
+ filesystem type (<code class="filename">/sbin/fsck.*</code>).
+ This helper will decide if the filesystem should
+ actually be checked based on the time since last
+ check, number of mounts, unclean unmount, etc.</p><p><code class="filename">systemd-fsck</code> will forward
+ file system checking progress to the console. If a
+ file system check fails for a service without
+ <code class="option">nofail</code>, emergency mode is activated,
+ by isolating to
+ <code class="filename">emergency.target</code>.</p></div><div class="refsect1"><a name="idm214194586864"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fsck</code> understands
one kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p>One of
"<code class="literal">auto</code>",
"<code class="literal">force</code>",
</code>" will answer yes to all questions by
fsck and "<code class="literal">no</code>" will answer no to
all questions.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214189795280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214194648592"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="fsck.html"><span class="citerefentry"><span class="refentrytitle">fsck</span>(8)</span></a>,
- <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>
+ <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>,
+ <a href="fsck.btrfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.btrfs</span>(8)</span></a>,
+ <a href="fsck.cramfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.cramfs</span>(8)</span></a>,
+ <a href="fsck.ext4.html"><span class="citerefentry"><span class="refentrytitle">fsck.ext4</span>(8)</span></a>,
+ <a href="fsck.fat.html"><span class="citerefentry"><span class="refentrytitle">fsck.fat</span>(8)</span></a>,
+ <a href="fsck.hfsplus.html"><span class="citerefentry"><span class="refentrytitle">fsck.hfsplus</span>(8)</span></a>,
+ <a href="fsck.minix.html"><span class="citerefentry"><span class="refentrytitle">fsck.minix</span>(8)</span></a>,
+ <a href="fsck.ntfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.ntfs</span>(8)</span></a>,
+ <a href="fsck.xfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.xfs</span>(8)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-fsck@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fsck@.service, systemd-fsck-root.service, systemd-fsck — File system checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-fsck@.service</code></p><p><code class="filename">systemd-fsck-root.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-fsck</code></p></div><div class="refsect1"><a name="idm214189485840"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fsck@.service</code> is a
- service responsible for file system checks. It is
- instantiated for each device that requires a file
- system
- check. <code class="filename">systemd-fsck-root.service</code> is
- responsible for file system checks on the root
- file system. The root file system check is performed
- before the other file systems. Either service is enabled
- at boot if passno in <code class="filename">/etc/fstab</code> for
- the file system is set to a value greater than zero.</p><p><code class="filename">systemd-fsck</code> will
- forward file system checking progress to the
- console. If a file system check fails, emergency mode
- is activated, by isolating to
- <code class="filename">emergency.target</code>.</p></div><div class="refsect1"><a name="idm214193594368"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fsck</code> understands
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-fsck@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fsck@.service, systemd-fsck-root.service, systemd-fsck — File system checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-fsck@.service</code></p><p><code class="filename">systemd-fsck-root.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-fsck</code></p></div><div class="refsect1"><a name="idm214190706880"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fsck@.service</code> and
+ <code class="filename">systemd-fsck-root.service</code> are
+ services responsible for file system checks. They are
+ instantiated for each device that is configured for
+ file system checking.
+ <code class="filename">systemd-fsck-root.service</code> is
+ responsible for file system checks on the root file
+ system, but in only if the root filesystem wasn't
+ checked in the initramfs.
+ <code class="filename">systemd-fsck@.service</code> is used for
+ all other file systems and for the root file system in
+ the initramfs.</p><p>Those services are started at boot if
+ <code class="option">passno</code> in
+ <code class="filename">/etc/fstab</code> for the file system is
+ set to a value greater than zero. The file system
+ check for root is performed before the other file
+ systems. Other file systems may be checked in
+ parallel, except when they are one the same rotating
+ disk.</p><p><code class="filename">systemd-fsck</code> does not know
+ any details about specific filesystems, and simply
+ executes file system checkers specific to each
+ filesystem type (<code class="filename">/sbin/fsck.*</code>).
+ This helper will decide if the filesystem should
+ actually be checked based on the time since last
+ check, number of mounts, unclean unmount, etc.</p><p><code class="filename">systemd-fsck</code> will forward
+ file system checking progress to the console. If a
+ file system check fails for a service without
+ <code class="option">nofail</code>, emergency mode is activated,
+ by isolating to
+ <code class="filename">emergency.target</code>.</p></div><div class="refsect1"><a name="idm214194586864"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fsck</code> understands
one kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p>One of
"<code class="literal">auto</code>",
"<code class="literal">force</code>",
</code>" will answer yes to all questions by
fsck and "<code class="literal">no</code>" will answer no to
all questions.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214189795280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214194648592"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="fsck.html"><span class="citerefentry"><span class="refentrytitle">fsck</span>(8)</span></a>,
- <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>
+ <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>,
+ <a href="fsck.btrfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.btrfs</span>(8)</span></a>,
+ <a href="fsck.cramfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.cramfs</span>(8)</span></a>,
+ <a href="fsck.ext4.html"><span class="citerefentry"><span class="refentrytitle">fsck.ext4</span>(8)</span></a>,
+ <a href="fsck.fat.html"><span class="citerefentry"><span class="refentrytitle">fsck.fat</span>(8)</span></a>,
+ <a href="fsck.hfsplus.html"><span class="citerefentry"><span class="refentrytitle">fsck.hfsplus</span>(8)</span></a>,
+ <a href="fsck.minix.html"><span class="citerefentry"><span class="refentrytitle">fsck.minix</span>(8)</span></a>,
+ <a href="fsck.ntfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.ntfs</span>(8)</span></a>,
+ <a href="fsck.xfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.xfs</span>(8)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-FSCK@\&.SERVICE" "8" "" "systemd 214" "systemd-fsck@.service"
+.TH "SYSTEMD\-FSCK@\&.SERVICE" "8" "" "systemd 215" "systemd-fsck@.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.SH "DESCRIPTION"
.PP
systemd\-fsck@\&.service
-is a service responsible for file system checks\&. It is instantiated for each device that requires a file system check\&.
+and
systemd\-fsck\-root\&.service
-is responsible for file system checks on the root file system\&. The root file system check is performed before the other file systems\&. Either service is enabled at boot if passno in
+are services responsible for file system checks\&. They are instantiated for each device that is configured for file system checking\&.
+systemd\-fsck\-root\&.service
+is responsible for file system checks on the root file system, but in only if the root filesystem wasn\*(Aqt checked in the initramfs\&.
+systemd\-fsck@\&.service
+is used for all other file systems and for the root file system in the initramfs\&.
+.PP
+Those services are started at boot if
+\fBpassno\fR
+in
/etc/fstab
-for the file system is set to a value greater than zero\&.
+for the file system is set to a value greater than zero\&. The file system check for root is performed before the other file systems\&. Other file systems may be checked in parallel, except when they are one the same rotating disk\&.
+.PP
+systemd\-fsck
+does not know any details about specific filesystems, and simply executes file system checkers specific to each filesystem type (/sbin/fsck\&.*)\&. This helper will decide if the filesystem should actually be checked based on the time since last check, number of mounts, unclean unmount, etc\&.
.PP
systemd\-fsck
-will forward file system checking progress to the console\&. If a file system check fails, emergency mode is activated, by isolating to
+will forward file system checking progress to the console\&. If a file system check fails for a service without
+\fBnofail\fR, emergency mode is activated, by isolating to
emergency\&.target\&.
.SH "KERNEL COMMAND LINE"
.PP
.PP
\fBsystemd\fR(1),
\fBfsck\fR(8),
-\fBsystemd-quotacheck.service\fR(8)
+\fBsystemd-quotacheck.service\fR(8),
+\fBfsck.btrfs\fR(8),
+\fBfsck.cramfs\fR(8),
+\fBfsck.ext4\fR(8),
+\fBfsck.fat\fR(8),
+\fBfsck.hfsplus\fR(8),
+\fBfsck.minix\fR(8),
+\fBfsck.ntfs\fR(8),
+\fBfsck.xfs\fR(8)
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-fsck@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fsck@.service, systemd-fsck-root.service, systemd-fsck — File system checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-fsck@.service</code></p><p><code class="filename">systemd-fsck-root.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-fsck</code></p></div><div class="refsect1"><a name="idm214189485840"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fsck@.service</code> is a
- service responsible for file system checks. It is
- instantiated for each device that requires a file
- system
- check. <code class="filename">systemd-fsck-root.service</code> is
- responsible for file system checks on the root
- file system. The root file system check is performed
- before the other file systems. Either service is enabled
- at boot if passno in <code class="filename">/etc/fstab</code> for
- the file system is set to a value greater than zero.</p><p><code class="filename">systemd-fsck</code> will
- forward file system checking progress to the
- console. If a file system check fails, emergency mode
- is activated, by isolating to
- <code class="filename">emergency.target</code>.</p></div><div class="refsect1"><a name="idm214193594368"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fsck</code> understands
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-fsck@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fsck@.service, systemd-fsck-root.service, systemd-fsck — File system checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-fsck@.service</code></p><p><code class="filename">systemd-fsck-root.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-fsck</code></p></div><div class="refsect1"><a name="idm214190706880"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fsck@.service</code> and
+ <code class="filename">systemd-fsck-root.service</code> are
+ services responsible for file system checks. They are
+ instantiated for each device that is configured for
+ file system checking.
+ <code class="filename">systemd-fsck-root.service</code> is
+ responsible for file system checks on the root file
+ system, but in only if the root filesystem wasn't
+ checked in the initramfs.
+ <code class="filename">systemd-fsck@.service</code> is used for
+ all other file systems and for the root file system in
+ the initramfs.</p><p>Those services are started at boot if
+ <code class="option">passno</code> in
+ <code class="filename">/etc/fstab</code> for the file system is
+ set to a value greater than zero. The file system
+ check for root is performed before the other file
+ systems. Other file systems may be checked in
+ parallel, except when they are one the same rotating
+ disk.</p><p><code class="filename">systemd-fsck</code> does not know
+ any details about specific filesystems, and simply
+ executes file system checkers specific to each
+ filesystem type (<code class="filename">/sbin/fsck.*</code>).
+ This helper will decide if the filesystem should
+ actually be checked based on the time since last
+ check, number of mounts, unclean unmount, etc.</p><p><code class="filename">systemd-fsck</code> will forward
+ file system checking progress to the console. If a
+ file system check fails for a service without
+ <code class="option">nofail</code>, emergency mode is activated,
+ by isolating to
+ <code class="filename">emergency.target</code>.</p></div><div class="refsect1"><a name="idm214194586864"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fsck</code> understands
one kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p>One of
"<code class="literal">auto</code>",
"<code class="literal">force</code>",
</code>" will answer yes to all questions by
fsck and "<code class="literal">no</code>" will answer no to
all questions.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214189795280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214194648592"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="fsck.html"><span class="citerefentry"><span class="refentrytitle">fsck</span>(8)</span></a>,
- <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>
+ <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a>,
+ <a href="fsck.btrfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.btrfs</span>(8)</span></a>,
+ <a href="fsck.cramfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.cramfs</span>(8)</span></a>,
+ <a href="fsck.ext4.html"><span class="citerefentry"><span class="refentrytitle">fsck.ext4</span>(8)</span></a>,
+ <a href="fsck.fat.html"><span class="citerefentry"><span class="refentrytitle">fsck.fat</span>(8)</span></a>,
+ <a href="fsck.hfsplus.html"><span class="citerefentry"><span class="refentrytitle">fsck.hfsplus</span>(8)</span></a>,
+ <a href="fsck.minix.html"><span class="citerefentry"><span class="refentrytitle">fsck.minix</span>(8)</span></a>,
+ <a href="fsck.ntfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.ntfs</span>(8)</span></a>,
+ <a href="fsck.xfs.html"><span class="citerefentry"><span class="refentrytitle">fsck.xfs</span>(8)</span></a>
</p></div></div></body></html>
<refsect1>
<title>Description</title>
- <para><filename>systemd-fsck@.service</filename> is a
- service responsible for file system checks. It is
- instantiated for each device that requires a file
- system
- check. <filename>systemd-fsck-root.service</filename> is
- responsible for file system checks on the root
- file system. The root file system check is performed
- before the other file systems. Either service is enabled
- at boot if passno in <filename>/etc/fstab</filename> for
- the file system is set to a value greater than zero.</para>
-
- <para><filename>systemd-fsck</filename> will
- forward file system checking progress to the
- console. If a file system check fails, emergency mode
- is activated, by isolating to
+ <para><filename>systemd-fsck@.service</filename> and
+ <filename>systemd-fsck-root.service</filename> are
+ services responsible for file system checks. They are
+ instantiated for each device that is configured for
+ file system checking.
+ <filename>systemd-fsck-root.service</filename> is
+ responsible for file system checks on the root file
+ system, but in only if the root filesystem wasn't
+ checked in the initramfs.
+ <filename>systemd-fsck@.service</filename> is used for
+ all other file systems and for the root file system in
+ the initramfs.</para>
+
+ <para>Those services are started at boot if
+ <option>passno</option> in
+ <filename>/etc/fstab</filename> for the file system is
+ set to a value greater than zero. The file system
+ check for root is performed before the other file
+ systems. Other file systems may be checked in
+ parallel, except when they are one the same rotating
+ disk.</para>
+
+ <para><filename>systemd-fsck</filename> does not know
+ any details about specific filesystems, and simply
+ executes file system checkers specific to each
+ filesystem type (<filename>/sbin/fsck.*</filename>).
+ This helper will decide if the filesystem should
+ actually be checked based on the time since last
+ check, number of mounts, unclean unmount, etc.</para>
+
+ <para><filename>systemd-fsck</filename> will forward
+ file system checking progress to the console. If a
+ file system check fails for a service without
+ <option>nofail</option>, emergency mode is activated,
+ by isolating to
<filename>emergency.target</filename>.</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.cramfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.ext4</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.fat</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.hfsplus</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.minix</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.ntfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>fsck.xfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
'\" t
-.TH "SYSTEMD\-FSTAB\-GENERATOR" "8" "" "systemd 214" "systemd-fstab-generator"
+.TH "SYSTEMD\-FSTAB\-GENERATOR" "8" "" "systemd 215" "systemd-fstab-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-fstab-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fstab-generator — Unit generator for /etc/fstab</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-fstab-generator</code></p></div><div class="refsect1"><a name="idm214189604656"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fstab-generator</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-fstab-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-fstab-generator — Unit generator for /etc/fstab</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-fstab-generator</code></p></div><div class="refsect1"><a name="idm214184883232"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-fstab-generator</code> is
a generator that translates
<code class="filename">/etc/fstab</code> (see
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>
<code class="filename">/etc/fstab</code> mount options this
generator understands.</p><p><code class="filename">systemd-fstab-generator</code>
implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators" target="_top">generator
- specification</a>.</p></div><div class="refsect1"><a name="idm214193822704"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fstab-generator</code> understands
+ specification</a>.</p></div><div class="refsect1"><a name="idm214188139680"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-fstab-generator</code> understands
the following kernel command line parameters:</p><div class="variablelist"><dl class="variablelist"><dt id="fstab="><span class="term"><code class="varname">fstab=</code>, </span><span class="term"><code class="varname">rd.fstab=</code></span><a class="headerlink" title="Permalink to this term" href="#fstab=">¶</a></dt><dd><p>Takes a boolean
argument. Defaults to
"<code class="literal">yes</code>". If
(initrd) while
<code class="varname">fstab=</code> is
honored by both the main system and
- the initrd. </p></dd></dl></div></div><div class="refsect1"><a name="idm214190030224"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ the initrd. </p></dd></dl></div></div><div class="refsect1"><a name="idm214188037552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>,
<a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-GETTY\-GENERATOR" "8" "" "systemd 214" "systemd-getty-generator"
+.TH "SYSTEMD\-GETTY\-GENERATOR" "8" "" "systemd 215" "systemd-getty-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-getty-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-getty-generator — Generator for enabling getty instances on
- the console</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-getty-generator</code></p></div><div class="refsect1"><a name="idm214167134000"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-getty-generator</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-getty-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-getty-generator — Generator for enabling getty instances on
+ the console</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-getty-generator</code></p></div><div class="refsect1"><a name="idm214186861600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-getty-generator</code> is
a generator that automatically instantiates
<code class="filename">serial-getty@.service</code> on the
kernel console <code class="filename">/dev/console</code> if
specification</a>.</p><p>Further information about configuration of
gettys you may find in <a class="ulink" href="http://0pointer.de/blog/projects/serial-console.html" target="_top">systemd
for Administrators, Part XVI: Gettys on Serial
- Consoles (and Elsewhere)</a>.</p></div><div class="refsect1"><a name="idm214167565424"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ Consoles (and Elsewhere)</a>.</p></div><div class="refsect1"><a name="idm214190115808"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="agetty.html"><span class="citerefentry"><span class="refentrytitle">agetty</span>(8)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-GPT\-AUTO\-GENERATOR" "8" "" "systemd 214" "systemd-gpt-auto-generator"
+.TH "SYSTEMD\-GPT\-AUTO\-GENERATOR" "8" "" "systemd 215" "systemd-gpt-auto-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-gpt-auto-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-gpt-auto-generator — Generator for automatically discovering
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-gpt-auto-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-gpt-auto-generator — Generator for automatically discovering
and mounting root, <code class="filename">/home</code> and
<code class="filename">/srv</code> partitions, as well as
discovering and enabling swap partitions, based on GPT
- partition type GUIDs.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</code></p></div><div class="refsect1"><a name="idm214181526112"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-gpt-auto-generator</code>
+ partition type GUIDs.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</code></p></div><div class="refsect1"><a name="idm214198372016"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-gpt-auto-generator</code>
is a unit generator that automatically discovers root,
<code class="filename">/home</code>, <code class="filename">/srv</code>
and swap partitions and creates mount and swap units
in <code class="filename">/etc/fstab</code> or suchlike
unnecessary.</p><p>This generator looks for the partitions based on
their partition type GUID. The following partition
- type GUIDs are identified:</p><div class="table"><a name="idm214181423392"></a><p class="title"><b>Table 1. Partition Type GUIDs</b></p><div class="table-contents"><table summary="Partition Type GUIDs" border="1"><colgroup><col align="left" class="guid"><col align="left" class="name"><col align="left" class="explanation"></colgroup><thead><tr><th align="left">Partition Type GUID</th><th align="left">Name</th><th align="left">Explanation</th></tr></thead><tbody><tr><td align="left">44479540-f297-41b2-9af7-d131d5f0458a</td><td align="left"><code class="filename">Root Partition (x86)</code></td><td align="left">On 32-bit x86 systems, the first x86 root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">4f68bce3-e8cd-4db1-96e7-fbcaf984b709</td><td align="left"><code class="filename">Root Partition (x86-64)</code></td><td align="left">On 64-bit x86 systems, the first x86-64 root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">69dad710-2ce4-4e3c-b16c-21a1d49abed3</td><td align="left"><code class="filename">Root Partition (32-bit ARM)</code></td><td align="left">On 32-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">b921b045-1df0-41c3-af44-4c6f280d3fae</td><td align="left"><code class="filename">Root Partition (64-bit ARM)</code></td><td align="left">On 64-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">933ac7e1-2eb4-4f13-b844-0e14e2aef915</td><td align="left">Home Partition</td><td align="left">The first home partition on the disk the root partition is located on is mounted to <code class="filename">/home</code>.</td></tr><tr><td align="left">3b8f8425-20e0-4f3b-907f-1a25a76f98e8</td><td align="left">Server Data Partition</td><td align="left">The first server data partition on the disk the root partition is located on is mounted to <code class="filename">/srv</code>.</td></tr><tr><td align="left">0657fd6d-a4ab-43c4-84e5-0933c84b4f4f</td><td align="left">Swap</td><td align="left">All swap partitions located on the disk the root partition is located on are enabled.</td></tr></tbody></table></div></div><br class="table-break"><p>The <code class="filename">/home</code> and
+ type GUIDs are identified:</p><div class="table"><a name="idm214198412432"></a><p class="title"><b>Table 1. Partition Type GUIDs</b></p><div class="table-contents"><table summary="Partition Type GUIDs" border="1"><colgroup><col align="left" class="guid"><col align="left" class="name"><col align="left" class="explanation"></colgroup><thead><tr><th align="left">Partition Type GUID</th><th align="left">Name</th><th align="left">Explanation</th></tr></thead><tbody><tr><td align="left">44479540-f297-41b2-9af7-d131d5f0458a</td><td align="left"><code class="filename">Root Partition (x86)</code></td><td align="left">On 32-bit x86 systems, the first x86 root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">4f68bce3-e8cd-4db1-96e7-fbcaf984b709</td><td align="left"><code class="filename">Root Partition (x86-64)</code></td><td align="left">On 64-bit x86 systems, the first x86-64 root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">69dad710-2ce4-4e3c-b16c-21a1d49abed3</td><td align="left"><code class="filename">Root Partition (32-bit ARM)</code></td><td align="left">On 32-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">b921b045-1df0-41c3-af44-4c6f280d3fae</td><td align="left"><code class="filename">Root Partition (64-bit ARM)</code></td><td align="left">On 64-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <code class="filename">/</code>.</td></tr><tr><td align="left">933ac7e1-2eb4-4f13-b844-0e14e2aef915</td><td align="left">Home Partition</td><td align="left">The first home partition on the disk the root partition is located on is mounted to <code class="filename">/home</code>.</td></tr><tr><td align="left">3b8f8425-20e0-4f3b-907f-1a25a76f98e8</td><td align="left">Server Data Partition</td><td align="left">The first server data partition on the disk the root partition is located on is mounted to <code class="filename">/srv</code>.</td></tr><tr><td align="left">0657fd6d-a4ab-43c4-84e5-0933c84b4f4f</td><td align="left">Swap</td><td align="left">All swap partitions located on the disk the root partition is located on are enabled.</td></tr></tbody></table></div></div><br class="table-break"><p>The <code class="filename">/home</code> and
<code class="filename">/srv</code> partitions may be encrypted
in LUKS format. In this case a device mapper device is
set up under the names
default subvolumes on them, using <span class="command"><strong>btrfs
subvolume set-default</strong></span>.</p><p><code class="filename">systemd-gpt-auto-generator</code>
implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators" target="_top">Generator
- Specification</a>.</p></div><div class="refsect1"><a name="idm214185283680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ Specification</a>.</p></div><div class="refsect1"><a name="idm214198458240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>,
<a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-HALT\&.SERVICE" "8" "" "systemd 214" "systemd-halt.service"
+.TH "SYSTEMD\-HALT\&.SERVICE" "8" "" "systemd 215" "systemd-halt.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214170881184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214183037312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
system service that is pulled in by
<code class="filename">halt.target</code> and is responsible
for the actual system halt. Similarly,
related units) should never be executed
directly. Instead, trigger system shutdown with a
command such as "<code class="literal">systemctl halt</code>" or
- suchlike.</p></div><div class="refsect1"><a name="idm214167153872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ suchlike.</p></div><div class="refsect1"><a name="idm214183155536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214190297200"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214187249136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
a system service that is pulled in by
<code class="filename">suspend.target</code> and is responsible
for the actual system suspend. Similarly,
where can be configured in the "<code class="literal">[Sleep]</code>"
section of <code class="filename">/etc/systemd/sleep.conf</code>.
See <a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>.
- </p></div><div class="refsect1"><a name="idm214194175168"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
+ </p></div><div class="refsect1"><a name="idm214191127792"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
following commands:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="suspend"><span class="term"><code class="option">suspend</code>, </span><span class="term"><code class="option">hibernate</code>, </span><span class="term"><code class="option">hybrid-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p>Suspend, hibernate, or
- put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194168640"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191121168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>,
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-hostnamed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-hostnamed.service, systemd-hostnamed — Host name bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-hostnamed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-hostnamed</code></p></div><div class="refsect1"><a name="idm214194607904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-hostnamed</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-hostnamed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-hostnamed.service, systemd-hostnamed — Host name bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-hostnamed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-hostnamed</code></p></div><div class="refsect1"><a name="idm214196354864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-hostnamed</code> is a system
service that may be used as a mechanism to change the
system's hostname. <code class="filename">systemd-hostnamed</code> is
automatically activated on request and terminates
is a command-line client to this service.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/hostnamed" target="_top">
developer documentation</a> for information about
the APIs <code class="filename">systemd-hostnamed</code>
- provides.</p></div><div class="refsect1"><a name="idm214190793584"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214194413056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>,
<a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-HOSTNAMED\&.SERVICE" "8" "" "systemd 214" "systemd-hostnamed.service"
+.TH "SYSTEMD\-HOSTNAMED\&.SERVICE" "8" "" "systemd 215" "systemd-hostnamed.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-hostnamed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-hostnamed.service, systemd-hostnamed — Host name bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-hostnamed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-hostnamed</code></p></div><div class="refsect1"><a name="idm214194607904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-hostnamed</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-hostnamed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-hostnamed.service, systemd-hostnamed — Host name bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-hostnamed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-hostnamed</code></p></div><div class="refsect1"><a name="idm214196354864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-hostnamed</code> is a system
service that may be used as a mechanism to change the
system's hostname. <code class="filename">systemd-hostnamed</code> is
automatically activated on request and terminates
is a command-line client to this service.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/hostnamed" target="_top">
developer documentation</a> for information about
the APIs <code class="filename">systemd-hostnamed</code>
- provides.</p></div><div class="refsect1"><a name="idm214190793584"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214194413056"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>,
<a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214190297200"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214187249136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
a system service that is pulled in by
<code class="filename">suspend.target</code> and is responsible
for the actual system suspend. Similarly,
where can be configured in the "<code class="literal">[Sleep]</code>"
section of <code class="filename">/etc/systemd/sleep.conf</code>.
See <a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>.
- </p></div><div class="refsect1"><a name="idm214194175168"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
+ </p></div><div class="refsect1"><a name="idm214191127792"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
following commands:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="suspend"><span class="term"><code class="option">suspend</code>, </span><span class="term"><code class="option">hibernate</code>, </span><span class="term"><code class="option">hybrid-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p>Suspend, hibernate, or
- put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194168640"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191121168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>,
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD\-INHIBIT" "1" "" "systemd 214" "systemd-inhibit"
+.TH "SYSTEMD\-INHIBIT" "1" "" "systemd 215" "systemd-inhibit"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-inhibit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-inhibit — Execute a program with an inhibition lock taken</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-inhibit [OPTIONS...] [COMMAND] [ARGUMENTS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">systemd-inhibit [OPTIONS...] --list</code> </p></div></div><div class="refsect1"><a name="idm214188217008"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-inhibit</strong></span> may be used
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-inhibit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-inhibit — Execute a program with an inhibition lock taken</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-inhibit [OPTIONS...] [COMMAND] [ARGUMENTS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">systemd-inhibit [OPTIONS...] --list</code> </p></div></div><div class="refsect1"><a name="idm214188595296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-inhibit</strong></span> may be used
to execute a program with a shutdown, sleep or idle
inhibitor lock taken. The lock will be acquired before
the specified command line is executed and released
to avoid system suspends while an optical disc is
being recorded, or similar operations that should not
be interrupted.</p><p>For more information see the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">Inhibitor
- Lock Developer Documentation</a>.</p></div><div class="refsect1"><a name="idm214188213200"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--what="><span class="term"><code class="option">--what=</code></span><a class="headerlink" title="Permalink to this term" href="#--what=">¶</a></dt><dd><p>Takes a colon-separated
+ Lock Developer Documentation</a>.</p></div><div class="refsect1"><a name="idm214188640000"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--what="><span class="term"><code class="option">--what=</code></span><a class="headerlink" title="Permalink to this term" href="#--what=">¶</a></dt><dd><p>Takes a colon-separated
list of one or more
operations to inhibit:
"<code class="literal">shutdown</code>",
"<code class="literal">shutdown</code>".</p></dd><dt id="--list"><span class="term"><code class="option">--list</code></span><a class="headerlink" title="Permalink to this term" href="#--list">¶</a></dt><dd><p>Lists all active
inhibition locks instead of acquiring
one.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192085792"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>Returns the exit status of the executed program.</p></div><div class="refsect1"><a name="idm214192084608"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting"># systemd-inhibit wodim foobar.iso</pre><p>This burns the ISO image
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188694752"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>Returns the exit status of the executed program.</p></div><div class="refsect1"><a name="idm214188693568"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><pre class="programlisting"># systemd-inhibit wodim foobar.iso</pre><p>This burns the ISO image
<code class="filename">foobar.iso</code> on a CD using
<a href="wodim.html"><span class="citerefentry"><span class="refentrytitle">wodim</span>(1)</span></a>,
and inhibits system sleeping, shutdown and idle while
- doing so.</p></div><div class="refsect1"><a name="idm214192081120"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ doing so.</p></div><div class="refsect1"><a name="idm214188690080"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-initctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-initctl.service, systemd-initctl.socket, systemd-initctl — /dev/initctl compatibility</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-initctl.service</code></p><p><code class="filename">systemd-initctl.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-initctl</code></p></div><div class="refsect1"><a name="idm214186204864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-initctl</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-initctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-initctl.service, systemd-initctl.socket, systemd-initctl — /dev/initctl compatibility</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-initctl.service</code></p><p><code class="filename">systemd-initctl.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-initctl</code></p></div><div class="refsect1"><a name="idm214170800944"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-initctl</code> is a system
service that implements compatibility with the
<code class="filename">/dev/initctl</code> FIFO file system
object, as implemented by the SysV init system. <code class="filename">systemd-initctl</code> is
automatically activated on request and terminates
- itself when it is unused.</p></div><div class="refsect1"><a name="idm214186201504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself when it is unused.</p></div><div class="refsect1"><a name="idm214170797584"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-INITCTL\&.SERVICE" "8" "" "systemd 214" "systemd-initctl.service"
+.TH "SYSTEMD\-INITCTL\&.SERVICE" "8" "" "systemd 215" "systemd-initctl.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-initctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-initctl.service, systemd-initctl.socket, systemd-initctl — /dev/initctl compatibility</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-initctl.service</code></p><p><code class="filename">systemd-initctl.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-initctl</code></p></div><div class="refsect1"><a name="idm214186204864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-initctl</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-initctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-initctl.service, systemd-initctl.socket, systemd-initctl — /dev/initctl compatibility</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-initctl.service</code></p><p><code class="filename">systemd-initctl.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-initctl</code></p></div><div class="refsect1"><a name="idm214170800944"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-initctl</code> is a system
service that implements compatibility with the
<code class="filename">/dev/initctl</code> FIFO file system
object, as implemented by the SysV init system. <code class="filename">systemd-initctl</code> is
automatically activated on request and terminates
- itself when it is unused.</p></div><div class="refsect1"><a name="idm214186201504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself when it is unused.</p></div><div class="refsect1"><a name="idm214170797584"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-initctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-initctl.service, systemd-initctl.socket, systemd-initctl — /dev/initctl compatibility</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-initctl.service</code></p><p><code class="filename">systemd-initctl.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-initctl</code></p></div><div class="refsect1"><a name="idm214186204864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-initctl</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-initctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-initctl.service, systemd-initctl.socket, systemd-initctl — /dev/initctl compatibility</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-initctl.service</code></p><p><code class="filename">systemd-initctl.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-initctl</code></p></div><div class="refsect1"><a name="idm214170800944"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-initctl</code> is a system
service that implements compatibility with the
<code class="filename">/dev/initctl</code> FIFO file system
object, as implemented by the SysV init system. <code class="filename">systemd-initctl</code> is
automatically activated on request and terminates
- itself when it is unused.</p></div><div class="refsect1"><a name="idm214186201504"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself when it is unused.</p></div><div class="refsect1"><a name="idm214170797584"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journal-gatewayd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — HTTP server for journal events</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journal-gatewayd.service</code></p><p><code class="filename">systemd-journal-gatewayd.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-journal-gatewayd</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214193892400"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-journal-gatewayd</strong></span> serves journal
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journal-gatewayd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — HTTP server for journal events</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journal-gatewayd.service</code></p><p><code class="filename">systemd-journal-gatewayd.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-journal-gatewayd</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214188770192"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-journal-gatewayd</strong></span> serves journal
events over the network. Clients must connect using
HTTP. The server listens on port 19531 by default.
If <code class="option">--cert=</code> is specified, the server expects
and expects to receive a single socket. Use
<span class="command"><strong>systemctl start systemd-journal-gatewayd.socket</strong></span> to start
the service, and <span class="command"><strong>systemctl enable systemd-journal-gatewayd.socket</strong></span>
- to have it started on boot.</p></div><div class="refsect1"><a name="idm214192520976"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p>Specify the path to a file containing a server
+ to have it started on boot.</p></div><div class="refsect1"><a name="idm214184977408"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p>Specify the path to a file containing a server
certificate in PEM format. This option switches
<span class="command"><strong>systemd-journal-gatewayd</strong></span> into HTTPS mode
and must be used together with
<code class="option">--key=</code>.</p></dd><dt id="--key="><span class="term"><code class="option">--key=</code></span><a class="headerlink" title="Permalink to this term" href="#--key=">¶</a></dt><dd><p>Specify the path to a file containing a server
key in PEM format corresponding to the certificate specified
with <code class="option">--cert=</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196162016"></a><h2 id="Supported URLs">Supported URLs<a class="headerlink" title="Permalink to this headline" href="#Supported%20URLs">¶</a></h2><p>The following URLs are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="/browse"><span class="term"><code class="uri">/browse</code></span><a class="headerlink" title="Permalink to this term" href="#/browse">¶</a></dt><dd><p>Interactive browsing.</p></dd><dt id="/entries[?option1&option2=value...]"><span class="term"><code class="uri">/entries[?option1&option2=value...]</code></span><a class="headerlink" title="Permalink to this term" href="#/entries%5B?option1&option2=value...%5D">¶</a></dt><dd><p>Retrieval of events in various formats.</p><p>The <code class="option">Accept:</code> part of the HTTP header
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184969312"></a><h2 id="Supported URLs">Supported URLs<a class="headerlink" title="Permalink to this headline" href="#Supported%20URLs">¶</a></h2><p>The following URLs are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="/browse"><span class="term"><code class="uri">/browse</code></span><a class="headerlink" title="Permalink to this term" href="#/browse">¶</a></dt><dd><p>Interactive browsing.</p></dd><dt id="/entries[?option1&option2=value...]"><span class="term"><code class="uri">/entries[?option1&option2=value...]</code></span><a class="headerlink" title="Permalink to this term" href="#/entries%5B?option1&option2=value...%5D">¶</a></dt><dd><p>Retrieval of events in various formats.</p><p>The <code class="option">Accept:</code> part of the HTTP header
determines the format. Supported values are described below.
</p><p>The <code class="option">Range:</code> part of the HTTP header
determines the range of events returned. Supported values are
"os_pretty_name" : "Fedora 19 (Rawhide)",
"virtualization" : "kvm",
...}</pre><p>
- </p></dd><dt id="/fields/FIELD_NAME"><span class="term"><code class="uri">/fields/<em class="replaceable"><code>FIELD_NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/fields/FIELD_NAME">¶</a></dt><dd><p>Return a list of values of this field present in the logs.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192369200"></a><h2 id="Accept header">Accept header<a class="headerlink" title="Permalink to this headline" href="#Accept%20header">¶</a></h2><p>
+ </p></dd><dt id="/fields/FIELD_NAME"><span class="term"><code class="uri">/fields/<em class="replaceable"><code>FIELD_NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/fields/FIELD_NAME">¶</a></dt><dd><p>Return a list of values of this field present in the logs.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188863728"></a><h2 id="Accept header">Accept header<a class="headerlink" title="Permalink to this headline" href="#Accept%20header">¶</a></h2><p>
<code class="option">Accept: <em class="replaceable"><code>format</code></em></code>
</p><p>Recognized formats:</p><div class="variablelist"><dl class="variablelist"><dt id="text/plain"><span class="term"><code class="constant">text/plain</code></span><a class="headerlink" title="Permalink to this term" href="#text/plain">¶</a></dt><dd><p>The default. Plaintext syslog-like output,
one line per journal entry
transfer
(like <span class="command"><strong>journalctl --output export</strong></span>).
See <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
- Export Format</a> for more information.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196251840"></a><h2 id="Range header">Range header<a class="headerlink" title="Permalink to this headline" href="#Range%20header">¶</a></h2><p>
+ Export Format</a> for more information.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188842016"></a><h2 id="Range header">Range header<a class="headerlink" title="Permalink to this headline" href="#Range%20header">¶</a></h2><p>
<code class="option">Range: entries=<em class="replaceable"><code>cursor</code></em>[[:<em class="replaceable"><code>num_skip</code></em>]:<em class="replaceable"><code>num_entries</code></em>]</code>
</p><p>where
<code class="option">cursor</code> is a cursor string,
<code class="option">num_skip</code> is an integer,
<code class="option">num_entries</code> is an unsigned integer.
- </p><p>Range defaults to all available events.</p></div><div class="refsect1"><a name="idm214196246672"></a><h2 id="URL GET parameters">URL GET parameters<a class="headerlink" title="Permalink to this headline" href="#URL%20GET%20parameters">¶</a></h2><p>Following parameters can be used as part of the URL:</p><div class="variablelist"><dl class="variablelist"><dt id="follow"><span class="term"><code class="uri">follow</code></span><a class="headerlink" title="Permalink to this term" href="#follow">¶</a></dt><dd><p>wait for new events
+ </p><p>Range defaults to all available events.</p></div><div class="refsect1"><a name="idm214188836848"></a><h2 id="URL GET parameters">URL GET parameters<a class="headerlink" title="Permalink to this headline" href="#URL%20GET%20parameters">¶</a></h2><p>Following parameters can be used as part of the URL:</p><div class="variablelist"><dl class="variablelist"><dt id="follow"><span class="term"><code class="uri">follow</code></span><a class="headerlink" title="Permalink to this term" href="#follow">¶</a></dt><dd><p>wait for new events
(like <span class="command"><strong>journalctl --follow</strong></span>, except that
the number of events returned is not limited).</p></dd><dt id="discrete"><span class="term"><code class="uri">discrete</code></span><a class="headerlink" title="Permalink to this term" href="#discrete">¶</a></dt><dd><p>Test that the specified cursor refers to an
entry in the journal. Returns just this entry.</p></dd><dt id="boot"><span class="term"><code class="uri">boot</code></span><a class="headerlink" title="Permalink to this term" href="#boot">¶</a></dt><dd><p>Limit events to the current boot of the system
(like <span class="command"><strong>journalctl --this--boot</strong></span>).</p></dd><dt id="KEY=match"><span class="term"><code class="uri"><em class="replaceable"><code>KEY</code></em>=<em class="replaceable"><code>match</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#KEY=match">¶</a></dt><dd><p>Match journal fields. See
- <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196228816"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Retrieve events from this boot from local journal
+ <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188826192"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Retrieve events from this boot from local journal
in <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
Export Format</a>:
</p><pre class="programlisting">curl --silent -H'Accept: application/vnd.fdo.journal' \
'http://localhost:19531/entries?boot'</pre><p>
</p><p>Listen for core dumps:
- </p><pre class="programlisting">curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</pre></div><div class="refsect1"><a name="idm214196225088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p><pre class="programlisting">curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</pre></div><div class="refsect1"><a name="idm214184189536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
'\" t
-.TH "SYSTEMD\-JOURNAL\-GATEWAYD\&.SERVICE" "8" "" "systemd 214" "systemd-journal-gatewayd.service"
+.TH "SYSTEMD\-JOURNAL\-GATEWAYD\&.SERVICE" "8" "" "systemd 215" "systemd-journal-gatewayd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journal-gatewayd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — HTTP server for journal events</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journal-gatewayd.service</code></p><p><code class="filename">systemd-journal-gatewayd.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-journal-gatewayd</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214193892400"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-journal-gatewayd</strong></span> serves journal
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journal-gatewayd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — HTTP server for journal events</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journal-gatewayd.service</code></p><p><code class="filename">systemd-journal-gatewayd.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-journal-gatewayd</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214188770192"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-journal-gatewayd</strong></span> serves journal
events over the network. Clients must connect using
HTTP. The server listens on port 19531 by default.
If <code class="option">--cert=</code> is specified, the server expects
and expects to receive a single socket. Use
<span class="command"><strong>systemctl start systemd-journal-gatewayd.socket</strong></span> to start
the service, and <span class="command"><strong>systemctl enable systemd-journal-gatewayd.socket</strong></span>
- to have it started on boot.</p></div><div class="refsect1"><a name="idm214192520976"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p>Specify the path to a file containing a server
+ to have it started on boot.</p></div><div class="refsect1"><a name="idm214184977408"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p>Specify the path to a file containing a server
certificate in PEM format. This option switches
<span class="command"><strong>systemd-journal-gatewayd</strong></span> into HTTPS mode
and must be used together with
<code class="option">--key=</code>.</p></dd><dt id="--key="><span class="term"><code class="option">--key=</code></span><a class="headerlink" title="Permalink to this term" href="#--key=">¶</a></dt><dd><p>Specify the path to a file containing a server
key in PEM format corresponding to the certificate specified
with <code class="option">--cert=</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196162016"></a><h2 id="Supported URLs">Supported URLs<a class="headerlink" title="Permalink to this headline" href="#Supported%20URLs">¶</a></h2><p>The following URLs are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="/browse"><span class="term"><code class="uri">/browse</code></span><a class="headerlink" title="Permalink to this term" href="#/browse">¶</a></dt><dd><p>Interactive browsing.</p></dd><dt id="/entries[?option1&option2=value...]"><span class="term"><code class="uri">/entries[?option1&option2=value...]</code></span><a class="headerlink" title="Permalink to this term" href="#/entries%5B?option1&option2=value...%5D">¶</a></dt><dd><p>Retrieval of events in various formats.</p><p>The <code class="option">Accept:</code> part of the HTTP header
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184969312"></a><h2 id="Supported URLs">Supported URLs<a class="headerlink" title="Permalink to this headline" href="#Supported%20URLs">¶</a></h2><p>The following URLs are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="/browse"><span class="term"><code class="uri">/browse</code></span><a class="headerlink" title="Permalink to this term" href="#/browse">¶</a></dt><dd><p>Interactive browsing.</p></dd><dt id="/entries[?option1&option2=value...]"><span class="term"><code class="uri">/entries[?option1&option2=value...]</code></span><a class="headerlink" title="Permalink to this term" href="#/entries%5B?option1&option2=value...%5D">¶</a></dt><dd><p>Retrieval of events in various formats.</p><p>The <code class="option">Accept:</code> part of the HTTP header
determines the format. Supported values are described below.
</p><p>The <code class="option">Range:</code> part of the HTTP header
determines the range of events returned. Supported values are
"os_pretty_name" : "Fedora 19 (Rawhide)",
"virtualization" : "kvm",
...}</pre><p>
- </p></dd><dt id="/fields/FIELD_NAME"><span class="term"><code class="uri">/fields/<em class="replaceable"><code>FIELD_NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/fields/FIELD_NAME">¶</a></dt><dd><p>Return a list of values of this field present in the logs.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192369200"></a><h2 id="Accept header">Accept header<a class="headerlink" title="Permalink to this headline" href="#Accept%20header">¶</a></h2><p>
+ </p></dd><dt id="/fields/FIELD_NAME"><span class="term"><code class="uri">/fields/<em class="replaceable"><code>FIELD_NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/fields/FIELD_NAME">¶</a></dt><dd><p>Return a list of values of this field present in the logs.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188863728"></a><h2 id="Accept header">Accept header<a class="headerlink" title="Permalink to this headline" href="#Accept%20header">¶</a></h2><p>
<code class="option">Accept: <em class="replaceable"><code>format</code></em></code>
</p><p>Recognized formats:</p><div class="variablelist"><dl class="variablelist"><dt id="text/plain"><span class="term"><code class="constant">text/plain</code></span><a class="headerlink" title="Permalink to this term" href="#text/plain">¶</a></dt><dd><p>The default. Plaintext syslog-like output,
one line per journal entry
transfer
(like <span class="command"><strong>journalctl --output export</strong></span>).
See <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
- Export Format</a> for more information.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196251840"></a><h2 id="Range header">Range header<a class="headerlink" title="Permalink to this headline" href="#Range%20header">¶</a></h2><p>
+ Export Format</a> for more information.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188842016"></a><h2 id="Range header">Range header<a class="headerlink" title="Permalink to this headline" href="#Range%20header">¶</a></h2><p>
<code class="option">Range: entries=<em class="replaceable"><code>cursor</code></em>[[:<em class="replaceable"><code>num_skip</code></em>]:<em class="replaceable"><code>num_entries</code></em>]</code>
</p><p>where
<code class="option">cursor</code> is a cursor string,
<code class="option">num_skip</code> is an integer,
<code class="option">num_entries</code> is an unsigned integer.
- </p><p>Range defaults to all available events.</p></div><div class="refsect1"><a name="idm214196246672"></a><h2 id="URL GET parameters">URL GET parameters<a class="headerlink" title="Permalink to this headline" href="#URL%20GET%20parameters">¶</a></h2><p>Following parameters can be used as part of the URL:</p><div class="variablelist"><dl class="variablelist"><dt id="follow"><span class="term"><code class="uri">follow</code></span><a class="headerlink" title="Permalink to this term" href="#follow">¶</a></dt><dd><p>wait for new events
+ </p><p>Range defaults to all available events.</p></div><div class="refsect1"><a name="idm214188836848"></a><h2 id="URL GET parameters">URL GET parameters<a class="headerlink" title="Permalink to this headline" href="#URL%20GET%20parameters">¶</a></h2><p>Following parameters can be used as part of the URL:</p><div class="variablelist"><dl class="variablelist"><dt id="follow"><span class="term"><code class="uri">follow</code></span><a class="headerlink" title="Permalink to this term" href="#follow">¶</a></dt><dd><p>wait for new events
(like <span class="command"><strong>journalctl --follow</strong></span>, except that
the number of events returned is not limited).</p></dd><dt id="discrete"><span class="term"><code class="uri">discrete</code></span><a class="headerlink" title="Permalink to this term" href="#discrete">¶</a></dt><dd><p>Test that the specified cursor refers to an
entry in the journal. Returns just this entry.</p></dd><dt id="boot"><span class="term"><code class="uri">boot</code></span><a class="headerlink" title="Permalink to this term" href="#boot">¶</a></dt><dd><p>Limit events to the current boot of the system
(like <span class="command"><strong>journalctl --this--boot</strong></span>).</p></dd><dt id="KEY=match"><span class="term"><code class="uri"><em class="replaceable"><code>KEY</code></em>=<em class="replaceable"><code>match</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#KEY=match">¶</a></dt><dd><p>Match journal fields. See
- <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196228816"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Retrieve events from this boot from local journal
+ <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188826192"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Retrieve events from this boot from local journal
in <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
Export Format</a>:
</p><pre class="programlisting">curl --silent -H'Accept: application/vnd.fdo.journal' \
'http://localhost:19531/entries?boot'</pre><p>
</p><p>Listen for core dumps:
- </p><pre class="programlisting">curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</pre></div><div class="refsect1"><a name="idm214196225088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p><pre class="programlisting">curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</pre></div><div class="refsect1"><a name="idm214184189536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journal-gatewayd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — HTTP server for journal events</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journal-gatewayd.service</code></p><p><code class="filename">systemd-journal-gatewayd.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-journal-gatewayd</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214193892400"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-journal-gatewayd</strong></span> serves journal
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journal-gatewayd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — HTTP server for journal events</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journal-gatewayd.service</code></p><p><code class="filename">systemd-journal-gatewayd.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-journal-gatewayd</code> [OPTIONS...]</p></div></div><div class="refsect1"><a name="idm214188770192"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-journal-gatewayd</strong></span> serves journal
events over the network. Clients must connect using
HTTP. The server listens on port 19531 by default.
If <code class="option">--cert=</code> is specified, the server expects
and expects to receive a single socket. Use
<span class="command"><strong>systemctl start systemd-journal-gatewayd.socket</strong></span> to start
the service, and <span class="command"><strong>systemctl enable systemd-journal-gatewayd.socket</strong></span>
- to have it started on boot.</p></div><div class="refsect1"><a name="idm214192520976"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p>Specify the path to a file containing a server
+ to have it started on boot.</p></div><div class="refsect1"><a name="idm214184977408"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p>Specify the path to a file containing a server
certificate in PEM format. This option switches
<span class="command"><strong>systemd-journal-gatewayd</strong></span> into HTTPS mode
and must be used together with
<code class="option">--key=</code>.</p></dd><dt id="--key="><span class="term"><code class="option">--key=</code></span><a class="headerlink" title="Permalink to this term" href="#--key=">¶</a></dt><dd><p>Specify the path to a file containing a server
key in PEM format corresponding to the certificate specified
with <code class="option">--cert=</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196162016"></a><h2 id="Supported URLs">Supported URLs<a class="headerlink" title="Permalink to this headline" href="#Supported%20URLs">¶</a></h2><p>The following URLs are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="/browse"><span class="term"><code class="uri">/browse</code></span><a class="headerlink" title="Permalink to this term" href="#/browse">¶</a></dt><dd><p>Interactive browsing.</p></dd><dt id="/entries[?option1&option2=value...]"><span class="term"><code class="uri">/entries[?option1&option2=value...]</code></span><a class="headerlink" title="Permalink to this term" href="#/entries%5B?option1&option2=value...%5D">¶</a></dt><dd><p>Retrieval of events in various formats.</p><p>The <code class="option">Accept:</code> part of the HTTP header
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184969312"></a><h2 id="Supported URLs">Supported URLs<a class="headerlink" title="Permalink to this headline" href="#Supported%20URLs">¶</a></h2><p>The following URLs are recognized:</p><div class="variablelist"><dl class="variablelist"><dt id="/browse"><span class="term"><code class="uri">/browse</code></span><a class="headerlink" title="Permalink to this term" href="#/browse">¶</a></dt><dd><p>Interactive browsing.</p></dd><dt id="/entries[?option1&option2=value...]"><span class="term"><code class="uri">/entries[?option1&option2=value...]</code></span><a class="headerlink" title="Permalink to this term" href="#/entries%5B?option1&option2=value...%5D">¶</a></dt><dd><p>Retrieval of events in various formats.</p><p>The <code class="option">Accept:</code> part of the HTTP header
determines the format. Supported values are described below.
</p><p>The <code class="option">Range:</code> part of the HTTP header
determines the range of events returned. Supported values are
"os_pretty_name" : "Fedora 19 (Rawhide)",
"virtualization" : "kvm",
...}</pre><p>
- </p></dd><dt id="/fields/FIELD_NAME"><span class="term"><code class="uri">/fields/<em class="replaceable"><code>FIELD_NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/fields/FIELD_NAME">¶</a></dt><dd><p>Return a list of values of this field present in the logs.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192369200"></a><h2 id="Accept header">Accept header<a class="headerlink" title="Permalink to this headline" href="#Accept%20header">¶</a></h2><p>
+ </p></dd><dt id="/fields/FIELD_NAME"><span class="term"><code class="uri">/fields/<em class="replaceable"><code>FIELD_NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/fields/FIELD_NAME">¶</a></dt><dd><p>Return a list of values of this field present in the logs.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188863728"></a><h2 id="Accept header">Accept header<a class="headerlink" title="Permalink to this headline" href="#Accept%20header">¶</a></h2><p>
<code class="option">Accept: <em class="replaceable"><code>format</code></em></code>
</p><p>Recognized formats:</p><div class="variablelist"><dl class="variablelist"><dt id="text/plain"><span class="term"><code class="constant">text/plain</code></span><a class="headerlink" title="Permalink to this term" href="#text/plain">¶</a></dt><dd><p>The default. Plaintext syslog-like output,
one line per journal entry
transfer
(like <span class="command"><strong>journalctl --output export</strong></span>).
See <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
- Export Format</a> for more information.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196251840"></a><h2 id="Range header">Range header<a class="headerlink" title="Permalink to this headline" href="#Range%20header">¶</a></h2><p>
+ Export Format</a> for more information.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188842016"></a><h2 id="Range header">Range header<a class="headerlink" title="Permalink to this headline" href="#Range%20header">¶</a></h2><p>
<code class="option">Range: entries=<em class="replaceable"><code>cursor</code></em>[[:<em class="replaceable"><code>num_skip</code></em>]:<em class="replaceable"><code>num_entries</code></em>]</code>
</p><p>where
<code class="option">cursor</code> is a cursor string,
<code class="option">num_skip</code> is an integer,
<code class="option">num_entries</code> is an unsigned integer.
- </p><p>Range defaults to all available events.</p></div><div class="refsect1"><a name="idm214196246672"></a><h2 id="URL GET parameters">URL GET parameters<a class="headerlink" title="Permalink to this headline" href="#URL%20GET%20parameters">¶</a></h2><p>Following parameters can be used as part of the URL:</p><div class="variablelist"><dl class="variablelist"><dt id="follow"><span class="term"><code class="uri">follow</code></span><a class="headerlink" title="Permalink to this term" href="#follow">¶</a></dt><dd><p>wait for new events
+ </p><p>Range defaults to all available events.</p></div><div class="refsect1"><a name="idm214188836848"></a><h2 id="URL GET parameters">URL GET parameters<a class="headerlink" title="Permalink to this headline" href="#URL%20GET%20parameters">¶</a></h2><p>Following parameters can be used as part of the URL:</p><div class="variablelist"><dl class="variablelist"><dt id="follow"><span class="term"><code class="uri">follow</code></span><a class="headerlink" title="Permalink to this term" href="#follow">¶</a></dt><dd><p>wait for new events
(like <span class="command"><strong>journalctl --follow</strong></span>, except that
the number of events returned is not limited).</p></dd><dt id="discrete"><span class="term"><code class="uri">discrete</code></span><a class="headerlink" title="Permalink to this term" href="#discrete">¶</a></dt><dd><p>Test that the specified cursor refers to an
entry in the journal. Returns just this entry.</p></dd><dt id="boot"><span class="term"><code class="uri">boot</code></span><a class="headerlink" title="Permalink to this term" href="#boot">¶</a></dt><dd><p>Limit events to the current boot of the system
(like <span class="command"><strong>journalctl --this--boot</strong></span>).</p></dd><dt id="KEY=match"><span class="term"><code class="uri"><em class="replaceable"><code>KEY</code></em>=<em class="replaceable"><code>match</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#KEY=match">¶</a></dt><dd><p>Match journal fields. See
- <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196228816"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Retrieve events from this boot from local journal
+ <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188826192"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Retrieve events from this boot from local journal
in <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
Export Format</a>:
</p><pre class="programlisting">curl --silent -H'Accept: application/vnd.fdo.journal' \
'http://localhost:19531/entries?boot'</pre><p>
</p><p>Listen for core dumps:
- </p><pre class="programlisting">curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</pre></div><div class="refsect1"><a name="idm214196225088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p><pre class="programlisting">curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</pre></div><div class="refsect1"><a name="idm214184189536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
'\" t
-.TH "SYSTEMD\-JOURNAL\-REMOTE" "8" "" "systemd 214" "systemd-journal-remote"
+.TH "SYSTEMD\-JOURNAL\-REMOTE" "8" "" "systemd 215" "systemd-journal-remote"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journal-remote"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-remote — Stream journal messages over the network</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-journal-remote</code> [OPTIONS...] [-o/--output=DIR|FILE] [SOURCES...]</p></div></div><div class="refsect1"><a name="idm214186238144"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journal-remote"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journal-remote — Stream journal messages over the network</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-journal-remote</code> [OPTIONS...] [-o/--output=DIR|FILE] [SOURCES...]</p></div></div><div class="refsect1"><a name="idm214192157056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
<code class="filename">systemd-journal-remote</code> is a command to
receive serialized journal events and store them to the journal.
Input streams must be in the
</a>,
i.e. like the output from
<span class="command"><strong>journalctl --output=export</strong></span>.
- </p></div><div class="refsect1"><a name="idm214187377520"></a><h2 id="Sources">Sources<a class="headerlink" title="Permalink to this headline" href="#Sources">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214188367888"></a><h2 id="Sources">Sources<a class="headerlink" title="Permalink to this headline" href="#Sources">¶</a></h2><p>
Sources can be either "active"
(<span class="command"><strong>systemd-journal-remote</strong></span> requests and pulls
the data), or "passive"
<code class="option">--listen-https=-<em class="replaceable"><code>n</code></em></code>
above. In the latter case, an HTTP or HTTPS server will be
spawned using this descriptor and connections must be made
- over the HTTP protocol.</p></dd></dl></div></div><div class="refsect1"><a name="idm214190283216"></a><h2 id="Sinks">Sinks<a class="headerlink" title="Permalink to this headline" href="#Sinks">¶</a></h2><p>The location of the output journal can be specified
+ over the HTTP protocol.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192241888"></a><h2 id="Sinks">Sinks<a class="headerlink" title="Permalink to this headline" href="#Sinks">¶</a></h2><p>The location of the output journal can be specified
with <code class="option">-o</code> or <code class="option">--output=</code>.
</p><div class="variablelist"><dl class="variablelist"><dt id="--output=FILE"><span class="term"><code class="option">--output=<em class="replaceable"><code>FILE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--output=FILE">¶</a></dt><dd><p>Will write to this journal. The filename must
end with <code class="filename">.journal</code>. The file will be
Otherwise, local address and port number will be used, or
"<code class="literal">stdin</code>" for events passed over standard
input, and "<code class="literal">multiple</code>" if more than one source
- is specified.</p></div><div class="refsect1"><a name="idm214190268112"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code>, </span><span class="term"><code class="option">-h</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p>Print a short help
+ is specified.</p></div><div class="refsect1"><a name="idm214192219344"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code>, </span><span class="term"><code class="option">-h</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p>Print a short help
text and exit.</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p>Print a short version
string and exit.</p></dd><dt id="--compress"><span class="term"><code class="option">--compress</code>, </span><span class="term"><code class="option">--no-compress</code></span><a class="headerlink" title="Permalink to this term" href="#--compress">¶</a></dt><dd><p>Compress or not, respectively, the data in the
journal using XZ.</p></dd><dt id="--seal"><span class="term"><code class="option">--seal</code>, </span><span class="term"><code class="option">--no-seal</code></span><a class="headerlink" title="Permalink to this term" href="#--seal">¶</a></dt><dd><p>Periodically sign or not, respectively, the
data in the journal using Forward Secure Sealing.
</p></dd><dt id="--getter=PROG --option1 --option2"><span class="term"><code class="option">--getter=<em class="replaceable"><code>PROG --option1 --option2</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--getter=PROG%20--option1%20--option2">¶</a></dt><dd><p>Program to invoke to retrieve data. The journal
- event stream must be generated on standard output.</p><p>Examples:</p><pre class="programlisting">--getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/'</pre><pre class="programlisting">--getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/'</pre></dd></dl></div></div><div class="refsect1"><a name="idm214190247648"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Copy local journal events to a different journal directory:
+ event stream must be generated on standard output.</p><p>Examples:</p><pre class="programlisting">--getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/'</pre><pre class="programlisting">--getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/'</pre></dd></dl></div></div><div class="refsect1"><a name="idm214187575664"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Copy local journal events to a different journal directory:
</p><pre class="programlisting">
journalctl -o export | systemd-journal-remote -o /tmp/dir -
</pre><p>
</p><pre class="programlisting">
systemd-journal-remote --url http://some.host:19531/
</pre><p>
- </p></div><div class="refsect1"><a name="idm214190243168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214187571248"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>,
<a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>.
--- /dev/null
+.so man8/systemd-journald.service.8
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-journald.service</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214181031376"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
+ system service that collects and stores logging data.
+ It creates and maintains structured, indexed journals
+ based on logging information that is received from the
+ kernel, from user processes via the libc
+ <a href="syslog.html"><span class="citerefentry"><span class="refentrytitle">syslog</span>(3)</span></a>
+ call, from standard input and standard error of system
+ services or via its native API. It will implicitly
+ collect numerous metadata fields for each log
+ messages in a secure and unfakeable way. See
+ <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>
+ for more information about the collected metadata.
+ </p><p>Log data collected by the journal is primarily
+ text-based but can also include binary data where
+ necessary. All objects stored in the journal can be up
+ to 2^64-1 bytes in size.</p><p>By default, the journal stores log data in
+ <code class="filename">/run/log/journal/</code>. Since
+ <code class="filename">/run/</code> is volatile, log data is
+ lost at reboot. To make the data persistent, it
+ is sufficient to create
+ <code class="filename">/var/log/journal/</code> where
+ <code class="filename">systemd-journald</code> will then store
+ the data.</p><p><code class="filename">systemd-journald</code> will
+ forward all received log messages to the <code class="constant">AF_UNIX</code>
+ <code class="constant">SOCK_DGRAM</code> socket
+ <code class="filename">/run/systemd/journal/syslog</code>, if it exists, which
+ may be used by Unix syslog daemons to process the data
+ further.</p><p>See
+ <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
+ for information about the configuration of this
+ service.</p></div><div class="refsect1"><a name="idm214181154000"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
+ data from <code class="filename">/run/</code>
+ is flushed to
+ <code class="filename">/var/</code> in order to
+ make it persistent (if this is
+ enabled). This must be used after
+ <code class="filename">/var/</code> is mounted,
+ as otherwise log data from
+ <code class="filename">/run</code> is never
+ flushed to <code class="filename">/var</code>
+ regardless of the
+ configuration.</p></dd><dt id="SIGUSR2"><span class="term">SIGUSR2</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR2">¶</a></dt><dd><p>Request immediate
+ rotation of the journal
+ files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181146192"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
+ <code class="filename">journald.conf</code> may be overridden on
+ the kernel command line:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.journald.forward_to_syslog="><span class="term"><code class="varname">systemd.journald.forward_to_syslog=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_kmsg=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_console=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_wall=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_syslog=">¶</a></dt><dd><p>Enables/disables
+ forwarding of collected log messages
+ to syslog, the kernel log buffer, the
+ system console or wall.
+ </p><p>See
+ <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
+ for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181138896"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
+ by the "<code class="literal">systemd-journal</code>" system group
+ but are not writable. Adding a user to this group thus
+ enables her/him to read the journal files.</p><p>By default, each logged in user will get her/his
+ own set of journal files in
+ <code class="filename">/var/log/journal/</code>. These files
+ will not be owned by the user, however, in order to
+ avoid that the user can write to them
+ directly. Instead, file system ACLs are used to ensure
+ the user gets read access only.</p><p>Additional users and groups may be granted
+ access to journal files via file system access control
+ lists (ACL). Distributions and administrators may
+ choose to grant read access to all members of the
+ "<code class="literal">wheel</code>" and "<code class="literal">adm</code>"
+ system groups with a command such as the
+ following:</p><pre class="programlisting"># setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/</pre><p>Note that this command will update the ACLs both
+ for existing journal files and for future journal
+ files created in the
+ <code class="filename">/var/log/journal/</code>
+ directory.</p></div><div class="refsect1"><a name="idm214181124160"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
+ <span class="command"><strong>systemd-journald</strong></span>
+ behaviour. See
+ <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>.
+ </p></dd><dt id="/run/log/journal/machine-id/*.journal"><span class="term"><code class="filename">/run/log/journal/<em class="replaceable"><code>machine-id</code></em>/*.journal</code>, </span><span class="term"><code class="filename">/run/log/journal/<em class="replaceable"><code>machine-id</code></em>/*.journal~</code>, </span><span class="term"><code class="filename">/var/log/journal/<em class="replaceable"><code>machine-id</code></em>/*.journal</code>, </span><span class="term"><code class="filename">/var/log/journal/<em class="replaceable"><code>machine-id</code></em>/*.journal~</code></span><a class="headerlink" title="Permalink to this term" href="#/run/log/journal/machine-id/*.journal">¶</a></dt><dd><p><span class="command"><strong>systemd-journald</strong></span>
+ writes entries to files in
+ <code class="filename">/run/log/journal/<em class="replaceable"><code>machine-id</code></em>/</code>
+ or
+ <code class="filename">/var/log/journal/<em class="replaceable"><code>machine-id</code></em>/</code>
+ with the "<code class="literal">.journal</code>"
+ suffix. If the daemon is stopped
+ uncleanly, or if the files are found
+ to be corrupted, they are renamed
+ using the "<code class="literal">.journal~</code>"
+ suffix, and
+ <span class="command"><strong>systemd-journald</strong></span>
+ starts writing to a new
+ file. <code class="filename">/run</code> is
+ used when
+ <code class="filename">/var/log/journal</code>
+ is not available, or when
+ <code class="option">Storage=volatile</code> is
+ set in the
+ <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
+ configuration file.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214176140576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
+ <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>,
+ <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>,
+ <a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
+ <a href="setfacl.html"><span class="citerefentry"><span class="refentrytitle">setfacl</span>(1)</span></a>,
+ <span class="command"><strong>pydoc systemd.journal</strong></span>.
+ </p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214193916096"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214181031376"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
system service that collects and stores logging data.
It creates and maintains structured, indexed journals
based on logging information that is received from the
further.</p><p>See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214197808224"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
+ service.</p></div><div class="refsect1"><a name="idm214181154000"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
data from <code class="filename">/run/</code>
is flushed to
<code class="filename">/var/</code> in order to
regardless of the
configuration.</p></dd><dt id="SIGUSR2"><span class="term">SIGUSR2</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR2">¶</a></dt><dd><p>Request immediate
rotation of the journal
- files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197800320"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
+ files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181146192"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
<code class="filename">journald.conf</code> may be overridden on
the kernel command line:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.journald.forward_to_syslog="><span class="term"><code class="varname">systemd.journald.forward_to_syslog=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_kmsg=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_console=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_wall=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_syslog=">¶</a></dt><dd><p>Enables/disables
forwarding of collected log messages
system console or wall.
</p><p>See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
- for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197793024"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
+ for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181138896"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
by the "<code class="literal">systemd-journal</code>" system group
but are not writable. Adding a user to this group thus
enables her/him to read the journal files.</p><p>By default, each logged in user will get her/his
for existing journal files and for future journal
files created in the
<code class="filename">/var/log/journal/</code>
- directory.</p></div><div class="refsect1"><a name="idm214197778064"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
+ directory.</p></div><div class="refsect1"><a name="idm214181124160"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
<span class="command"><strong>systemd-journald</strong></span>
behaviour. See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>.
set in the
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
configuration file.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214192844208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214176140576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-JOURNALD\&.SERVICE" "8" "" "systemd 214" "systemd-journald.service"
+.TH "SYSTEMD\-JOURNALD\&.SERVICE" "8" "" "systemd 215" "systemd-journald.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214193916096"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214181031376"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
system service that collects and stores logging data.
It creates and maintains structured, indexed journals
based on logging information that is received from the
further.</p><p>See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214197808224"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
+ service.</p></div><div class="refsect1"><a name="idm214181154000"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
data from <code class="filename">/run/</code>
is flushed to
<code class="filename">/var/</code> in order to
regardless of the
configuration.</p></dd><dt id="SIGUSR2"><span class="term">SIGUSR2</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR2">¶</a></dt><dd><p>Request immediate
rotation of the journal
- files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197800320"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
+ files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181146192"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
<code class="filename">journald.conf</code> may be overridden on
the kernel command line:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.journald.forward_to_syslog="><span class="term"><code class="varname">systemd.journald.forward_to_syslog=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_kmsg=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_console=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_wall=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_syslog=">¶</a></dt><dd><p>Enables/disables
forwarding of collected log messages
system console or wall.
</p><p>See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
- for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197793024"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
+ for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181138896"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
by the "<code class="literal">systemd-journal</code>" system group
but are not writable. Adding a user to this group thus
enables her/him to read the journal files.</p><p>By default, each logged in user will get her/his
for existing journal files and for future journal
files created in the
<code class="filename">/var/log/journal/</code>
- directory.</p></div><div class="refsect1"><a name="idm214197778064"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
+ directory.</p></div><div class="refsect1"><a name="idm214181124160"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
<span class="command"><strong>systemd-journald</strong></span>
behaviour. See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>.
set in the
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
configuration file.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214192844208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214176140576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214193916096"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-journald.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald — Journal service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-journald.service</code></p><p><code class="filename">systemd-journald.socket</code></p><p><code class="filename">systemd-journald-dev-log.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-journald</code></p></div><div class="refsect1"><a name="idm214181031376"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-journald</code> is a
system service that collects and stores logging data.
It creates and maintains structured, indexed journals
based on logging information that is received from the
further.</p><p>See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214197808224"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
+ service.</p></div><div class="refsect1"><a name="idm214181154000"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGUSR1"><span class="term">SIGUSR1</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p>Request that journal
data from <code class="filename">/run/</code>
is flushed to
<code class="filename">/var/</code> in order to
regardless of the
configuration.</p></dd><dt id="SIGUSR2"><span class="term">SIGUSR2</span><a class="headerlink" title="Permalink to this term" href="#SIGUSR2">¶</a></dt><dd><p>Request immediate
rotation of the journal
- files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197800320"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
+ files.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181146192"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
<code class="filename">journald.conf</code> may be overridden on
the kernel command line:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.journald.forward_to_syslog="><span class="term"><code class="varname">systemd.journald.forward_to_syslog=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_kmsg=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_console=</code>, </span><span class="term"><code class="varname">systemd.journald.forward_to_wall=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_syslog=">¶</a></dt><dd><p>Enables/disables
forwarding of collected log messages
system console or wall.
</p><p>See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
- for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197793024"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
+ for information about these settings.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181138896"></a><h2 id="Access Control">Access Control<a class="headerlink" title="Permalink to this headline" href="#Access%20Control">¶</a></h2><p>Journal files are, by default, owned and readable
by the "<code class="literal">systemd-journal</code>" system group
but are not writable. Adding a user to this group thus
enables her/him to read the journal files.</p><p>By default, each logged in user will get her/his
for existing journal files and for future journal
files created in the
<code class="filename">/var/log/journal/</code>
- directory.</p></div><div class="refsect1"><a name="idm214197778064"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
+ directory.</p></div><div class="refsect1"><a name="idm214181124160"></a><h2 id="Files">Files<a class="headerlink" title="Permalink to this headline" href="#Files">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p>Configure
<span class="command"><strong>systemd-journald</strong></span>
behaviour. See
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>.
set in the
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>
configuration file.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214192844208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214176140576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214170881184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214183037312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
system service that is pulled in by
<code class="filename">halt.target</code> and is responsible
for the actual system halt. Similarly,
related units) should never be executed
directly. Instead, trigger system shutdown with a
command such as "<code class="literal">systemctl halt</code>" or
- suchlike.</p></div><div class="refsect1"><a name="idm214167153872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ suchlike.</p></div><div class="refsect1"><a name="idm214183155536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-localed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-localed.service, systemd-localed — Locale bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-localed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-localed</code></p></div><div class="refsect1"><a name="idm214167485904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-localed</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-localed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-localed.service, systemd-localed — Locale bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-localed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-localed</code></p></div><div class="refsect1"><a name="idm214174064512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-localed</code> is a system
service that may be used as mechanism to change the
system locale settings, as well as the console key
mapping and default X11 key
is a command line client to this service.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/localed" target="_top">
developer documentation</a> for information about
the APIs <code class="filename">systemd-localed</code>
- provides.</p></div><div class="refsect1"><a name="idm214167480096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214174058656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>,
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-LOCALED\&.SERVICE" "8" "" "systemd 214" "systemd-localed.service"
+.TH "SYSTEMD\-LOCALED\&.SERVICE" "8" "" "systemd 215" "systemd-localed.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-localed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-localed.service, systemd-localed — Locale bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-localed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-localed</code></p></div><div class="refsect1"><a name="idm214167485904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-localed</code> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-localed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-localed.service, systemd-localed — Locale bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-localed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-localed</code></p></div><div class="refsect1"><a name="idm214174064512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-localed</code> is a system
service that may be used as mechanism to change the
system locale settings, as well as the console key
mapping and default X11 key
is a command line client to this service.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/localed" target="_top">
developer documentation</a> for information about
the APIs <code class="filename">systemd-localed</code>
- provides.</p></div><div class="refsect1"><a name="idm214167480096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214174058656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>,
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-logind.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-logind.service, systemd-logind — Login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-logind.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-logind</code></p></div><div class="refsect1"><a name="idm214189120976"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-logind</strong></span> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-logind.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-logind.service, systemd-logind — Login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-logind.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-logind</code></p></div><div class="refsect1"><a name="idm214173995056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-logind</strong></span> is a system
service that manages user logins. It is responsible
for:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Keeping track of users and
sessions, their processes and their idle
the APIs <code class="filename">systemd-logind</code>
provides.</p><p>For more information on the inhibition logic see
the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">Inhibitor
- Lock Developer Documentation</a>.</p></div><div class="refsect1"><a name="idm214189107376"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ Lock Developer Documentation</a>.</p></div><div class="refsect1"><a name="idm214173981456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a>,
<a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD\-LOGIND\&.SERVICE" "8" "" "systemd 214" "systemd-logind.service"
+.TH "SYSTEMD\-LOGIND\&.SERVICE" "8" "" "systemd 215" "systemd-logind.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-logind.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-logind.service, systemd-logind — Login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-logind.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-logind</code></p></div><div class="refsect1"><a name="idm214189120976"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-logind</strong></span> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-logind.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-logind.service, systemd-logind — Login manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-logind.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-logind</code></p></div><div class="refsect1"><a name="idm214173995056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-logind</strong></span> is a system
service that manages user logins. It is responsible
for:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Keeping track of users and
sessions, their processes and their idle
the APIs <code class="filename">systemd-logind</code>
provides.</p><p>For more information on the inhibition logic see
the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">Inhibitor
- Lock Developer Documentation</a>.</p></div><div class="refsect1"><a name="idm214189107376"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ Lock Developer Documentation</a>.</p></div><div class="refsect1"><a name="idm214173981456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a>,
<a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD\-MACHINE\-ID\-SETUP" "1" "" "systemd 214" "systemd-machine-id-setup"
+.TH "SYSTEMD\-MACHINE\-ID\-SETUP" "1" "" "systemd 215" "systemd-machine-id-setup"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-machine-id-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-machine-id-setup — Initialize the machine ID in /etc/machine-id</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-machine-id-setup</code> </p></div></div><div class="refsect1"><a name="idm214197540336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-machine-id-setup</strong></span> may
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-machine-id-setup"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-machine-id-setup — Initialize the machine ID in /etc/machine-id</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-machine-id-setup</code> </p></div></div><div class="refsect1"><a name="idm214188444320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-machine-id-setup</strong></span> may
be used by system installer tools to initialize the
machine ID stored in
<code class="filename">/etc/machine-id</code> at install time
environment and a UUID is set for the container this
is used to initialize the machine ID. For details see
the documentation of the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface" target="_top">Container
- Interface</a>.</p></div><div class="refsect1"><a name="idm214197532208"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--root=root"><span class="term"><code class="option">--root=<em class="replaceable"><code>root</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--root=root">¶</a></dt><dd><p>Takes a directory path
+ Interface</a>.</p></div><div class="refsect1"><a name="idm214188484688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--root=root"><span class="term"><code class="option">--root=<em class="replaceable"><code>root</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--root=root">¶</a></dt><dd><p>Takes a directory path
as an argument. All paths will be
prefixed with the given alternate
<em class="replaceable"><code>root</code></em> path,
including config search paths.
</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197526432"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214201429360"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188478912"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214188437312"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>,
<a href="dbus-uuidgen.html"><span class="citerefentry"><span class="refentrytitle">dbus-uuidgen</span>(1)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-machined.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-machined.service, systemd-machined — Virtual machine and container registration manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-machined.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-machined</code></p></div><div class="refsect1"><a name="idm214195272464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-machined</strong></span> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-machined.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-machined.service, systemd-machined — Virtual machine and container registration manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-machined.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-machined</code></p></div><div class="refsect1"><a name="idm214184685392"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-machined</strong></span> is a
system service that keeps track of virtual machines
and containers, and processes belonging to
them.</p><p>See
way.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/machined" target="_top">
machined D-Bus API Documentation</a> for information about
the APIs <code class="filename">systemd-machined</code>
- provides.</p></div><div class="refsect1"><a name="idm214195294240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214184680320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>.
'\" t
-.TH "SYSTEMD\-MACHINED\&.SERVICE" "8" "" "systemd 214" "systemd-machined.service"
+.TH "SYSTEMD\-MACHINED\&.SERVICE" "8" "" "systemd 215" "systemd-machined.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-machined.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-machined.service, systemd-machined — Virtual machine and container registration manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-machined.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-machined</code></p></div><div class="refsect1"><a name="idm214195272464"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-machined</strong></span> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-machined.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-machined.service, systemd-machined — Virtual machine and container registration manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-machined.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-machined</code></p></div><div class="refsect1"><a name="idm214184685392"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-machined</strong></span> is a
system service that keeps track of virtual machines
and containers, and processes belonging to
them.</p><p>See
way.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/machined" target="_top">
machined D-Bus API Documentation</a> for information about
the APIs <code class="filename">systemd-machined</code>
- provides.</p></div><div class="refsect1"><a name="idm214195294240"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214184680320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>.
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-modules-load.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-modules-load.service, systemd-modules-load — Configure kernel modules to load at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-modules-load.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-modules-load</code></p></div><div class="refsect1"><a name="idm214181802064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-modules-load.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-modules-load.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-modules-load.service, systemd-modules-load — Configure kernel modules to load at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-modules-load.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-modules-load</code></p></div><div class="refsect1"><a name="idm214192618816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-modules-load.service</code>
is an early-boot service that loads kernel modules
from static configuration.</p><p>See
<a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214182445392"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-modules-load.service</code> understands
+ service.</p></div><div class="refsect1"><a name="idm214192643280"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-modules-load.service</code> understands
the following kernel command line parameters:</p><div class="variablelist"><dl class="variablelist"><dt id="modules-load="><span class="term"><code class="varname">modules-load=</code>, </span><span class="term"><code class="varname">rd.modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#modules-load=">¶</a></dt><dd><p>Takes a comma-separated
list of kernel modules to
statically load during early boot. The
option prefixed with
"<code class="literal">rd.</code>" is read by the
initial RAM disk
- only.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183323152"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ only.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188851968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>,
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-MODULES\-LOAD\&.SERVICE" "8" "" "systemd 214" "systemd-modules-load.service"
+.TH "SYSTEMD\-MODULES\-LOAD\&.SERVICE" "8" "" "systemd 215" "systemd-modules-load.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-modules-load.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-modules-load.service, systemd-modules-load — Configure kernel modules to load at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-modules-load.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-modules-load</code></p></div><div class="refsect1"><a name="idm214181802064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-modules-load.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-modules-load.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-modules-load.service, systemd-modules-load — Configure kernel modules to load at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-modules-load.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-modules-load</code></p></div><div class="refsect1"><a name="idm214192618816"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-modules-load.service</code>
is an early-boot service that loads kernel modules
from static configuration.</p><p>See
<a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214182445392"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-modules-load.service</code> understands
+ service.</p></div><div class="refsect1"><a name="idm214192643280"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-modules-load.service</code> understands
the following kernel command line parameters:</p><div class="variablelist"><dl class="variablelist"><dt id="modules-load="><span class="term"><code class="varname">modules-load=</code>, </span><span class="term"><code class="varname">rd.modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#modules-load=">¶</a></dt><dd><p>Takes a comma-separated
list of kernel modules to
statically load during early boot. The
option prefixed with
"<code class="literal">rd.</code>" is read by the
initial RAM disk
- only.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183323152"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ only.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188851968"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>,
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-networkd-wait-online.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd-wait-online.service, systemd-networkd-wait-online — Wait for network to come online</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd-wait-online.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd-wait-online</code></p></div><div class="refsect1"><a name="idm214178785776"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd-wait-online</strong></span> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-networkd-wait-online.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd-wait-online.service, systemd-networkd-wait-online — Wait for network to come online</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd-wait-online.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd-wait-online</code></p></div><div class="refsect1"><a name="idm214180302848"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd-wait-online</strong></span> is a
one-shot system service that waits for the network to be configured.
By default, it will wait for all links it is aware of and which are managed by
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
to be fully configured or failed, and for at least one link to gain a
- carrier.</p></div><div class="refsect1"><a name="idm214181741504"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-i"><span class="term"><code class="option">-i</code>, </span><span class="term"><code class="option">--interface=</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p>Network interface to wait for
+ carrier.</p></div><div class="refsect1"><a name="idm214180299920"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-i"><span class="term"><code class="option">-i</code>, </span><span class="term"><code class="option">--interface=</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p>Network interface to wait for
before deciding if the system is online. This is
useful when a system has several interfaces which
will be configured, but a particular one is necessary
to access some network resources. This option may be
used more than once to wait for multiple network
- interfaces.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177983472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ interfaces.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180295792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-NETWORKD\-WAIT\-ONLINE\&.SERVICE" "8" "" "systemd 214" "systemd-networkd.service"
+.TH "SYSTEMD\-NETWORKD\-WAIT\-ONLINE\&.SERVICE" "8" "" "systemd 215" "systemd-networkd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-networkd-wait-online.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd-wait-online.service, systemd-networkd-wait-online — Wait for network to come online</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd-wait-online.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd-wait-online</code></p></div><div class="refsect1"><a name="idm214178785776"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd-wait-online</strong></span> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-networkd-wait-online.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd-wait-online.service, systemd-networkd-wait-online — Wait for network to come online</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd-wait-online.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd-wait-online</code></p></div><div class="refsect1"><a name="idm214180302848"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd-wait-online</strong></span> is a
one-shot system service that waits for the network to be configured.
By default, it will wait for all links it is aware of and which are managed by
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
to be fully configured or failed, and for at least one link to gain a
- carrier.</p></div><div class="refsect1"><a name="idm214181741504"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-i"><span class="term"><code class="option">-i</code>, </span><span class="term"><code class="option">--interface=</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p>Network interface to wait for
+ carrier.</p></div><div class="refsect1"><a name="idm214180299920"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-i"><span class="term"><code class="option">-i</code>, </span><span class="term"><code class="option">--interface=</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p>Network interface to wait for
before deciding if the system is online. This is
useful when a system has several interfaces which
will be configured, but a particular one is necessary
to access some network resources. This option may be
used more than once to wait for multiple network
- interfaces.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177983472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ interfaces.</p></dd></dl></div></div><div class="refsect1"><a name="idm214180295792"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-networkd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd.service, systemd-networkd — Network manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd</code></p></div><div class="refsect1"><a name="idm214170770320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd</strong></span> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-networkd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd.service, systemd-networkd — Network manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd</code></p></div><div class="refsect1"><a name="idm214195650544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd</strong></span> is a system
service that manages networks. It detects and configures
network devices as they appear, as well as creating virtual
network devices.</p><p>To configure low-level link settings independently of
networkd may also optionally be left in place on shutdown. This ensures
restarting networkd does not cut the network connection, and, in particular,
that it is safe to transition between the initrd and the real root,
- and back.</p></div><div class="refsect1"><a name="idm214170792944"></a><h2 id="Configuration Files">Configuration Files<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Files">¶</a></h2><p>The configuration files are read from the files located in the
+ and back.</p></div><div class="refsect1"><a name="idm214195646336"></a><h2 id="Configuration Files">Configuration Files<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Files">¶</a></h2><p>The configuration files are read from the files located in the
system network directory <code class="filename">/usr/lib/systemd/network</code>,
the volatile runtime network directory
<code class="filename">/run/systemd/network</code> and the local administration
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>,
and virtual network devices are configured in <code class="filename">.netdev</code> files, see
<a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>.
- </p></div><div class="refsect1"><a name="idm214167004496"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214195639536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>,
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-NETWORKD\&.SERVICE" "8" "" "systemd 214" "systemd-networkd.service"
+.TH "SYSTEMD\-NETWORKD\&.SERVICE" "8" "" "systemd 215" "systemd-networkd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-networkd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd.service, systemd-networkd — Network manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd</code></p></div><div class="refsect1"><a name="idm214170770320"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd</strong></span> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-networkd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-networkd.service, systemd-networkd — Network manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-networkd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-networkd</code></p></div><div class="refsect1"><a name="idm214195650544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd</strong></span> is a system
service that manages networks. It detects and configures
network devices as they appear, as well as creating virtual
network devices.</p><p>To configure low-level link settings independently of
networkd may also optionally be left in place on shutdown. This ensures
restarting networkd does not cut the network connection, and, in particular,
that it is safe to transition between the initrd and the real root,
- and back.</p></div><div class="refsect1"><a name="idm214170792944"></a><h2 id="Configuration Files">Configuration Files<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Files">¶</a></h2><p>The configuration files are read from the files located in the
+ and back.</p></div><div class="refsect1"><a name="idm214195646336"></a><h2 id="Configuration Files">Configuration Files<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Files">¶</a></h2><p>The configuration files are read from the files located in the
system network directory <code class="filename">/usr/lib/systemd/network</code>,
the volatile runtime network directory
<code class="filename">/run/systemd/network</code> and the local administration
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>,
and virtual network devices are configured in <code class="filename">.netdev</code> files, see
<a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>.
- </p></div><div class="refsect1"><a name="idm214167004496"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214195639536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>,
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-NOTIFY" "1" "" "systemd 214" "systemd-notify"
+.TH "SYSTEMD\-NOTIFY" "1" "" "systemd 215" "systemd-notify"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-notify"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-notify — Notify service manager about start-up completion and other daemon status changes</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-notify [OPTIONS...] [VARIABLE=VALUE...]</code> </p></div></div><div class="refsect1"><a name="idm214182358912"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-notify</strong></span> may be
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-notify"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-notify — Notify service manager about start-up completion and other daemon status changes</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-notify [OPTIONS...] [VARIABLE=VALUE...]</code> </p></div></div><div class="refsect1"><a name="idm214188130944"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-notify</strong></span> may be
called by daemon scripts to notify the init system
about status changes. It can be used to send arbitrary
information, encoded in an environment-block-like list
update.</p><p>Note that systemd will refuse reception of
status updates from this command unless
<code class="varname">NotifyAccess=all</code> is set for the
- service unit this command is called from.</p></div><div class="refsect1"><a name="idm214182353344"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--ready"><span class="term"><code class="option">--ready</code></span><a class="headerlink" title="Permalink to this term" href="#--ready">¶</a></dt><dd><p>Inform the init system
+ service unit this command is called from.</p></div><div class="refsect1"><a name="idm214188174048"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--ready"><span class="term"><code class="option">--ready</code></span><a class="headerlink" title="Permalink to this term" href="#--ready">¶</a></dt><dd><p>Inform the init system
about service start-up
completion. This is equivalent to
<span class="command"><strong>systemd-notify
"done" or "noreplay". For details
about the semantics of this option see
<a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186238048"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214186236864"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214186236192"></a><p class="title"><b>Example 1. Start-up Notification and Status Updates</b></p><div class="example-contents"><p>A simple shell daemon that sends
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214188240592"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214188239408"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214188238736"></a><p class="title"><b>Example 1. Start-up Notification and Status Updates</b></p><div class="example-contents"><p>A simple shell daemon that sends
start-up notifications after having set up its
communication channel. During runtime it sends
further status updates to the init
# Do something with $a ...
systemd-notify --status="Waiting for data..."
-done</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214186225920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+done</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214188235728"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-NSPAWN" "1" "" "systemd 214" "systemd-nspawn"
+.TH "SYSTEMD\-NSPAWN" "1" "" "systemd 215" "systemd-nspawn"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
As a safety check
\fBsystemd\-nspawn\fR
will verify the existence of
+/usr/lib/os\-release
+or
/etc/os\-release
in the container tree before starting the container (see
\fBos-release\fR(5))\&. It might be necessary to add this file to the container tree manually if the OS of the container is too old to contain this file out\-of\-the\-box\&.
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-nspawn"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-nspawn — Spawn a namespace container for debugging, testing and building</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-nspawn</code> [OPTIONS...] [<em class="replaceable"><code>COMMAND</code></em>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-nspawn"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-nspawn — Spawn a namespace container for debugging, testing and building</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-nspawn</code> [OPTIONS...] [<em class="replaceable"><code>COMMAND</code></em>
[ARGS...]
- ]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-nspawn</code> -b [OPTIONS...] [ARGS...]</p></div></div><div class="refsect1"><a name="idm214177110544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-nspawn</strong></span> may be used to
+ ]</p></div><div class="cmdsynopsis"><p><code class="command">systemd-nspawn</code> -b [OPTIONS...] [ARGS...]</p></div></div><div class="refsect1"><a name="idm214170086240"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-nspawn</strong></span> may be used to
run a command or OS in a light-weight namespace
container. In many ways it is similar to
<a href="chroot.html"><span class="citerefentry"><span class="refentrytitle">chroot</span>(1)</span></a>,
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface" target="_top">Container
Interface</a> specification.</p><p>As a safety check
<span class="command"><strong>systemd-nspawn</strong></span> will verify the
- existence of <code class="filename">/etc/os-release</code> in
- the container tree before starting the container (see
+ existence of <code class="filename">/usr/lib/os-release</code>
+ or <code class="filename">/etc/os-release</code> in the
+ container tree before starting the container (see
<a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>). It
might be necessary to add this file to the container
tree manually if the OS of the container is too old to
- contain this file out-of-the-box.</p></div><div class="refsect1"><a name="idm214180990432"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>If option <code class="option">-b</code> is specified, the
+ contain this file out-of-the-box.</p></div><div class="refsect1"><a name="idm214170139936"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>If option <code class="option">-b</code> is specified, the
arguments are used as arguments for the init
binary. Otherwise, <em class="replaceable"><code>COMMAND</code></em>
specifies the program to launch in the container, and
switch is used, the only output
from nspawn will be the console output
of the container OS itself.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214175953952"></a><h2 id="Example 1">Example 1<a class="headerlink" title="Permalink to this headline" href="#Example%201">¶</a></h2><pre class="programlisting"># yum -y --releasever=19 --nogpg --installroot=/srv/mycontainer --disablerepo='*' --enablerepo=fedora install systemd passwd yum fedora-release vim-minimal
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214165060752"></a><h2 id="Example 1">Example 1<a class="headerlink" title="Permalink to this headline" href="#Example%201">¶</a></h2><pre class="programlisting"># yum -y --releasever=19 --nogpg --installroot=/srv/mycontainer --disablerepo='*' --enablerepo=fedora install systemd passwd yum fedora-release vim-minimal
# systemd-nspawn -bD /srv/mycontainer</pre><p>This installs a minimal Fedora distribution into
the directory <code class="filename">/srv/mycontainer/</code> and
then boots an OS in a namespace container in
- it.</p></div><div class="refsect1"><a name="idm214175950912"></a><h2 id="Example 2">Example 2<a class="headerlink" title="Permalink to this headline" href="#Example%202">¶</a></h2><pre class="programlisting"># debootstrap --arch=amd64 unstable ~/debian-tree/
+ it.</p></div><div class="refsect1"><a name="idm214165057712"></a><h2 id="Example 2">Example 2<a class="headerlink" title="Permalink to this headline" href="#Example%202">¶</a></h2><pre class="programlisting"># debootstrap --arch=amd64 unstable ~/debian-tree/
# systemd-nspawn -D ~/debian-tree/</pre><p>This installs a minimal Debian unstable
distribution into the directory
<code class="filename">~/debian-tree/</code> and then spawns a
- shell in a namespace container in it.</p></div><div class="refsect1"><a name="idm214175948192"></a><h2 id="Example 3">Example 3<a class="headerlink" title="Permalink to this headline" href="#Example%203">¶</a></h2><pre class="programlisting"># pacstrap -c -d ~/arch-tree/ base
+ shell in a namespace container in it.</p></div><div class="refsect1"><a name="idm214165054992"></a><h2 id="Example 3">Example 3<a class="headerlink" title="Permalink to this headline" href="#Example%203">¶</a></h2><pre class="programlisting"># pacstrap -c -d ~/arch-tree/ base
# systemd-nspawn -bD ~/arch-tree/</pre><p>This installs a mimimal Arch Linux distribution into
the directory <code class="filename">~/arch-tree/</code> and then
- boots an OS in a namespace container in it.</p></div><div class="refsect1"><a name="idm214175945696"></a><h2 id="Example 4">Example 4<a class="headerlink" title="Permalink to this headline" href="#Example%204">¶</a></h2><pre class="programlisting"># mv ~/arch-tree /var/lib/container/arch
+ boots an OS in a namespace container in it.</p></div><div class="refsect1"><a name="idm214165052496"></a><h2 id="Example 4">Example 4<a class="headerlink" title="Permalink to this headline" href="#Example%204">¶</a></h2><pre class="programlisting"># mv ~/arch-tree /var/lib/container/arch
# systemctl enable systemd-nspawn@arch.service
# systemctl start systemd-nspawn@arch.service</pre><p>This makes the Arch Linux container part of the
<code class="filename">multi-user.target</code> on the host.
- </p></div><div class="refsect1"><a name="idm214175943152"></a><h2 id="Example 5">Example 5<a class="headerlink" title="Permalink to this headline" href="#Example%205">¶</a></h2><pre class="programlisting"># btrfs subvolume snapshot / /.tmp
+ </p></div><div class="refsect1"><a name="idm214165049952"></a><h2 id="Example 5">Example 5<a class="headerlink" title="Permalink to this headline" href="#Example%205">¶</a></h2><pre class="programlisting"># btrfs subvolume snapshot / /.tmp
# systemd-nspawn --private-network -D /.tmp -b</pre><p>This runs a copy of the host system in a
- btrfs snapshot.</p></div><div class="refsect1"><a name="idm214175941184"></a><h2 id="Example 6">Example 6<a class="headerlink" title="Permalink to this headline" href="#Example%206">¶</a></h2><pre class="programlisting"># chcon system_u:object_r:svirt_sandbox_file_t:s0:c0,c1 -R /srv/container
-# systemd-nspawn -L system_u:object_r:svirt_sandbox_file_t:s0:c0,c1 -Z system_u:system_r:svirt_lxc_net_t:s0:c0,c1 -D /srv/container /bin/sh</pre><p>This runs a container with SELinux sandbox security contexts.</p></div><div class="refsect1"><a name="idm214175939184"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>The exit code of the program executed in the
- container is returned.</p></div><div class="refsect1"><a name="idm214175937936"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ btrfs snapshot.</p></div><div class="refsect1"><a name="idm214165047984"></a><h2 id="Example 6">Example 6<a class="headerlink" title="Permalink to this headline" href="#Example%206">¶</a></h2><pre class="programlisting"># chcon system_u:object_r:svirt_sandbox_file_t:s0:c0,c1 -R /srv/container
+# systemd-nspawn -L system_u:object_r:svirt_sandbox_file_t:s0:c0,c1 -Z system_u:system_r:svirt_lxc_net_t:s0:c0,c1 -D /srv/container /bin/sh</pre><p>This runs a container with SELinux sandbox security contexts.</p></div><div class="refsect1"><a name="idm214165045984"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>The exit code of the program executed in the
+ container is returned.</p></div><div class="refsect1"><a name="idm214165044736"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="chroot.html"><span class="citerefentry"><span class="refentrytitle">chroot</span>(1)</span></a>,
<a href="yum.html"><span class="citerefentry"><span class="refentrytitle">yum</span>(8)</span></a>,
<para>As a safety check
<command>systemd-nspawn</command> will verify the
- existence of <filename>/etc/os-release</filename> in
- the container tree before starting the container (see
+ existence of <filename>/usr/lib/os-release</filename>
+ or <filename>/etc/os-release</filename> in the
+ container tree before starting the container (see
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>). It
might be necessary to add this file to the container
tree manually if the OS of the container is too old to
--- /dev/null
+'\" t
+.TH "SYSTEMD\-PATH" "1" "" "systemd 215" "systemd-path"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+systemd-path \- List and query system and user paths
+.SH "SYNOPSIS"
+.HP \w'\fBsystemd\-path\ \fR\fB[OPTIONS...]\fR\fB\ \fR\fB[NAME...]\fR\ 'u
+\fBsystemd\-path \fR\fB[OPTIONS...]\fR\fB \fR\fB[NAME...]\fR
+.SH "DESCRIPTION"
+.PP
+\fBsystemd\-path\fR
+may be used to query system and user paths\&. The tool makes many of the paths described in
+\fBfile-hierarchy\fR(7)
+queriable\&.
+.PP
+When invoked without arguments a list of known paths and their current values is shown\&. When at least one argument is passed the path with this is name is queried and its value shown\&. The variables whose name begins with
+"search\-"
+don\*(Aqt refer to individual paths, but instead a to a list of colon\-separated search paths, in their order of precedence\&.
+.SH "OPTIONS"
+.PP
+The following options are understood:
+.PP
+\fB\-\-suffix=\fR
+.RS 4
+The printed paths are suffixed by the specified string\&.
+.RE
+.PP
+\fB\-h\fR, \fB\-\-help\fR
+.RS 4
+Print a short help text and exit\&.
+.RE
+.PP
+\fB\-\-version\fR
+.RS 4
+Print a short version string and exit\&.
+.RE
+.SH "EXIT STATUS"
+.PP
+On success, 0 is returned, a non\-zero failure code otherwise\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBfile-hierarchy\fR(7)
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-path</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-path"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-path — List and query system and user paths</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-path [OPTIONS...] [NAME...]</code> </p></div></div><div class="refsect1"><a name="idm214172603008"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-path</strong></span> may be used to
+ query system and user paths. The tool makes many of
+ the paths described in
+ <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>
+ queriable.</p><p>When invoked without arguments a list of known
+ paths and their current values is shown. When at least
+ one argument is passed the path with this is name is
+ queried and its value shown. The variables whose name
+ begins with "<code class="literal">search-</code>" don't refer to
+ individual paths, but instead a to a list of
+ colon-separated search paths, in their order of
+ precedence.</p></div><div class="refsect1"><a name="idm214172598688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--suffix="><span class="term"><code class="option">--suffix=</code></span><a class="headerlink" title="Permalink to this term" href="#--suffix=">¶</a></dt><dd><p>The printed paths are
+ suffixed by the specified
+ string.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172642528"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214172641344"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="systemd-path"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>systemd-path</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd-path</refentrytitle>
+ <manvolnum>1</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd-path</refname>
+ <refpurpose>List and query system and user paths</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>systemd-path <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">NAME</arg></command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>systemd-path</command> may be used to
+ query system and user paths. The tool makes many of
+ the paths described in
+ <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ queriable.</para>
+
+ <para>When invoked without arguments a list of known
+ paths and their current values is shown. When at least
+ one argument is passed the path with this is name is
+ queried and its value shown. The variables whose name
+ begins with <literal>search-</literal> don't refer to
+ individual paths, but instead a to a list of
+ colon-separated search paths, in their order of
+ precedence.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>The following options are understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>--suffix=</option></term>
+
+ <listitem><para>The printed paths are
+ suffixed by the specified
+ string.</para></listitem>
+ </varlistentry>
+
+ <xi:include href="standard-options.xml" xpointer="help" />
+ <xi:include href="standard-options.xml" xpointer="version" />
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Exit status</title>
+
+ <para>On success, 0 is returned, a non-zero failure
+ code otherwise.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214170881184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214183037312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
system service that is pulled in by
<code class="filename">halt.target</code> and is responsible
for the actual system halt. Similarly,
related units) should never be executed
directly. Instead, trigger system shutdown with a
command such as "<code class="literal">systemctl halt</code>" or
- suchlike.</p></div><div class="refsect1"><a name="idm214167153872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ suchlike.</p></div><div class="refsect1"><a name="idm214183155536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-quotacheck.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-quotacheck.service, systemd-quotacheck — File system quota checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-quotacheck.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-quotacheck</code></p></div><div class="refsect1"><a name="idm214199077776"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-quotacheck.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-quotacheck.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-quotacheck.service, systemd-quotacheck — File system quota checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-quotacheck.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-quotacheck</code></p></div><div class="refsect1"><a name="idm214197247856"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-quotacheck.service</code>
is a service responsible for file system quota
checks. It is run once at boot after all necessary
file systems are mounted. It is pulled in only if at
- least one file system has quotas enabled.</p></div><div class="refsect1"><a name="idm214199074896"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-quotacheck</code> understands
+ least one file system has quotas enabled.</p></div><div class="refsect1"><a name="idm214197245824"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-quotacheck</code> understands
one kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="quotacheck.mode="><span class="term"><code class="varname">quotacheck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#quotacheck.mode=">¶</a></dt><dd><p>One of
"<code class="literal">auto</code>",
"<code class="literal">force</code>",
system quota
checks. "<code class="literal">skip</code>" skips
any file system quota
- checks.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195312016"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ checks.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197237024"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="quotacheck.html"><span class="citerefentry"><span class="refentrytitle">quotacheck</span>(8)</span></a>,
<a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-QUOTACHECK\&.SERVICE" "8" "" "systemd 214" "systemd-quotacheck.service"
+.TH "SYSTEMD\-QUOTACHECK\&.SERVICE" "8" "" "systemd 215" "systemd-quotacheck.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-quotacheck.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-quotacheck.service, systemd-quotacheck — File system quota checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-quotacheck.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-quotacheck</code></p></div><div class="refsect1"><a name="idm214199077776"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-quotacheck.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-quotacheck.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-quotacheck.service, systemd-quotacheck — File system quota checker logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-quotacheck.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-quotacheck</code></p></div><div class="refsect1"><a name="idm214197247856"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-quotacheck.service</code>
is a service responsible for file system quota
checks. It is run once at boot after all necessary
file systems are mounted. It is pulled in only if at
- least one file system has quotas enabled.</p></div><div class="refsect1"><a name="idm214199074896"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-quotacheck</code> understands
+ least one file system has quotas enabled.</p></div><div class="refsect1"><a name="idm214197245824"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-quotacheck</code> understands
one kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="quotacheck.mode="><span class="term"><code class="varname">quotacheck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#quotacheck.mode=">¶</a></dt><dd><p>One of
"<code class="literal">auto</code>",
"<code class="literal">force</code>",
system quota
checks. "<code class="literal">skip</code>" skips
any file system quota
- checks.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195312016"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ checks.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197237024"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="quotacheck.html"><span class="citerefentry"><span class="refentrytitle">quotacheck</span>(8)</span></a>,
<a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-random-seed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-random-seed.service, systemd-random-seed — Load and save the system random seed at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-random-seed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-random-seed</code></p></div><div class="refsect1"><a name="idm214201252752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-random-seed.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-random-seed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-random-seed.service, systemd-random-seed — Load and save the system random seed at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-random-seed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-random-seed</code></p></div><div class="refsect1"><a name="idm214168092576"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-random-seed.service</code>
is a service that restores the random seed of the
system at early-boot and saves it at shutdown. See
<a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a>
for details. Saving/restoring the random seed across
boots increases the amount of available entropy early
at boot. On disk the random seed is stored in
- <code class="filename">/var/lib/systemd/random-seed</code>.</p></div><div class="refsect1"><a name="idm214201275728"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="filename">/var/lib/systemd/random-seed</code>.</p></div><div class="refsect1"><a name="idm214168088912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-RANDOM\-SEED\&.SERVICE" "8" "" "systemd 214" "systemd-random-seed.service"
+.TH "SYSTEMD\-RANDOM\-SEED\&.SERVICE" "8" "" "systemd 215" "systemd-random-seed.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-random-seed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-random-seed.service, systemd-random-seed — Load and save the system random seed at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-random-seed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-random-seed</code></p></div><div class="refsect1"><a name="idm214201252752"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-random-seed.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-random-seed.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-random-seed.service, systemd-random-seed — Load and save the system random seed at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-random-seed.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-random-seed</code></p></div><div class="refsect1"><a name="idm214168092576"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-random-seed.service</code>
is a service that restores the random seed of the
system at early-boot and saves it at shutdown. See
<a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a>
for details. Saving/restoring the random seed across
boots increases the amount of available entropy early
at boot. On disk the random seed is stored in
- <code class="filename">/var/lib/systemd/random-seed</code>.</p></div><div class="refsect1"><a name="idm214201275728"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="filename">/var/lib/systemd/random-seed</code>.</p></div><div class="refsect1"><a name="idm214168088912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214173363184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214193075936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
is a service that collects disk usage patterns at boot
time. <code class="filename">systemd-readahead-replay.service</code>
is a service that replays this access data collected
it,
<code class="filename">systemd-readahead-collect.service</code>
will also defragment and rearrange files on disk to
- optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214173352320"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
+ optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214197017776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
the following options:</p><div class="variablelist"><dl class="variablelist"><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p>Maximum number of
files to read ahead. Only valid
for thes <span class="command"><strong>collect</strong></span>
to spend collecting data. Only valid
for the <span class="command"><strong>collect</strong></span>
command.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177240336"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197006432"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
<code class="filename">systemd-readahead</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="collect
[DIRECTORY]"><span class="term"><span class="command"><strong>collect
[<em class="replaceable"><code>DIRECTORY</code></em>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#collect%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BDIRECTORY%5D">¶</a></dt><dd><p>Collect read-ahead data on
output lists approximately how
much will be read ahead by
the <span class="command"><strong>replay</strong></span>
- command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177222208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196988320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214173363184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214193075936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
is a service that collects disk usage patterns at boot
time. <code class="filename">systemd-readahead-replay.service</code>
is a service that replays this access data collected
it,
<code class="filename">systemd-readahead-collect.service</code>
will also defragment and rearrange files on disk to
- optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214173352320"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
+ optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214197017776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
the following options:</p><div class="variablelist"><dl class="variablelist"><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p>Maximum number of
files to read ahead. Only valid
for thes <span class="command"><strong>collect</strong></span>
to spend collecting data. Only valid
for the <span class="command"><strong>collect</strong></span>
command.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177240336"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197006432"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
<code class="filename">systemd-readahead</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="collect
[DIRECTORY]"><span class="term"><span class="command"><strong>collect
[<em class="replaceable"><code>DIRECTORY</code></em>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#collect%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BDIRECTORY%5D">¶</a></dt><dd><p>Collect read-ahead data on
output lists approximately how
much will be read ahead by
the <span class="command"><strong>replay</strong></span>
- command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177222208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196988320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214173363184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214193075936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
is a service that collects disk usage patterns at boot
time. <code class="filename">systemd-readahead-replay.service</code>
is a service that replays this access data collected
it,
<code class="filename">systemd-readahead-collect.service</code>
will also defragment and rearrange files on disk to
- optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214173352320"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
+ optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214197017776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
the following options:</p><div class="variablelist"><dl class="variablelist"><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p>Maximum number of
files to read ahead. Only valid
for thes <span class="command"><strong>collect</strong></span>
to spend collecting data. Only valid
for the <span class="command"><strong>collect</strong></span>
command.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177240336"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197006432"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
<code class="filename">systemd-readahead</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="collect
[DIRECTORY]"><span class="term"><span class="command"><strong>collect
[<em class="replaceable"><code>DIRECTORY</code></em>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#collect%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BDIRECTORY%5D">¶</a></dt><dd><p>Collect read-ahead data on
output lists approximately how
much will be read ahead by
the <span class="command"><strong>replay</strong></span>
- command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177222208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196988320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-READAHEAD\-REPLAY\&.SERVICE" "8" "" "systemd 214" "systemd-readahead-replay.service"
+.TH "SYSTEMD\-READAHEAD\-REPLAY\&.SERVICE" "8" "" "systemd 215" "systemd-readahead-replay.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214173363184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214193075936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
is a service that collects disk usage patterns at boot
time. <code class="filename">systemd-readahead-replay.service</code>
is a service that replays this access data collected
it,
<code class="filename">systemd-readahead-collect.service</code>
will also defragment and rearrange files on disk to
- optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214173352320"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
+ optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214197017776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
the following options:</p><div class="variablelist"><dl class="variablelist"><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p>Maximum number of
files to read ahead. Only valid
for thes <span class="command"><strong>collect</strong></span>
to spend collecting data. Only valid
for the <span class="command"><strong>collect</strong></span>
command.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177240336"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197006432"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
<code class="filename">systemd-readahead</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="collect
[DIRECTORY]"><span class="term"><span class="command"><strong>collect
[<em class="replaceable"><code>DIRECTORY</code></em>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#collect%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BDIRECTORY%5D">¶</a></dt><dd><p>Collect read-ahead data on
output lists approximately how
much will be read ahead by
the <span class="command"><strong>replay</strong></span>
- command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177222208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196988320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214173363184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-readahead-replay.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer, systemd-readahead — Disk read ahead logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-readahead-replay.service</code></p><p><code class="filename">systemd-readahead-collect.service</code></p><p><code class="filename">systemd-readahead-done.service</code></p><p><code class="filename">systemd-readahead-done.timer</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-readahead/systemd-readahead</code> [OPTIONS...] COMMAND [DIRECTORY | FILE]</p></div></div><div class="refsect1"><a name="idm214193075936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-readahead-collect.service</code>
is a service that collects disk usage patterns at boot
time. <code class="filename">systemd-readahead-replay.service</code>
is a service that replays this access data collected
it,
<code class="filename">systemd-readahead-collect.service</code>
will also defragment and rearrange files on disk to
- optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214173352320"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
+ optimize subsequent boot times.</p></div><div class="refsect1"><a name="idm214197017776"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><code class="filename">systemd-readahead</code> understands
the following options:</p><div class="variablelist"><dl class="variablelist"><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p>Maximum number of
files to read ahead. Only valid
for thes <span class="command"><strong>collect</strong></span>
to spend collecting data. Only valid
for the <span class="command"><strong>collect</strong></span>
command.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177240336"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214197006432"></a><h2 id="Commands">Commands<a class="headerlink" title="Permalink to this headline" href="#Commands">¶</a></h2><p>The following commands are understood by
<code class="filename">systemd-readahead</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="collect
[DIRECTORY]"><span class="term"><span class="command"><strong>collect
[<em class="replaceable"><code>DIRECTORY</code></em>]</strong></span></span><a class="headerlink" title="Permalink to this term" href="#collect%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BDIRECTORY%5D">¶</a></dt><dd><p>Collect read-ahead data on
output lists approximately how
much will be read ahead by
the <span class="command"><strong>replay</strong></span>
- command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177222208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ command.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196988320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214170881184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214183037312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
system service that is pulled in by
<code class="filename">halt.target</code> and is responsible
for the actual system halt. Similarly,
related units) should never be executed
directly. Instead, trigger system shutdown with a
command such as "<code class="literal">systemctl halt</code>" or
- suchlike.</p></div><div class="refsect1"><a name="idm214167153872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ suchlike.</p></div><div class="refsect1"><a name="idm214183155536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-remount-fs.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-remount-fs.service, systemd-remount-fs — Remount root and kernel file systems</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-remount-fs.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-remount-fs</code></p></div><div class="refsect1"><a name="idm214173684336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-remount-fs.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-remount-fs.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-remount-fs.service, systemd-remount-fs — Remount root and kernel file systems</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-remount-fs.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-remount-fs</code></p></div><div class="refsect1"><a name="idm214192871296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-remount-fs.service</code>
is an early-boot service that applies mount options
listed in
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>
exist or lists no entries for the mentioned file
systems.</p><p>For a longer discussion of kernel API file
systems see <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems" target="_top">API
- File Systems</a>.</p></div><div class="refsect1"><a name="idm214173674416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ File Systems</a>.</p></div><div class="refsect1"><a name="idm214192910144"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>,
<a href="mount.html"><span class="citerefentry"><span class="refentrytitle">mount</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-REMOUNT\-FS\&.SERVICE" "8" "" "systemd 214" "systemd-remount-fs.service"
+.TH "SYSTEMD\-REMOUNT\-FS\&.SERVICE" "8" "" "systemd 215" "systemd-remount-fs.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-remount-fs.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-remount-fs.service, systemd-remount-fs — Remount root and kernel file systems</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-remount-fs.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-remount-fs</code></p></div><div class="refsect1"><a name="idm214173684336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-remount-fs.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-remount-fs.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-remount-fs.service, systemd-remount-fs — Remount root and kernel file systems</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-remount-fs.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-remount-fs</code></p></div><div class="refsect1"><a name="idm214192871296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-remount-fs.service</code>
is an early-boot service that applies mount options
listed in
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>
exist or lists no entries for the mentioned file
systems.</p><p>For a longer discussion of kernel API file
systems see <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems" target="_top">API
- File Systems</a>.</p></div><div class="refsect1"><a name="idm214173674416"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ File Systems</a>.</p></div><div class="refsect1"><a name="idm214192910144"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>,
<a href="mount.html"><span class="citerefentry"><span class="refentrytitle">mount</span>(8)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-resolved.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-resolved.service, systemd-resolved — Network Name Resolution manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-resolved.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-resolved</code></p></div><div class="refsect1"><a name="idm214168023120"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd</strong></span> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-resolved.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-resolved.service, systemd-resolved — Network Name Resolution manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-resolved.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-resolved</code></p></div><div class="refsect1"><a name="idm214173999872"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-resolved</strong></span> is a system
service that manages network name resolution. It does so by
- generating <code class="filename">/run/systemd/resolve/resolv.conf</code>,
- which may be symlinked from <code class="filename">/etc/resolv.conf</code>.
- The contents is generated from the global settings in
+ generating <code class="filename">/run/systemd/resolve/resolv.conf</code>,
+ which may be symlinked from <code class="filename">/etc/resolv.conf</code>.
+ The contents is generated from the global settings in
<a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>,
- the per-link static settings in <code class="filename">.network</code> files,
- and the per-link dynamic settings received over DHCP. See
+ the per-link static settings in <code class="filename">.network</code> files,
+ and the per-link dynamic settings received over DHCP. See
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>
- for more details.</p><p>Note that <code class="filename">/run/systemd/resolve/resolv.conf</code>
+ for more details.</p><p>Note that <code class="filename">/run/systemd/resolve/resolv.conf</code>
should not be used directly, but only through a symlink from
- <code class="filename">/etc/resolv.conf</code>.</p></div><div class="refsect1"><a name="idm214169575648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
- <a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>,
+ <code class="filename">/etc/resolv.conf</code>.</p></div><div class="refsect1"><a name="idm214173992080"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>,
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>,
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-RESOLVED\&.SERVICE" "8" "" "systemd 214" "systemd-resolved.service"
+.TH "SYSTEMD\-RESOLVED\&.SERVICE" "8" "" "systemd 215" "systemd-resolved.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
/usr/lib/systemd/systemd\-resolved
.SH "DESCRIPTION"
.PP
-\fBsystemd\-networkd\fR
+\fBsystemd\-resolved\fR
is a system service that manages network name resolution\&. It does so by generating
/run/systemd/resolve/resolv\&.conf, which may be symlinked from
/etc/resolv\&.conf\&. The contents is generated from the global settings in
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-resolved.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-resolved.service, systemd-resolved — Network Name Resolution manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-resolved.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-resolved</code></p></div><div class="refsect1"><a name="idm214168023120"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-networkd</strong></span> is a system
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-resolved.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-resolved.service, systemd-resolved — Network Name Resolution manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-resolved.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-resolved</code></p></div><div class="refsect1"><a name="idm214173999872"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-resolved</strong></span> is a system
service that manages network name resolution. It does so by
- generating <code class="filename">/run/systemd/resolve/resolv.conf</code>,
- which may be symlinked from <code class="filename">/etc/resolv.conf</code>.
- The contents is generated from the global settings in
+ generating <code class="filename">/run/systemd/resolve/resolv.conf</code>,
+ which may be symlinked from <code class="filename">/etc/resolv.conf</code>.
+ The contents is generated from the global settings in
<a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>,
- the per-link static settings in <code class="filename">.network</code> files,
- and the per-link dynamic settings received over DHCP. See
+ the per-link static settings in <code class="filename">.network</code> files,
+ and the per-link dynamic settings received over DHCP. See
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>
- for more details.</p><p>Note that <code class="filename">/run/systemd/resolve/resolv.conf</code>
+ for more details.</p><p>Note that <code class="filename">/run/systemd/resolve/resolv.conf</code>
should not be used directly, but only through a symlink from
- <code class="filename">/etc/resolv.conf</code>.</p></div><div class="refsect1"><a name="idm214169575648"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
- <a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>,
+ <code class="filename">/etc/resolv.conf</code>.</p></div><div class="refsect1"><a name="idm214173992080"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>,
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>,
<a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>
<refsect1>
<title>Description</title>
- <para><command>systemd-networkd</command> is a system
+ <para><command>systemd-resolved</command> is a system
service that manages network name resolution. It does so by
- generating <filename>/run/systemd/resolve/resolv.conf</filename>,
- which may be symlinked from <filename>/etc/resolv.conf</filename>.
- The contents is generated from the global settings in
+ generating <filename>/run/systemd/resolve/resolv.conf</filename>,
+ which may be symlinked from <filename>/etc/resolv.conf</filename>.
+ The contents is generated from the global settings in
<citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- the per-link static settings in <filename>.network</filename> files,
- and the per-link dynamic settings received over DHCP. See
+ the per-link static settings in <filename>.network</filename> files,
+ and the per-link dynamic settings received over DHCP. See
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for more details.</para>
+ for more details.</para>
<para>Note that <filename>/run/systemd/resolve/resolv.conf</filename>
should not be used directly, but only through a symlink from
- <filename>/etc/resolv.conf</filename>.</para>
+ <filename>/etc/resolv.conf</filename>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
- <citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-rfkill@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-rfkill@.service, systemd-rfkill — Load and save the RF kill switch state at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-rfkill@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-rfkill</code></p></div><div class="refsect1"><a name="idm214196629584"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-rfkill@.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-rfkill@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-rfkill@.service, systemd-rfkill — Load and save the RF kill switch state at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-rfkill@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-rfkill</code></p></div><div class="refsect1"><a name="idm214183154400"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-rfkill@.service</code> is
a service that restores the RF kill switch state at
early boot and saves it at shutdown. On disk, the RF
kill switch state is stored in
- <code class="filename">/var/lib/systemd/rfkill/</code>.</p></div><div class="refsect1"><a name="idm214197137728"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-rfkill</code> understands
+ <code class="filename">/var/lib/systemd/rfkill/</code>.</p></div><div class="refsect1"><a name="idm214183151840"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-rfkill</code> understands
the following kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p>Takes a boolean
argument. Defaults to
"<code class="literal">1</code>". If
"<code class="literal">0</code>", does not restore
the rfkill settings on boot. However,
settings will still be stored on shutdown.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214195708208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214183146256"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-RFKILL@\&.SERVICE" "8" "" "systemd 214" "systemd-rfkill@.service"
+.TH "SYSTEMD\-RFKILL@\&.SERVICE" "8" "" "systemd 215" "systemd-rfkill@.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-rfkill@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-rfkill@.service, systemd-rfkill — Load and save the RF kill switch state at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-rfkill@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-rfkill</code></p></div><div class="refsect1"><a name="idm214196629584"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-rfkill@.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-rfkill@.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-rfkill@.service, systemd-rfkill — Load and save the RF kill switch state at boot and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-rfkill@.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-rfkill</code></p></div><div class="refsect1"><a name="idm214183154400"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-rfkill@.service</code> is
a service that restores the RF kill switch state at
early boot and saves it at shutdown. On disk, the RF
kill switch state is stored in
- <code class="filename">/var/lib/systemd/rfkill/</code>.</p></div><div class="refsect1"><a name="idm214197137728"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-rfkill</code> understands
+ <code class="filename">/var/lib/systemd/rfkill/</code>.</p></div><div class="refsect1"><a name="idm214183151840"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p><code class="filename">systemd-rfkill</code> understands
the following kernel command line parameter:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p>Takes a boolean
argument. Defaults to
"<code class="literal">1</code>". If
"<code class="literal">0</code>", does not restore
the rfkill settings on boot. However,
settings will still be stored on shutdown.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214195708208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214183146256"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-RUN" "1" "" "systemd 214" "systemd-run"
+.TH "SYSTEMD\-RUN" "1" "" "systemd 215" "systemd-run"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-run"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-run — Run programs in transient scope or service units</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-run</code> [OPTIONS...] <em class="replaceable"><code>COMMAND</code></em>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-run"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-run — Run programs in transient scope or service units</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-run</code> [OPTIONS...] <em class="replaceable"><code>COMMAND</code></em>
[ARGS...]
- </p></div></div><div class="refsect1"><a name="idm214170655408"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-run</strong></span> may be used to create and start
+ </p></div></div><div class="refsect1"><a name="idm214192991536"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-run</strong></span> may be used to create and start
a transient <code class="filename">.service</code> or a
<code class="filename">.scope</code> unit and run the specified
<em class="replaceable"><code>COMMAND</code></em> in it.</p><p>If a command is run as transient service unit, it will be
managed by the service manager similar to normal services, and
will also show up in the output of <span class="command"><strong>systemctl
list-units</strong></span>. Execution in this case is synchronous, and
- execution will return only when the command finishes.</p></div><div class="refsect1"><a name="idm214170647616"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--scope"><span class="term"><code class="option">--scope</code></span><a class="headerlink" title="Permalink to this term" href="#--scope">¶</a></dt><dd><p>Create a transient <code class="filename">.scope</code> unit instead of
+ execution will return only when the command finishes.</p></div><div class="refsect1"><a name="idm214193032512"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--scope"><span class="term"><code class="option">--scope</code></span><a class="headerlink" title="Permalink to this term" href="#--scope">¶</a></dt><dd><p>Create a transient <code class="filename">.scope</code> unit instead of
the default transient <code class="filename">.service</code> unit.
</p></dd><dt id="--unit="><span class="term"><code class="option">--unit=</code></span><a class="headerlink" title="Permalink to this term" href="#--unit=">¶</a></dt><dd><p>Use this unit name instead of an automatically
generated one.</p></dd><dt id="--property="><span class="term"><code class="option">--property=</code>, </span><span class="term"><code class="option">-p</code></span><a class="headerlink" title="Permalink to this term" href="#--property=">¶</a></dt><dd><p>Sets a unit property for the scope or service
<code class="varname">Environment=</code> in
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>.</p></dd><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="#--user">¶</a></dt><dd><p><a name="user-text"></a>Talk to the service manager of the calling user,
rather than the service manager of the system.</p></dd><dt id="--system"><span class="term"><code class="option">--system</code></span><a class="headerlink" title="Permalink to this term" href="#--system">¶</a></dt><dd><p><a name="system-text"></a>Talk to the service manager of the system. This is the
- implied default.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ implied default.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div><p>All command-line arguments after the first non-option
argument become part of the commandline of the launched
process. If a command is run as service unit, its first argument
- needs to be an absolute binary path.</p></div><div class="refsect1"><a name="idm214174502736"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214174501552"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following command will log the environment variables
+ needs to be an absolute binary path.</p></div><div class="refsect1"><a name="idm214193069376"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214193068192"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>The following command will log the environment variables
provided by systemd to services:</p><pre class="programlisting"># systemd-run env
Running as unit run-19945.service.
# journalctl -u run-19945.service
tool, but lowers the block IO weight for it to 10. See
<a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>
for more information on the <code class="varname">BlockIOWeight=</code>
- property.</p><pre class="programlisting"># systemd-run -p BlockIOWeight=10 updatedb</pre></div><div class="refsect1"><a name="idm214169581328"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ property.</p><pre class="programlisting"># systemd-run -p BlockIOWeight=10 updatedb</pre></div><div class="refsect1"><a name="idm214188097824"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214170881184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-halt.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — System shutdown logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-halt.service</code></p><p><code class="filename">systemd-poweroff.service</code></p><p><code class="filename">systemd-reboot.service</code></p><p><code class="filename">systemd-kexec.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdown</code></p></div><div class="refsect1"><a name="idm214183037312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-halt.service</code> is a
system service that is pulled in by
<code class="filename">halt.target</code> and is responsible
for the actual system halt. Similarly,
related units) should never be executed
directly. Instead, trigger system shutdown with a
command such as "<code class="literal">systemctl halt</code>" or
- suchlike.</p></div><div class="refsect1"><a name="idm214167153872"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ suchlike.</p></div><div class="refsect1"><a name="idm214183155536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-shutdownd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-shutdownd.service, systemd-shutdownd.socket, systemd-shutdownd — Scheduled shutdown service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-shutdownd.service</code></p><p><code class="filename">systemd-shutdownd.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></p></div><div class="refsect1"><a name="idm214197386624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-shutdownd.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-shutdownd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-shutdownd.service, systemd-shutdownd.socket, systemd-shutdownd — Scheduled shutdown service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-shutdownd.service</code></p><p><code class="filename">systemd-shutdownd.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></p></div><div class="refsect1"><a name="idm214188139152"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-shutdownd.service</code> is a
system service that implements scheduled shutdowns, as
exposed by
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>.
<code class="filename">systemd-shutdownd.service</code> is automatically activated on request and terminates
- itself when it is unused.</p></div><div class="refsect1"><a name="idm214197383072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself when it is unused.</p></div><div class="refsect1"><a name="idm214188135600"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-SHUTDOWND\&.SERVICE" "8" "" "systemd 214" "systemd-shutdownd.service"
+.TH "SYSTEMD\-SHUTDOWND\&.SERVICE" "8" "" "systemd 215" "systemd-shutdownd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-shutdownd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-shutdownd.service, systemd-shutdownd.socket, systemd-shutdownd — Scheduled shutdown service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-shutdownd.service</code></p><p><code class="filename">systemd-shutdownd.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></p></div><div class="refsect1"><a name="idm214197386624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-shutdownd.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-shutdownd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-shutdownd.service, systemd-shutdownd.socket, systemd-shutdownd — Scheduled shutdown service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-shutdownd.service</code></p><p><code class="filename">systemd-shutdownd.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></p></div><div class="refsect1"><a name="idm214188139152"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-shutdownd.service</code> is a
system service that implements scheduled shutdowns, as
exposed by
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>.
<code class="filename">systemd-shutdownd.service</code> is automatically activated on request and terminates
- itself when it is unused.</p></div><div class="refsect1"><a name="idm214197383072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself when it is unused.</p></div><div class="refsect1"><a name="idm214188135600"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-shutdownd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-shutdownd.service, systemd-shutdownd.socket, systemd-shutdownd — Scheduled shutdown service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-shutdownd.service</code></p><p><code class="filename">systemd-shutdownd.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></p></div><div class="refsect1"><a name="idm214197386624"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-shutdownd.service</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-shutdownd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-shutdownd.service, systemd-shutdownd.socket, systemd-shutdownd — Scheduled shutdown service</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-shutdownd.service</code></p><p><code class="filename">systemd-shutdownd.socket</code></p><p><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></p></div><div class="refsect1"><a name="idm214188139152"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-shutdownd.service</code> is a
system service that implements scheduled shutdowns, as
exposed by
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>.
<code class="filename">systemd-shutdownd.service</code> is automatically activated on request and terminates
- itself when it is unused.</p></div><div class="refsect1"><a name="idm214197383072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself when it is unused.</p></div><div class="refsect1"><a name="idm214188135600"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-SLEEP\&.CONF" "5" "" "systemd 214" "systemd-sleep.conf"
+.TH "SYSTEMD\-SLEEP\&.CONF" "5" "" "systemd 215" "systemd-sleep.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-sleep.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sleep.conf — Suspend and hibernation configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/sleep.conf</code></p></div><div class="refsect1"><a name="idm214182902160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd</strong></span> supports three general
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-sleep.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sleep.conf — Suspend and hibernation configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/sleep.conf</code></p></div><div class="refsect1"><a name="idm214196026528"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd</strong></span> supports three general
power-saving modes:</p><div class="variablelist"><dl class="variablelist"><dt id="suspend"><span class="term">suspend</span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p>a low-power state
where execution of the OS is paused,
and complete power loss might result
<a href="systemd-sleep.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep</span>(8)</span></a>
when
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
- attempts to suspend or hibernate the machine.</p></div><div class="refsect1"><a name="idm214182891696"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options can be configured in the
+ attempts to suspend or hibernate the machine.</p></div><div class="refsect1"><a name="idm214196016080"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options can be configured in the
"<code class="literal">[Sleep]</code>" section of
<code class="filename">/etc/systemd/sleep.conf</code>:</p><div class="variablelist"><dl class="variablelist"><dt id="SuspendMode="><span class="term"><code class="varname">SuspendMode=</code>, </span><span class="term"><code class="varname">HibernateMode=</code>, </span><span class="term"><code class="varname">HybridSleepMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendMode=">¶</a></dt><dd><p>The string to be written to
<code class="filename">/sys/power/disk</code> by,
multiple values with whitespace. They will be tried
in turn, until one is written without error. If
neither succeeds, the operation will be aborted.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214186780112"></a><h2 id="Example: freeze">Example: freeze<a class="headerlink" title="Permalink to this headline" href="#Example:%20freeze">¶</a></h2><p>Example: to exploit the <span class="quote">“<span class="quote">freeze</span>”</span> mode added
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214199900320"></a><h2 id="Example: freeze">Example: freeze<a class="headerlink" title="Permalink to this headline" href="#Example:%20freeze">¶</a></h2><p>Example: to exploit the <span class="quote">“<span class="quote">freeze</span>”</span> mode added
in Linux 3.9, one can use <span class="command"><strong>systemctl suspend</strong></span>
with
</p><pre class="programlisting">[Sleep]
-SuspendState=freeze</pre></div><div class="refsect1"><a name="idm214186777168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+SuspendState=freeze</pre></div><div class="refsect1"><a name="idm214199897376"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-sleep.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep</span>(8)</span></a>,
<a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>,
<a href="systemd-hibernate.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hibernate.service</span>(8)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214190297200"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214187249136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
a system service that is pulled in by
<code class="filename">suspend.target</code> and is responsible
for the actual system suspend. Similarly,
where can be configured in the "<code class="literal">[Sleep]</code>"
section of <code class="filename">/etc/systemd/sleep.conf</code>.
See <a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>.
- </p></div><div class="refsect1"><a name="idm214194175168"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
+ </p></div><div class="refsect1"><a name="idm214191127792"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
following commands:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="suspend"><span class="term"><code class="option">suspend</code>, </span><span class="term"><code class="option">hibernate</code>, </span><span class="term"><code class="option">hybrid-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p>Suspend, hibernate, or
- put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194168640"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191121168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>,
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD\-SOCKET\-PROXYD" "8" "" "systemd 214" "systemd-socket-proxyd"
+.TH "SYSTEMD\-SOCKET\-PROXYD" "8" "" "systemd 215" "systemd-socket-proxyd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-socket-proxyd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-socket-proxyd — Bidirectionally proxy local sockets to another (possibly remote) socket.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-socket-proxyd</code> [<em class="replaceable"><code>OPTIONS</code></em>...] <em class="replaceable"><code>HOST</code></em>:<em class="replaceable"><code>PORT</code></em> </p></div><div class="cmdsynopsis"><p><code class="command">systemd-socket-proxyd</code> [<em class="replaceable"><code>OPTIONS</code></em>...] <em class="replaceable"><code>UNIX-DOMAIN-SOCKET-PATH</code></em>
- </p></div></div><div class="refsect1"><a name="idm214191115840"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-socket-proxyd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-socket-proxyd — Bidirectionally proxy local sockets to another (possibly remote) socket.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-socket-proxyd</code> [<em class="replaceable"><code>OPTIONS</code></em>...] <em class="replaceable"><code>HOST</code></em>:<em class="replaceable"><code>PORT</code></em> </p></div><div class="cmdsynopsis"><p><code class="command">systemd-socket-proxyd</code> [<em class="replaceable"><code>OPTIONS</code></em>...] <em class="replaceable"><code>UNIX-DOMAIN-SOCKET-PATH</code></em>
+ </p></div></div><div class="refsect1"><a name="idm214196073104"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>
<span class="command"><strong>systemd-socket-proxyd</strong></span> is a generic
socket-activated network socket forwarder proxy daemon
for IPv4, IPv6 and UNIX stream sockets. It may be used
are support for socket activation with
"<code class="literal">Accept=false</code>" and an event-driven
design that scales better with the number of
- connections.</p></div><div class="refsect1"><a name="idm214191110064"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195010912"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214195009728"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="refsect2"><a name="idm214195009056"></a><h3 id="Simple Example">Simple Example<a class="headerlink" title="Permalink to this headline" href="#Simple%20Example">¶</a></h3><p>Use two services with a dependency
- and no namespace isolation.</p><div class="example"><a name="idm214195008000"></a><p class="title"><b>Example 1. proxy-to-nginx.socket</b></p><div class="example-contents"><pre class="programlisting">[Socket]
+ connections.</p></div><div class="refsect1"><a name="idm214196067280"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214199963248"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214199962064"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><div class="refsect2"><a name="idm214199961392"></a><h3 id="Simple Example">Simple Example<a class="headerlink" title="Permalink to this headline" href="#Simple%20Example">¶</a></h3><p>Use two services with a dependency
+ and no namespace isolation.</p><div class="example"><a name="idm214199960336"></a><p class="title"><b>Example 1. proxy-to-nginx.socket</b></p><div class="example-contents"><pre class="programlisting">[Socket]
ListenStream=80
[Install]
-WantedBy=sockets.target</pre></div></div><br class="example-break"><div class="example"><a name="idm214195006432"></a><p class="title"><b>Example 2. proxy-to-nginx.service</b></p><div class="example-contents"><pre class="programlisting">[Unit]
+WantedBy=sockets.target</pre></div></div><br class="example-break"><div class="example"><a name="idm214199958768"></a><p class="title"><b>Example 2. proxy-to-nginx.service</b></p><div class="example-contents"><pre class="programlisting">[Unit]
Requires=nginx.service
After=nginx.service
[Service]
ExecStart=/usr/lib/systemd/systemd-socket-proxyd /tmp/nginx.sock
PrivateTmp=yes
-PrivateNetwork=yes</pre></div></div><br class="example-break"><div class="example"><a name="idm214195004832"></a><p class="title"><b>Example 3. nginx.conf</b></p><div class="example-contents"><pre class="programlisting">
+PrivateNetwork=yes</pre></div></div><br class="example-break"><div class="example"><a name="idm214199957168"></a><p class="title"><b>Example 3. nginx.conf</b></p><div class="example-contents"><pre class="programlisting">
[...]
server {
listen unix:/tmp/nginx.sock;
[...]
-</pre></div></div><br class="example-break"><div class="example"><a name="idm214195003088"></a><p class="title"><b>Example 4. Enabling the proxy</b></p><div class="example-contents"><pre class="programlisting"># systemctl enable proxy-to-nginx.socket
+</pre></div></div><br class="example-break"><div class="example"><a name="idm214199955424"></a><p class="title"><b>Example 4. Enabling the proxy</b></p><div class="example-contents"><pre class="programlisting"># systemctl enable proxy-to-nginx.socket
# systemctl start proxy-to-nginx.socket
-$ curl http://localhost:80/</pre></div></div><br class="example-break"></div><div class="refsect2"><a name="idm214195001440"></a><h3 id="Namespace Example">Namespace Example<a class="headerlink" title="Permalink to this headline" href="#Namespace%20Example">¶</a></h3><p>Similar as above, but runs the socket
+$ curl http://localhost:80/</pre></div></div><br class="example-break"></div><div class="refsect2"><a name="idm214199953776"></a><h3 id="Namespace Example">Namespace Example<a class="headerlink" title="Permalink to this headline" href="#Namespace%20Example">¶</a></h3><p>Similar as above, but runs the socket
proxy and the main service in the same private
namespace, assuming that
<code class="filename">nginx.service</code> has
<code class="varname">PrivateTmp=</code> and
<code class="varname">PrivateNetwork=</code> set,
- too.</p><div class="example"><a name="idm214194998528"></a><p class="title"><b>Example 5. proxy-to-nginx.socket</b></p><div class="example-contents"><pre class="programlisting">[Socket]
+ too.</p><div class="example"><a name="idm214199950864"></a><p class="title"><b>Example 5. proxy-to-nginx.socket</b></p><div class="example-contents"><pre class="programlisting">[Socket]
ListenStream=80
[Install]
-WantedBy=sockets.target</pre></div></div><br class="example-break"><div class="example"><a name="idm214194996960"></a><p class="title"><b>Example 6. proxy-to-nginx.service</b></p><div class="example-contents"><pre class="programlisting">[Unit]
+WantedBy=sockets.target</pre></div></div><br class="example-break"><div class="example"><a name="idm214199949296"></a><p class="title"><b>Example 6. proxy-to-nginx.service</b></p><div class="example-contents"><pre class="programlisting">[Unit]
Requires=nginx.service
After=nginx.service
JoinsNamespaceOf=nginx.service
[Service]
ExecStart=/usr/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080
PrivateTmp=yes
-PrivateNetwork=yes</pre></div></div><br class="example-break"><div class="example"><a name="idm214194995328"></a><p class="title"><b>Example 7. nginx.conf</b></p><div class="example-contents"><pre class="programlisting">[...]
+PrivateNetwork=yes</pre></div></div><br class="example-break"><div class="example"><a name="idm214199947664"></a><p class="title"><b>Example 7. nginx.conf</b></p><div class="example-contents"><pre class="programlisting">[...]
server {
listen 8080;
listen unix:/tmp/nginx.sock;
- [...]</pre></div></div><br class="example-break"><div class="example"><a name="idm214194986256"></a><p class="title"><b>Example 8. Enabling the proxy</b></p><div class="example-contents"><pre class="programlisting"># systemctl enable proxy-to-nginx.socket
+ [...]</pre></div></div><br class="example-break"><div class="example"><a name="idm214199938672"></a><p class="title"><b>Example 8. Enabling the proxy</b></p><div class="example-contents"><pre class="programlisting"># systemctl enable proxy-to-nginx.socket
# systemctl start proxy-to-nginx.socket
-$ curl http://localhost:80/</pre></div></div><br class="example-break"></div></div><div class="refsect1"><a name="idm214194984448"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+$ curl http://localhost:80/</pre></div></div><br class="example-break"></div></div><div class="refsect1"><a name="idm214199936864"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>,
<a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-SUSPEND\&.SERVICE" "8" "" "systemd 214" "systemd-suspend.service"
+.TH "SYSTEMD\-SUSPEND\&.SERVICE" "8" "" "systemd 215" "systemd-suspend.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214190297200"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-suspend.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-sleep — System sleep state logic</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-suspend.service</code></p><p><code class="filename">systemd-hibernate.service</code></p><p><code class="filename">systemd-hybrid-sleep.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sleep</code></p></div><div class="refsect1"><a name="idm214187249136"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-suspend.service</code> is
a system service that is pulled in by
<code class="filename">suspend.target</code> and is responsible
for the actual system suspend. Similarly,
where can be configured in the "<code class="literal">[Sleep]</code>"
section of <code class="filename">/etc/systemd/sleep.conf</code>.
See <a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>.
- </p></div><div class="refsect1"><a name="idm214194175168"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
+ </p></div><div class="refsect1"><a name="idm214191127792"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p><span class="command"><strong>systemd-sleep</strong></span> understands the
following commands:</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="suspend"><span class="term"><code class="option">suspend</code>, </span><span class="term"><code class="option">hibernate</code>, </span><span class="term"><code class="option">hybrid-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p>Suspend, hibernate, or
- put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214194168640"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ put the system to hybrid sleep.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191121168"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>,
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-sysctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sysctl.service, systemd-sysctl — Configure kernel parameters at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-sysctl.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sysctl</code></p></div><div class="refsect1"><a name="idm214180711104"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-sysctl.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-sysctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sysctl.service, systemd-sysctl — Configure kernel parameters at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-sysctl.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sysctl</code></p></div><div class="refsect1"><a name="idm214190241872"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-sysctl.service</code> is
an early-boot service that configures
<a href="sysctl.html"><span class="citerefentry"><span class="refentrytitle">sysctl</span>(8)</span></a>
kernel parameters.</p><p>See
<a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214180707184"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ service.</p></div><div class="refsect1"><a name="idm214190237904"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>,
<a href="sysctl.html"><span class="citerefentry"><span class="refentrytitle">sysctl</span>(8)</span></a>,
'\" t
-.TH "SYSTEMD\-SYSCTL\&.SERVICE" "8" "" "systemd 214" "systemd-sysctl.service"
+.TH "SYSTEMD\-SYSCTL\&.SERVICE" "8" "" "systemd 215" "systemd-sysctl.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-sysctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sysctl.service, systemd-sysctl — Configure kernel parameters at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-sysctl.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sysctl</code></p></div><div class="refsect1"><a name="idm214180711104"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-sysctl.service</code> is
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-sysctl.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sysctl.service, systemd-sysctl — Configure kernel parameters at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-sysctl.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-sysctl</code></p></div><div class="refsect1"><a name="idm214190241872"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-sysctl.service</code> is
an early-boot service that configures
<a href="sysctl.html"><span class="citerefentry"><span class="refentrytitle">sysctl</span>(8)</span></a>
kernel parameters.</p><p>See
<a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>
for information about the configuration of this
- service.</p></div><div class="refsect1"><a name="idm214180707184"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ service.</p></div><div class="refsect1"><a name="idm214190237904"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>,
<a href="sysctl.html"><span class="citerefentry"><span class="refentrytitle">sysctl</span>(8)</span></a>,
'\" t
-.TH "SYSTEMD\-SYSTEM\-UPDATE\-GENERATOR" "8" "" "systemd 214" "systemd-system-update-generator"
+.TH "SYSTEMD\-SYSTEM\-UPDATE\-GENERATOR" "8" "" "systemd 215" "systemd-system-update-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-system-update-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-system-update-generator — Generator for redirecting boot to offline update mode</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-system-update-generator</code></p></div><div class="refsect1"><a name="idm214185127696"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-system-update-generator</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-system-update-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-system-update-generator — Generator for redirecting boot to offline update mode</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-system-update-generator</code></p></div><div class="refsect1"><a name="idm214177526608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-system-update-generator</code>
is a generator that automatically redirects the boot
process to <code class="filename">system-update.target</code>
if <code class="filename">/system-update</code> exists. This is
Updates Specification</a>.
</p><p><code class="filename">systemd-system-update-generator</code>
implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators" target="_top">generator
- specification</a>.</p></div><div class="refsect1"><a name="idm214185122080"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ specification</a>.</p></div><div class="refsect1"><a name="idm214177520992"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-SYSTEM\&.CONF" "5" "" "systemd 214" "systemd-system.conf"
+.TH "SYSTEMD\-SYSTEM\&.CONF" "5" "" "systemd 215" "systemd-system.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-system.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-system.conf, systemd-user.conf — System and session service manager configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/system.conf</code></p><p><code class="filename">/etc/systemd/user.conf</code></p></div><div class="refsect1"><a name="idm214192577744"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When run as system instance systemd reads the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-system.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-system.conf, systemd-user.conf — System and session service manager configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/system.conf</code></p><p><code class="filename">/etc/systemd/user.conf</code></p></div><div class="refsect1"><a name="idm214192121936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When run as system instance systemd reads the
configuration file <code class="filename">system.conf</code>,
otherwise <code class="filename">user.conf</code>. These
configuration files contain a few settings controlling
- basic manager operations.</p></div><div class="refsect1"><a name="idm214192574992"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
+ basic manager operations.</p></div><div class="refsect1"><a name="idm214192119184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
"<code class="literal">[Manager]</code>" section:</p><div class="variablelist"><dl class="variablelist"><dt id="LogLevel="><span class="term"><code class="varname">LogLevel=</code>, </span><span class="term"><code class="varname">LogTarget=</code>, </span><span class="term"><code class="varname">LogColor=</code>, </span><span class="term"><code class="varname">LogLocation=</code>, </span><span class="term"><code class="varname">DumpCore=yes</code>, </span><span class="term"><code class="varname">CrashShell=no</code>, </span><span class="term"><code class="varname">ShowStatus=yes</code>, </span><span class="term"><code class="varname">CrashChVT=1</code>, </span><span class="term"><code class="varname">DefaultStandardOutput=journal</code>, </span><span class="term"><code class="varname">DefaultStandardError=inherit</code></span><a class="headerlink" title="Permalink to this term" href="#LogLevel=">¶</a></dt><dd><p>Configures various
parameters of basic manager
operation. These options may be
directives. Note that these resource
limits are only defaults for units,
they are not applied to PID 1
- itself.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191475072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191021312"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>,
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>,
--- /dev/null
+'\" t
+.TH "SYSTEMD\-SYSUSERS" "8" "" "systemd 215" "systemd-sysusers"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+systemd-sysusers, systemd-sysusers.service \- Allocate system users and groups
+.SH "SYNOPSIS"
+.HP \w'\fBsystemd\-sysusers\fR\ 'u
+\fBsystemd\-sysusers\fR [OPTIONS...] [\fICONFIGFILE\fR...]
+.PP
+systemd\-sysusers\&.service
+.SH "DESCRIPTION"
+.PP
+\fBsystemd\-sysusers\fR
+creates system users and groups, based on the file format and location specified in
+\fBsysusers.d\fR(5)\&.
+.PP
+If invoked with no arguments, it applies all directives from all files found\&. If one or more filenames are passed on the command line, only the directives in these files are applied\&. If only the basename of a file is specified, all directories as specified in
+\fBsysusers.d\fR(5)
+are searched for a matching file\&.
+.SH "OPTIONS"
+.PP
+The following options are understood:
+.PP
+\fB\-\-root=\fR\fB\fIroot\fR\fR
+.RS 4
+Takes a directory path as an argument\&. All paths will be prefixed with the given alternate
+\fIroot\fR
+path, including config search paths\&.
+.RE
+.PP
+\fB\-h\fR, \fB\-\-help\fR
+.RS 4
+Print a short help text and exit\&.
+.RE
+.PP
+\fB\-\-version\fR
+.RS 4
+Print a short version string and exit\&.
+.RE
+.SH "EXIT STATUS"
+.PP
+On success, 0 is returned, a non\-zero failure code otherwise\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBsysusers.d\fR(5)
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-sysusers</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-sysusers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sysusers, systemd-sysusers.service — Allocate system users and groups</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-sysusers</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-sysusers.service</code></p></div><div class="refsect1"><a name="idm214168665600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-sysusers</strong></span> creates
+ system users and groups, based on the file format and
+ location specified in
+ <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>.
+ </p><p>If invoked with no arguments, it applies all
+ directives from all files found. If one or more
+ filenames are passed on the command line, only the
+ directives in these files are applied. If only the
+ basename of a file is specified, all directories as
+ specified in
+ <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214168661280"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--root=root"><span class="term"><code class="option">--root=<em class="replaceable"><code>root</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--root=root">¶</a></dt><dd><p>Takes a directory path
+ as an argument. All paths will be
+ prefixed with the given alternate <em class="replaceable"><code>root</code></em>
+ path, including config search paths.
+ </p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168655488"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214172553520"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+.so man8/systemd-sysusers.8
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-sysusers</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-sysusers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-sysusers, systemd-sysusers.service — Allocate system users and groups</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-sysusers</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-sysusers.service</code></p></div><div class="refsect1"><a name="idm214168665600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-sysusers</strong></span> creates
+ system users and groups, based on the file format and
+ location specified in
+ <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>.
+ </p><p>If invoked with no arguments, it applies all
+ directives from all files found. If one or more
+ filenames are passed on the command line, only the
+ directives in these files are applied. If only the
+ basename of a file is specified, all directories as
+ specified in
+ <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214168661280"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--root=root"><span class="term"><code class="option">--root=<em class="replaceable"><code>root</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#--root=root">¶</a></dt><dd><p>Takes a directory path
+ as an argument. All paths will be
+ prefixed with the given alternate <em class="replaceable"><code>root</code></em>
+ path, including config search paths.
+ </p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214168655488"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214172553520"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="systemd-sysusers"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+
+ <refentryinfo>
+ <title>systemd-sysusers</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd-sysusers</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd-sysusers</refname>
+ <refname>systemd-sysusers.service</refname>
+ <refpurpose>Allocate system users and groups</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>systemd-sysusers</command>
+ <arg choice="opt" rep="repeat">OPTIONS</arg>
+ <arg choice="opt" rep="repeat"><replaceable>CONFIGFILE</replaceable></arg>
+ </cmdsynopsis>
+
+ <para><filename>systemd-sysusers.service</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>systemd-sysusers</command> creates
+ system users and groups, based on the file format and
+ location specified in
+ <citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ </para>
+
+ <para>If invoked with no arguments, it applies all
+ directives from all files found. If one or more
+ filenames are passed on the command line, only the
+ directives in these files are applied. If only the
+ basename of a file is specified, all directories as
+ specified in
+ <citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ are searched for a matching file.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <para>The following options are understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>--root=<replaceable>root</replaceable></option></term>
+ <listitem><para>Takes a directory path
+ as an argument. All paths will be
+ prefixed with the given alternate <replaceable>root</replaceable>
+ path, including config search paths.
+ </para></listitem>
+ </varlistentry>
+
+ <xi:include href="standard-options.xml" xpointer="help" />
+ <xi:include href="standard-options.xml" xpointer="version" />
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Exit status</title>
+
+ <para>On success, 0 is returned, a non-zero failure
+ code otherwise.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-timedated.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timedated.service, systemd-timedated — Time and date bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timedated.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timedated</code></p></div><div class="refsect1"><a name="idm214189670480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timedated</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-timedated.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timedated.service, systemd-timedated — Time and date bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timedated.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timedated</code></p></div><div class="refsect1"><a name="idm214182363888"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timedated</code> is a
system service that may be used as a mechanism to change
the system clock and timezone, as well as to
enable/disable NTP time
is a command-line client to this service.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/timedated" target="_top">
developer documentation</a> for information about
the APIs <code class="filename">systemd-timedated</code>
- provides.</p></div><div class="refsect1"><a name="idm214190878608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214182358096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>,
<a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-TIMEDATED\&.SERVICE" "8" "" "systemd 214" "systemd-timedated.service"
+.TH "SYSTEMD\-TIMEDATED\&.SERVICE" "8" "" "systemd 215" "systemd-timedated.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-timedated.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timedated.service, systemd-timedated — Time and date bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timedated.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timedated</code></p></div><div class="refsect1"><a name="idm214189670480"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timedated</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-timedated.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timedated.service, systemd-timedated — Time and date bus mechanism</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timedated.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timedated</code></p></div><div class="refsect1"><a name="idm214182363888"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timedated</code> is a
system service that may be used as a mechanism to change
the system clock and timezone, as well as to
enable/disable NTP time
is a command-line client to this service.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/timedated" target="_top">
developer documentation</a> for information about
the APIs <code class="filename">systemd-timedated</code>
- provides.</p></div><div class="refsect1"><a name="idm214190878608"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ provides.</p></div><div class="refsect1"><a name="idm214182358096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>,
<a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-timesyncd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timesyncd.service, systemd-timesyncd — Network Time Synchronization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timesyncd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timesyncd</code></p></div><div class="refsect1"><a name="idm214180458576"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timesyncd</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-timesyncd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timesyncd.service, systemd-timesyncd — Network Time Synchronization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timesyncd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timesyncd</code></p></div><div class="refsect1"><a name="idm214193943296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timesyncd</code> is a
system service that may be used to synchronize the local
- system clock with a Network Time Protocol Server.</p></div><div class="refsect1"><a name="idm214181391200"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ system clock with a Network Time Protocol Server.</p></div><div class="refsect1"><a name="idm214193941392"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>,
<a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\-TIMESYNCD\&.SERVICE" "8" "" "systemd 214" "systemd-timesyncd.service"
+.TH "SYSTEMD\-TIMESYNCD\&.SERVICE" "8" "" "systemd 215" "systemd-timesyncd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-timesyncd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timesyncd.service, systemd-timesyncd — Network Time Synchronization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timesyncd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timesyncd</code></p></div><div class="refsect1"><a name="idm214180458576"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timesyncd</code> is a
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-timesyncd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-timesyncd.service, systemd-timesyncd — Network Time Synchronization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-timesyncd.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-timesyncd</code></p></div><div class="refsect1"><a name="idm214193943296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-timesyncd</code> is a
system service that may be used to synchronize the local
- system clock with a Network Time Protocol Server.</p></div><div class="refsect1"><a name="idm214181391200"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ system clock with a Network Time Protocol Server.</p></div><div class="refsect1"><a name="idm214193941392"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>,
<a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
- and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214167343504"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
+ and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214182153968"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and
location specified in
the basename of a configuration file is specified,
all configuration directories as specified in
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
- are searched for a matching file.</p></div><div class="refsect1"><a name="idm214167339104"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214182149520"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
passed, all files and directories
marked with <code class="varname">f</code>,
<code class="varname">F</code>,
example, during boot the following command line is
executed to ensure that all temporary and volatile
directories are removed and created according to the
- configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214171204640"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214171203456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214186015536"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214186014352"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
- and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214167343504"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
+ and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214182153968"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and
location specified in
the basename of a configuration file is specified,
all configuration directories as specified in
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
- are searched for a matching file.</p></div><div class="refsect1"><a name="idm214167339104"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214182149520"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
passed, all files and directories
marked with <code class="varname">f</code>,
<code class="varname">F</code>,
example, during boot the following command line is
executed to ensure that all temporary and volatile
directories are removed and created according to the
- configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214171204640"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214171203456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214186015536"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214186014352"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
- and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214167343504"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
+ and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214182153968"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and
location specified in
the basename of a configuration file is specified,
all configuration directories as specified in
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
- are searched for a matching file.</p></div><div class="refsect1"><a name="idm214167339104"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214182149520"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
passed, all files and directories
marked with <code class="varname">f</code>,
<code class="varname">F</code>,
example, during boot the following command line is
executed to ensure that all temporary and volatile
directories are removed and created according to the
- configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214171204640"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214171203456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214186015536"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214186014352"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
</p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
- and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214167343504"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
+ and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214182153968"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and
location specified in
the basename of a configuration file is specified,
all configuration directories as specified in
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
- are searched for a matching file.</p></div><div class="refsect1"><a name="idm214167339104"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214182149520"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
passed, all files and directories
marked with <code class="varname">f</code>,
<code class="varname">F</code>,
example, during boot the following command line is
executed to ensure that all temporary and volatile
directories are removed and created according to the
- configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214171204640"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214171203456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214186015536"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214186014352"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-TMPFILES" "8" "" "systemd 214" "systemd-tmpfiles"
+.TH "SYSTEMD\-TMPFILES" "8" "" "systemd 215" "systemd-tmpfiles"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
- and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214167343504"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-tmpfiles"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — Creates, deletes and cleans up volatile
+ and temporary files and directories</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tmpfiles</code> [OPTIONS...] [<em class="replaceable"><code>CONFIGFILE</code></em>...]</p></div><p><code class="filename">systemd-tmpfiles-setup.service</code></p><p><code class="filename">systemd-tmpfiles-setup-dev.service</code></p><p><code class="filename">systemd-tmpfiles-clean.service</code></p><p><code class="filename">systemd-tmpfiles-clean.timer</code></p></div><div class="refsect1"><a name="idm214182153968"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> creates,
deletes, and cleans up volatile and temporary files and
directories, based on the configuration file format and
location specified in
the basename of a configuration file is specified,
all configuration directories as specified in
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
- are searched for a matching file.</p></div><div class="refsect1"><a name="idm214167339104"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
+ are searched for a matching file.</p></div><div class="refsect1"><a name="idm214182149520"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p>If this option is
passed, all files and directories
marked with <code class="varname">f</code>,
<code class="varname">F</code>,
example, during boot the following command line is
executed to ensure that all temporary and volatile
directories are removed and created according to the
- configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214171204640"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214171203456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ configuration file:</p><pre class="programlisting">systemd-tmpfiles --remove --create</pre></div><div class="refsect1"><a name="idm214186015536"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214186014352"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>
</p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-TTY\-ASK\-PASSWORD\-AGENT" "1" "" "systemd 214" "systemd-tty-ask-password-agent"
+.TH "SYSTEMD\-TTY\-ASK\-PASSWORD\-AGENT" "1" "" "systemd 215" "systemd-tty-ask-password-agent"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-tty-ask-password-agent"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tty-ask-password-agent — List or process pending systemd password requests</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tty-ask-password-agent [OPTIONS...] [VARIABLE=VALUE...]</code> </p></div></div><div class="refsect1"><a name="idm214178559760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tty-ask-password-agent</strong></span>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-tty-ask-password-agent"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-tty-ask-password-agent — List or process pending systemd password requests</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd-tty-ask-password-agent [OPTIONS...] [VARIABLE=VALUE...]</code> </p></div></div><div class="refsect1"><a name="idm214196749440"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tty-ask-password-agent</strong></span>
is a password agent that handles password
requests of the system, for example for hard disk
encryption passwords or SSL certificate passwords that
need to be queried at boot-time or during
runtime.</p><p><span class="command"><strong>systemd-tty-ask-password-agent</strong></span>
implements the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents" target="_top">Password
- Agents Specification</a>.</p></div><div class="refsect1"><a name="idm214178556080"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--list"><span class="term"><code class="option">--list</code></span><a class="headerlink" title="Permalink to this term" href="#--list">¶</a></dt><dd><p>Lists all currently pending system password requests.</p></dd><dt id="--query"><span class="term"><code class="option">--query</code></span><a class="headerlink" title="Permalink to this term" href="#--query">¶</a></dt><dd><p>Process all currently
+ Agents Specification</a>.</p></div><div class="refsect1"><a name="idm214196745760"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--list"><span class="term"><code class="option">--list</code></span><a class="headerlink" title="Permalink to this term" href="#--list">¶</a></dt><dd><p>Lists all currently pending system password requests.</p></dd><dt id="--query"><span class="term"><code class="option">--query</code></span><a class="headerlink" title="Permalink to this term" href="#--query">¶</a></dt><dd><p>Process all currently
pending system password requests by
querying the user on the calling
TTY.</p></dd><dt id="--watch"><span class="term"><code class="option">--watch</code></span><a class="headerlink" title="Permalink to this term" href="#--watch">¶</a></dt><dd><p>Continuously process
<code class="filename">/dev/console</code>
instead of querying the user on the
calling TTY. </p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182439680"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214182438496"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214200629952"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214200628768"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214179734432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214168457344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
For every event, systemd-udevd executes matching instructions
specified in udev rules. See <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>.</p><p>The behavior of the running daemon can be changed with
- <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214179730544"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
+ <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214172352688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
instructions by the given number of seconds. This option
might be useful when debugging system crashes during
coldplug caused by loading non-working kernel
<code class="option">late</code>, names will be resolved for every event.
When set to <code class="option">never</code>, names will never be resolved
and all devices will be owned by root.</p></dd><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183614768"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183604816"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172338224"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172327808"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
<span class="command"><strong>systemd-udevd</strong></span> is used in an initrd.</p><dl class="variablelist"><dt id="udev.log-priority="><span class="term"><code class="varname">udev.log-priority=</code>, </span><span class="term"><code class="varname">rd.udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.log-priority=">¶</a></dt><dd><p>Set the logging priority.</p></dd><dt id="udev.children-max="><span class="term"><code class="varname">udev.children-max=</code>, </span><span class="term"><code class="varname">rd.udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="udev.exec-delay="><span class="term"><code class="varname">udev.exec-delay=</code>, </span><span class="term"><code class="varname">rd.udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code> instructions by the given
number of seconds. This option might be useful when
debugging system crashes during coldplug caused by loading
non-working kernel modules.</p></dd><dt id="net.ifnames="><span class="term"><code class="varname">net.ifnames=</code></span><a class="headerlink" title="Permalink to this term" href="#net.ifnames=">¶</a></dt><dd><p>Network interfaces are renamed to give them predictable names
- when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183592656"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
+ when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172315600"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
It consists of a set of variables allowing the user to override default udev values. All
empty lines or lines beginning with '#' are ignored. The following variables can be
set:</p><div class="variablelist"><dl class="variablelist"><dt id="udev_log"><span class="term"><code class="varname">udev_log</code></span><a class="headerlink" title="Permalink to this term" href="#udev_log">¶</a></dt><dd><p>The logging priority. Valid values are the numerical syslog priorities
or their textual representations: <code class="option">err</code>, <code class="option">info</code>
- and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183587008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
+ and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172310000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214179734432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214168457344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
For every event, systemd-udevd executes matching instructions
specified in udev rules. See <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>.</p><p>The behavior of the running daemon can be changed with
- <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214179730544"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
+ <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214172352688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
instructions by the given number of seconds. This option
might be useful when debugging system crashes during
coldplug caused by loading non-working kernel
<code class="option">late</code>, names will be resolved for every event.
When set to <code class="option">never</code>, names will never be resolved
and all devices will be owned by root.</p></dd><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183614768"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183604816"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172338224"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172327808"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
<span class="command"><strong>systemd-udevd</strong></span> is used in an initrd.</p><dl class="variablelist"><dt id="udev.log-priority="><span class="term"><code class="varname">udev.log-priority=</code>, </span><span class="term"><code class="varname">rd.udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.log-priority=">¶</a></dt><dd><p>Set the logging priority.</p></dd><dt id="udev.children-max="><span class="term"><code class="varname">udev.children-max=</code>, </span><span class="term"><code class="varname">rd.udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="udev.exec-delay="><span class="term"><code class="varname">udev.exec-delay=</code>, </span><span class="term"><code class="varname">rd.udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code> instructions by the given
number of seconds. This option might be useful when
debugging system crashes during coldplug caused by loading
non-working kernel modules.</p></dd><dt id="net.ifnames="><span class="term"><code class="varname">net.ifnames=</code></span><a class="headerlink" title="Permalink to this term" href="#net.ifnames=">¶</a></dt><dd><p>Network interfaces are renamed to give them predictable names
- when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183592656"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
+ when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172315600"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
It consists of a set of variables allowing the user to override default udev values. All
empty lines or lines beginning with '#' are ignored. The following variables can be
set:</p><div class="variablelist"><dl class="variablelist"><dt id="udev_log"><span class="term"><code class="varname">udev_log</code></span><a class="headerlink" title="Permalink to this term" href="#udev_log">¶</a></dt><dd><p>The logging priority. Valid values are the numerical syslog priorities
or their textual representations: <code class="option">err</code>, <code class="option">info</code>
- and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183587008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
+ and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172310000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214179734432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214168457344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
For every event, systemd-udevd executes matching instructions
specified in udev rules. See <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>.</p><p>The behavior of the running daemon can be changed with
- <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214179730544"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
+ <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214172352688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
instructions by the given number of seconds. This option
might be useful when debugging system crashes during
coldplug caused by loading non-working kernel
<code class="option">late</code>, names will be resolved for every event.
When set to <code class="option">never</code>, names will never be resolved
and all devices will be owned by root.</p></dd><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183614768"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183604816"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172338224"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172327808"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
<span class="command"><strong>systemd-udevd</strong></span> is used in an initrd.</p><dl class="variablelist"><dt id="udev.log-priority="><span class="term"><code class="varname">udev.log-priority=</code>, </span><span class="term"><code class="varname">rd.udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.log-priority=">¶</a></dt><dd><p>Set the logging priority.</p></dd><dt id="udev.children-max="><span class="term"><code class="varname">udev.children-max=</code>, </span><span class="term"><code class="varname">rd.udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="udev.exec-delay="><span class="term"><code class="varname">udev.exec-delay=</code>, </span><span class="term"><code class="varname">rd.udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code> instructions by the given
number of seconds. This option might be useful when
debugging system crashes during coldplug caused by loading
non-working kernel modules.</p></dd><dt id="net.ifnames="><span class="term"><code class="varname">net.ifnames=</code></span><a class="headerlink" title="Permalink to this term" href="#net.ifnames=">¶</a></dt><dd><p>Network interfaces are renamed to give them predictable names
- when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183592656"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
+ when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172315600"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
It consists of a set of variables allowing the user to override default udev values. All
empty lines or lines beginning with '#' are ignored. The following variables can be
set:</p><div class="variablelist"><dl class="variablelist"><dt id="udev_log"><span class="term"><code class="varname">udev_log</code></span><a class="headerlink" title="Permalink to this term" href="#udev_log">¶</a></dt><dd><p>The logging priority. Valid values are the numerical syslog priorities
or their textual representations: <code class="option">err</code>, <code class="option">info</code>
- and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183587008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
+ and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172310000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
'\" t
-.TH "SYSTEMD\-UDEVD\&.SERVICE" "8" "" "systemd 214" "systemd-udevd.service"
+.TH "SYSTEMD\-UDEVD\&.SERVICE" "8" "" "systemd 215" "systemd-udevd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214179734432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-udevd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-udevd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd — Device event managing daemon</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-udevd.service</code></p><p><code class="filename">systemd-udevd-control.socket</code></p><p><code class="filename">systemd-udevd-kernel.socket</code></p><div class="cmdsynopsis"><p><code class="command">/usr/lib/systemd/systemd-udevd</code> [<code class="option">--daemon</code>] [<code class="option">--debug</code>] [<code class="option">--children-max=</code>] [<code class="option">--exec-delay=</code>] [<code class="option">--resolve-names=early|late|never</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div></div><div class="refsect1"><a name="idm214168457344"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-udevd</strong></span> listens to kernel uevents.
For every event, systemd-udevd executes matching instructions
specified in udev rules. See <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>.</p><p>The behavior of the running daemon can be changed with
- <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214179730544"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
+ <span class="command"><strong>udevadm control</strong></span>.</p></div><div class="refsect1"><a name="idm214172352688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p>Detach and run in the background.</p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code>
instructions by the given number of seconds. This option
might be useful when debugging system crashes during
coldplug caused by loading non-working kernel
<code class="option">late</code>, names will be resolved for every event.
When set to <code class="option">never</code>, names will never be resolved
and all devices will be owned by root.</p></dd><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183614768"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183604816"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172338224"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p>Set the logging priority.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172327808"></a><h2 id="Kernel command line">Kernel command line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20command%20line">¶</a></h2><div class="variablelist"><p>Parameters starting with "rd." will be read when
<span class="command"><strong>systemd-udevd</strong></span> is used in an initrd.</p><dl class="variablelist"><dt id="udev.log-priority="><span class="term"><code class="varname">udev.log-priority=</code>, </span><span class="term"><code class="varname">rd.udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.log-priority=">¶</a></dt><dd><p>Set the logging priority.</p></dd><dt id="udev.children-max="><span class="term"><code class="varname">udev.children-max=</code>, </span><span class="term"><code class="varname">rd.udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.children-max=">¶</a></dt><dd><p>Limit the number of events executed in parallel.</p></dd><dt id="udev.exec-delay="><span class="term"><code class="varname">udev.exec-delay=</code>, </span><span class="term"><code class="varname">rd.udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.exec-delay=">¶</a></dt><dd><p>Delay the execution of <code class="varname">RUN</code> instructions by the given
number of seconds. This option might be useful when
debugging system crashes during coldplug caused by loading
non-working kernel modules.</p></dd><dt id="net.ifnames="><span class="term"><code class="varname">net.ifnames=</code></span><a class="headerlink" title="Permalink to this term" href="#net.ifnames=">¶</a></dt><dd><p>Network interfaces are renamed to give them predictable names
- when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183592656"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
+ when possible. It is enabled by default; specifying 0 disables it.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172315600"></a><h2 id="Configuration file">Configuration file<a class="headerlink" title="Permalink to this headline" href="#Configuration%20file">¶</a></h2><p>udev expects its main configuration file at <code class="filename">/etc/udev/udev.conf</code>.
It consists of a set of variables allowing the user to override default udev values. All
empty lines or lines beginning with '#' are ignored. The following variables can be
set:</p><div class="variablelist"><dl class="variablelist"><dt id="udev_log"><span class="term"><code class="varname">udev_log</code></span><a class="headerlink" title="Permalink to this term" href="#udev_log">¶</a></dt><dd><p>The logging priority. Valid values are the numerical syslog priorities
or their textual representations: <code class="option">err</code>, <code class="option">info</code>
- and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183587008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
+ and <code class="option">debug</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172310000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></div></div></body></html>
--- /dev/null
+.so man8/systemd-update-done.service.8
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-update-done.service</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-update-done.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-done.service, systemd-update-done — Mark <code class="filename">/etc</code> and <code class="filename">/var</code> fully updated</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-done.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-done</code></p></div><div class="refsect1"><a name="idm214182720160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-done.service</code>
+ is a service that is invoked as part of the first boot
+ after the vendor operating system resources in
+ <code class="filename">/usr</code> have been updated. This is
+ useful to implement offline updates of
+ <code class="filename">/usr</code> which might requires updates
+ to <code class="filename">/etc</code> or
+ <code class="filename">/var</code> on the following boot.</p><p><code class="filename">systemd-update-done.service</code>
+ updates the file modification time (mtime) of the
+ stamp files <code class="filename">/etc/.updated</code> and
+ <code class="filename">/var/.updated</code> to the modification
+ time of the <code class="filename">/usr</code> directory,
+ unless the stamp files are already newer.</p><p>Services that shall run after offline upgrades
+ of <code class="filename">/usr</code> should order themselves
+ before
+ <code class="filename">systemd-update-done.service</code>, and
+ use the <code class="varname">ConditionNeedsUpdate=</code> (see
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>)
+ condition to make sure to run when
+ <code class="filename">/etc</code> or <code class="filename">/var</code>
+ are older than <code class="filename">/usr</code> according to
+ the modification times of the files described
+ above. This requires that updates to
+ <code class="filename">/usr</code> are always followed by an
+ update of the modification time of
+ <code class="filename">/usr</code>, for example by invoking
+ <a href="touch.html"><span class="citerefentry"><span class="refentrytitle">touch</span>(1)</span></a>
+ on it.</p></div><div class="refsect1"><a name="idm214186603664"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
+ <a href="touch.html"><span class="citerefentry"><span class="refentrytitle">touch</span>(1)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+'\" t
+.TH "SYSTEMD\-UPDATE\-DONE\&.SERVICE" "8" "" "systemd 215" "systemd-update-done.service"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+systemd-update-done.service, systemd-update-done \- Mark /etc and /var fully updated
+.SH "SYNOPSIS"
+.PP
+systemd\-update\-done\&.service
+.PP
+/usr/lib/systemd/systemd\-update\-done
+.SH "DESCRIPTION"
+.PP
+systemd\-update\-done\&.service
+is a service that is invoked as part of the first boot after the vendor operating system resources in
+/usr
+have been updated\&. This is useful to implement offline updates of
+/usr
+which might requires updates to
+/etc
+or
+/var
+on the following boot\&.
+.PP
+systemd\-update\-done\&.service
+updates the file modification time (mtime) of the stamp files
+/etc/\&.updated
+and
+/var/\&.updated
+to the modification time of the
+/usr
+directory, unless the stamp files are already newer\&.
+.PP
+Services that shall run after offline upgrades of
+/usr
+should order themselves before
+systemd\-update\-done\&.service, and use the
+\fIConditionNeedsUpdate=\fR
+(see
+\fBsystemd.unit\fR(5)) condition to make sure to run when
+/etc
+or
+/var
+are older than
+/usr
+according to the modification times of the files described above\&. This requires that updates to
+/usr
+are always followed by an update of the modification time of
+/usr, for example by invoking
+\fBtouch\fR(1)
+on it\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBsystemd.unit\fR(5),
+\fBtouch\fR(1)
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>systemd-update-done.service</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-update-done.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-done.service, systemd-update-done — Mark <code class="filename">/etc</code> and <code class="filename">/var</code> fully updated</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-done.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-done</code></p></div><div class="refsect1"><a name="idm214182720160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-done.service</code>
+ is a service that is invoked as part of the first boot
+ after the vendor operating system resources in
+ <code class="filename">/usr</code> have been updated. This is
+ useful to implement offline updates of
+ <code class="filename">/usr</code> which might requires updates
+ to <code class="filename">/etc</code> or
+ <code class="filename">/var</code> on the following boot.</p><p><code class="filename">systemd-update-done.service</code>
+ updates the file modification time (mtime) of the
+ stamp files <code class="filename">/etc/.updated</code> and
+ <code class="filename">/var/.updated</code> to the modification
+ time of the <code class="filename">/usr</code> directory,
+ unless the stamp files are already newer.</p><p>Services that shall run after offline upgrades
+ of <code class="filename">/usr</code> should order themselves
+ before
+ <code class="filename">systemd-update-done.service</code>, and
+ use the <code class="varname">ConditionNeedsUpdate=</code> (see
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>)
+ condition to make sure to run when
+ <code class="filename">/etc</code> or <code class="filename">/var</code>
+ are older than <code class="filename">/usr</code> according to
+ the modification times of the files described
+ above. This requires that updates to
+ <code class="filename">/usr</code> are always followed by an
+ update of the modification time of
+ <code class="filename">/usr</code>, for example by invoking
+ <a href="touch.html"><span class="citerefentry"><span class="refentrytitle">touch</span>(1)</span></a>
+ on it.</p></div><div class="refsect1"><a name="idm214186603664"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
+ <a href="touch.html"><span class="citerefentry"><span class="refentrytitle">touch</span>(1)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version="1.0"?>
+<!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+<refentry id="systemd-update-done.service">
+
+ <refentryinfo>
+ <title>systemd-update-done.service</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd-update-done.service</refentrytitle>
+ <manvolnum>8</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd-update-done.service</refname>
+ <refname>systemd-update-done</refname>
+ <refpurpose>Mark <filename>/etc</filename> and <filename>/var</filename> fully updated</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>systemd-update-done.service</filename></para>
+ <para><filename>/usr/lib/systemd/systemd-update-done</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><filename>systemd-update-done.service</filename>
+ is a service that is invoked as part of the first boot
+ after the vendor operating system resources in
+ <filename>/usr</filename> have been updated. This is
+ useful to implement offline updates of
+ <filename>/usr</filename> which might requires updates
+ to <filename>/etc</filename> or
+ <filename>/var</filename> on the following boot.</para>
+
+ <para><filename>systemd-update-done.service</filename>
+ updates the file modification time (mtime) of the
+ stamp files <filename>/etc/.updated</filename> and
+ <filename>/var/.updated</filename> to the modification
+ time of the <filename>/usr</filename> directory,
+ unless the stamp files are already newer.</para>
+
+ <para>Services that shall run after offline upgrades
+ of <filename>/usr</filename> should order themselves
+ before
+ <filename>systemd-update-done.service</filename>, and
+ use the <varname>ConditionNeedsUpdate=</varname> (see
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
+ condition to make sure to run when
+ <filename>/etc</filename> or <filename>/var</filename>
+ are older than <filename>/usr</filename> according to
+ the modification times of the files described
+ above. This requires that updates to
+ <filename>/usr</filename> are always followed by an
+ update of the modification time of
+ <filename>/usr</filename>, for example by invoking
+ <citerefentry><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ on it.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>touch</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-update-utmp.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-utmp.service, systemd-update-utmp-runlevel.service, systemd-update-utmp — Write audit and utmp updates at bootup, runlevel
- changes and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-utmp.service</code></p><p><code class="filename">systemd-update-utmp-runlevel.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></p></div><div class="refsect1"><a name="idm214174315920"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-utmp-runlevel.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-update-utmp.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-utmp.service, systemd-update-utmp-runlevel.service, systemd-update-utmp — Write audit and utmp updates at bootup, runlevel
+ changes and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-utmp.service</code></p><p><code class="filename">systemd-update-utmp-runlevel.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></p></div><div class="refsect1"><a name="idm214191805296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-utmp-runlevel.service</code>
is a service that writes SysV runlevel changes to utmp
and wtmp, as well as the audit logs, as they
occur. <code class="filename">systemd-update-utmp.service</code>
- does the same for system reboots and shutdown requests.</p></div><div class="refsect1"><a name="idm214174313280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ does the same for system reboots and shutdown requests.</p></div><div class="refsect1"><a name="idm214191802656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="utmp.html"><span class="citerefentry"><span class="refentrytitle">utmp</span>(5)</span></a>,
<a href="auditd.html"><span class="citerefentry"><span class="refentrytitle">auditd</span>(8)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-update-utmp.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-utmp.service, systemd-update-utmp-runlevel.service, systemd-update-utmp — Write audit and utmp updates at bootup, runlevel
- changes and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-utmp.service</code></p><p><code class="filename">systemd-update-utmp-runlevel.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></p></div><div class="refsect1"><a name="idm214174315920"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-utmp-runlevel.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-update-utmp.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-utmp.service, systemd-update-utmp-runlevel.service, systemd-update-utmp — Write audit and utmp updates at bootup, runlevel
+ changes and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-utmp.service</code></p><p><code class="filename">systemd-update-utmp-runlevel.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></p></div><div class="refsect1"><a name="idm214191805296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-utmp-runlevel.service</code>
is a service that writes SysV runlevel changes to utmp
and wtmp, as well as the audit logs, as they
occur. <code class="filename">systemd-update-utmp.service</code>
- does the same for system reboots and shutdown requests.</p></div><div class="refsect1"><a name="idm214174313280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ does the same for system reboots and shutdown requests.</p></div><div class="refsect1"><a name="idm214191802656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="utmp.html"><span class="citerefentry"><span class="refentrytitle">utmp</span>(5)</span></a>,
<a href="auditd.html"><span class="citerefentry"><span class="refentrytitle">auditd</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-UPDATE\-UTMP\&.SERVICE" "8" "" "systemd 214" "systemd-update-utmp.service"
+.TH "SYSTEMD\-UPDATE\-UTMP\&.SERVICE" "8" "" "systemd 215" "systemd-update-utmp.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-update-utmp.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-utmp.service, systemd-update-utmp-runlevel.service, systemd-update-utmp — Write audit and utmp updates at bootup, runlevel
- changes and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-utmp.service</code></p><p><code class="filename">systemd-update-utmp-runlevel.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></p></div><div class="refsect1"><a name="idm214174315920"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-utmp-runlevel.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-update-utmp.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-update-utmp.service, systemd-update-utmp-runlevel.service, systemd-update-utmp — Write audit and utmp updates at bootup, runlevel
+ changes and shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-update-utmp.service</code></p><p><code class="filename">systemd-update-utmp-runlevel.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></p></div><div class="refsect1"><a name="idm214191805296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-update-utmp-runlevel.service</code>
is a service that writes SysV runlevel changes to utmp
and wtmp, as well as the audit logs, as they
occur. <code class="filename">systemd-update-utmp.service</code>
- does the same for system reboots and shutdown requests.</p></div><div class="refsect1"><a name="idm214174313280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ does the same for system reboots and shutdown requests.</p></div><div class="refsect1"><a name="idm214191802656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="utmp.html"><span class="citerefentry"><span class="refentrytitle">utmp</span>(5)</span></a>,
<a href="auditd.html"><span class="citerefentry"><span class="refentrytitle">auditd</span>(8)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-user-sessions.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-user-sessions.service, systemd-user-sessions — Permit user logins after boot, prohibit user logins at shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-user-sessions.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-user-sessions</code></p></div><div class="refsect1"><a name="idm214198839808"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-user-sessions.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-user-sessions.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-user-sessions.service, systemd-user-sessions — Permit user logins after boot, prohibit user logins at shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-user-sessions.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-user-sessions</code></p></div><div class="refsect1"><a name="idm214173200672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-user-sessions.service</code>
is a service that controls user logins. After basic
system initialization is complete it removes
<code class="filename">/run/nologin</code>, thus permitting
<code class="filename">/run/nologin</code>, thus prohibiting
further logins. At the same time it also kills all
user processes, so that system shutdown may proceed
- without any remaining user processes around.</p></div><div class="refsect1"><a name="idm214198836176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ without any remaining user processes around.</p></div><div class="refsect1"><a name="idm214173197040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
<a href="pam_nologin.html"><span class="citerefentry"><span class="refentrytitle">pam_nologin</span>(8)</span></a>
'\" t
-.TH "SYSTEMD\-USER\-SESSIONS\&.SERVICE" "8" "" "systemd 214" "systemd-user-sessions.service"
+.TH "SYSTEMD\-USER\-SESSIONS\&.SERVICE" "8" "" "systemd 215" "systemd-user-sessions.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-user-sessions.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-user-sessions.service, systemd-user-sessions — Permit user logins after boot, prohibit user logins at shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-user-sessions.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-user-sessions</code></p></div><div class="refsect1"><a name="idm214198839808"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-user-sessions.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-user-sessions.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-user-sessions.service, systemd-user-sessions — Permit user logins after boot, prohibit user logins at shutdown</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-user-sessions.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-user-sessions</code></p></div><div class="refsect1"><a name="idm214173200672"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-user-sessions.service</code>
is a service that controls user logins. After basic
system initialization is complete it removes
<code class="filename">/run/nologin</code>, thus permitting
<code class="filename">/run/nologin</code>, thus prohibiting
further logins. At the same time it also kills all
user processes, so that system shutdown may proceed
- without any remaining user processes around.</p></div><div class="refsect1"><a name="idm214198836176"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ without any remaining user processes around.</p></div><div class="refsect1"><a name="idm214173197040"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
<a href="pam_nologin.html"><span class="citerefentry"><span class="refentrytitle">pam_nologin</span>(8)</span></a>
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-system.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-system.conf, systemd-user.conf — System and session service manager configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/system.conf</code></p><p><code class="filename">/etc/systemd/user.conf</code></p></div><div class="refsect1"><a name="idm214192577744"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When run as system instance systemd reads the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-system.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-system.conf, systemd-user.conf — System and session service manager configuration file</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/system.conf</code></p><p><code class="filename">/etc/systemd/user.conf</code></p></div><div class="refsect1"><a name="idm214192121936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>When run as system instance systemd reads the
configuration file <code class="filename">system.conf</code>,
otherwise <code class="filename">user.conf</code>. These
configuration files contain a few settings controlling
- basic manager operations.</p></div><div class="refsect1"><a name="idm214192574992"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
+ basic manager operations.</p></div><div class="refsect1"><a name="idm214192119184"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>All options are configured in the
"<code class="literal">[Manager]</code>" section:</p><div class="variablelist"><dl class="variablelist"><dt id="LogLevel="><span class="term"><code class="varname">LogLevel=</code>, </span><span class="term"><code class="varname">LogTarget=</code>, </span><span class="term"><code class="varname">LogColor=</code>, </span><span class="term"><code class="varname">LogLocation=</code>, </span><span class="term"><code class="varname">DumpCore=yes</code>, </span><span class="term"><code class="varname">CrashShell=no</code>, </span><span class="term"><code class="varname">ShowStatus=yes</code>, </span><span class="term"><code class="varname">CrashChVT=1</code>, </span><span class="term"><code class="varname">DefaultStandardOutput=journal</code>, </span><span class="term"><code class="varname">DefaultStandardError=inherit</code></span><a class="headerlink" title="Permalink to this term" href="#LogLevel=">¶</a></dt><dd><p>Configures various
parameters of basic manager
operation. These options may be
directives. Note that these resource
limits are only defaults for units,
they are not applied to PID 1
- itself.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191475072"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ itself.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191021312"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>,
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>,
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-vconsole-setup.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-vconsole-setup.service, systemd-vconsole-setup — Configure the virtual console at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-vconsole-setup.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-vconsole-setup</code></p></div><div class="refsect1"><a name="idm214182834256"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-vconsole-setup.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-vconsole-setup.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-vconsole-setup.service, systemd-vconsole-setup — Configure the virtual console at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-vconsole-setup.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-vconsole-setup</code></p></div><div class="refsect1"><a name="idm214182314736"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-vconsole-setup.service</code>
is an early-boot service that configures the virtual
console font and console keymap. Internally it calls
<a href="loadkeys.html"><span class="citerefentry"><span class="refentrytitle">loadkeys</span>(1)</span></a>
<a href="setfont.html"><span class="citerefentry"><span class="refentrytitle">setfont</span>(8)</span></a>.</p><p>See
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>
for information about the configuration files understood by this
- service.</p></div><div class="refsect1"><a name="idm214183818528"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
+ service.</p></div><div class="refsect1"><a name="idm214182309712"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
<code class="filename">vconsole.conf</code> may be overridden on
the kernel command line:</p><div class="variablelist"><dl class="variablelist"><dt id="vconsole.keymap="><span class="term"><code class="varname">vconsole.keymap=</code>, </span><span class="term"><code class="varname">vconsole.keymap.toggle=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.keymap=">¶</a></dt><dd><p>Overrides the key
mapping table for the keyboard and the
font, the console map, and the unicode
font map.</p></dd></dl></div><p>See
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>
- for information about these settings.</p></div><div class="refsect1"><a name="idm214184454656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ for information about these settings.</p></div><div class="refsect1"><a name="idm214182301088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>,
<a href="loadkeys.html"><span class="citerefentry"><span class="refentrytitle">loadkeys</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD\-VCONSOLE\-SETUP\&.SERVICE" "8" "" "systemd 214" "systemd-vconsole-setup.service"
+.TH "SYSTEMD\-VCONSOLE\-SETUP\&.SERVICE" "8" "" "systemd 215" "systemd-vconsole-setup.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd-vconsole-setup.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-vconsole-setup.service, systemd-vconsole-setup — Configure the virtual console at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-vconsole-setup.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-vconsole-setup</code></p></div><div class="refsect1"><a name="idm214182834256"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-vconsole-setup.service</code>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd-vconsole-setup.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd-vconsole-setup.service, systemd-vconsole-setup — Configure the virtual console at boot</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">systemd-vconsole-setup.service</code></p><p><code class="filename">/usr/lib/systemd/systemd-vconsole-setup</code></p></div><div class="refsect1"><a name="idm214182314736"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="filename">systemd-vconsole-setup.service</code>
is an early-boot service that configures the virtual
console font and console keymap. Internally it calls
<a href="loadkeys.html"><span class="citerefentry"><span class="refentrytitle">loadkeys</span>(1)</span></a>
<a href="setfont.html"><span class="citerefentry"><span class="refentrytitle">setfont</span>(8)</span></a>.</p><p>See
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>
for information about the configuration files understood by this
- service.</p></div><div class="refsect1"><a name="idm214183818528"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
+ service.</p></div><div class="refsect1"><a name="idm214182309712"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>A few configuration parameters from
<code class="filename">vconsole.conf</code> may be overridden on
the kernel command line:</p><div class="variablelist"><dl class="variablelist"><dt id="vconsole.keymap="><span class="term"><code class="varname">vconsole.keymap=</code>, </span><span class="term"><code class="varname">vconsole.keymap.toggle=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.keymap=">¶</a></dt><dd><p>Overrides the key
mapping table for the keyboard and the
font, the console map, and the unicode
font map.</p></dd></dl></div><p>See
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>
- for information about these settings.</p></div><div class="refsect1"><a name="idm214184454656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ for information about these settings.</p></div><div class="refsect1"><a name="idm214182301088"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a>,
<a href="loadkeys.html"><span class="citerefentry"><span class="refentrytitle">loadkeys</span>(1)</span></a>,
'\" t
-.TH "SYSTEMD" "1" "" "systemd 214" "systemd"
+.TH "SYSTEMD" "1" "" "systemd 215" "systemd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
'\" t
-.TH "SYSTEMD\&.AUTOMOUNT" "5" "" "systemd 214" "systemd.automount"
+.TH "SYSTEMD\&.AUTOMOUNT" "5" "" "systemd 215" "systemd.automount"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.automount"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.automount — Automount unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>automount</code></em>.automount</code></p></div><div class="refsect1"><a name="idm214184377216"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.automount"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.automount — Automount unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>automount</code></em>.automount</code></p></div><div class="refsect1"><a name="idm214167439760"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.automount</code>" encodes information
about a file system automount point controlled and
supervised by systemd.</p><p>This man page lists the configuration options
on-demand mounting as well as parallelized mounting of
file systems.</p><p>If an automount point is beneath another mount
point in the file system hierarchy, a dependency
- between both units is created automatically.</p></div><div class="refsect1"><a name="idm214182952224"></a><h2 id="fstab"><code class="filename">fstab</code><a class="headerlink" title="Permalink to this headline" href="#fstab">¶</a></h2><p>Automount units may either be configured via unit
+ between both units is created automatically.</p></div><div class="refsect1"><a name="idm214168557664"></a><h2 id="fstab"><code class="filename">fstab</code><a class="headerlink" title="Permalink to this headline" href="#fstab">¶</a></h2><p>Automount units may either be configured via unit
files, or via <code class="filename">/etc/fstab</code> (see
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>
for details).</p><p>For details how systemd parses
<code class="filename">/etc/fstab</code> see
<a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>.</p><p>If an automount point is configured in both
<code class="filename">/etc/fstab</code> and a unit file, the
- configuration in the latter takes precedence.</p></div><div class="refsect1"><a name="idm214182946096"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Automount files must include an [Automount]
+ configuration in the latter takes precedence.</p></div><div class="refsect1"><a name="idm214167940944"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Automount files must include an [Automount]
section, which carries information about the file
system automount points it supervises. The options
specific to the [Automount] section of automount units
creating these directories. Takes an
access mode in octal
notation. Defaults to
- 0755.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184544896"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ 0755.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169148816"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.DEVICE" "5" "" "systemd 214" "systemd.device"
+.TH "SYSTEMD\&.DEVICE" "5" "" "systemd 215" "systemd.device"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.device"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.device — Device unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>device</code></em>.device</code></p></div><div class="refsect1"><a name="idm214177392224"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.device"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.device — Device unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>device</code></em>.device</code></p></div><div class="refsect1"><a name="idm214189737152"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.device</code>" encodes information about
a device unit as exposed in the
sysfs/<a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>
in systemd as <code class="filename">dev-sda5.device</code>. For
details about the escaping logic used to convert a
file system path to a unit name see
- <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>.</p></div><div class="refsect1"><a name="idm214175966432"></a><h2 id="The udev Database">The udev Database<a class="headerlink" title="Permalink to this headline" href="#The%20udev%20Database">¶</a></h2><p>The settings of device units may either be
+ <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>.</p></div><div class="refsect1"><a name="idm214187635920"></a><h2 id="The udev Database">The udev Database<a class="headerlink" title="Permalink to this headline" href="#The%20udev%20Database">¶</a></h2><p>The settings of device units may either be
configured via unit files, or directly from the udev
database (which is recommended). The following udev device
properties are understood by systemd:</p><div class="variablelist"><dl class="variablelist"><dt id="SYSTEMD_WANTS="><span class="term"><code class="varname">SYSTEMD_WANTS=</code>, </span><span class="term"><code class="varname">SYSTEMD_USER_WANTS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_WANTS=">¶</a></dt><dd><p>Adds dependencies of
<code class="varname">SYSTEMD_READY=0</code> is
set for a device.</p></dd><dt id="ID_MODEL_FROM_DATABASE="><span class="term"><code class="varname">ID_MODEL_FROM_DATABASE=</code>, </span><span class="term"><code class="varname">ID_MODEL=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_MODEL_FROM_DATABASE=">¶</a></dt><dd><p>If set, this property is
used as description string for the
- device unit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214177518320"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ device unit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189381632"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.DIRECTIVES" "7" "" "systemd 214" "systemd.directives"
+.TH "SYSTEMD\&.DIRECTIVES" "7" "" "systemd 215" "systemd.directives"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\fBsystemd.unit\fR(5)
.RE
.PP
+\fIConditionNeedsUpdate=\fR
+.RS 4
+\fBsystemd.unit\fR(5)
+.RE
+.PP
\fIConditionNull=\fR
.RS 4
\fBsystemd.unit\fR(5)
\fBsystemd.unit\fR(5)
.RE
.PP
+\fIDefaultInstance=\fR
+.RS 4
+\fBsystemd.unit\fR(5)
+.RE
+.PP
\fIDescription=\fR
.RS 4
\fBsystemd.unit\fR(5)
\fBsystemd.service\fR(5)
.RE
.PP
+\fIRestartForceExitStatus=\fR
+.RS 4
+\fBsystemd.service\fR(5)
+.RE
+.PP
\fIRestartPreventExitStatus=\fR
.RS 4
\fBsystemd.service\fR(5)
\fBsystemd.resource-control\fR(5)
.RE
.PP
+\fISloppyOptions=\fR
+.RS 4
+\fBsystemd.mount\fR(5)
+.RE
+.PP
\fISmackLabel=\fR
.RS 4
\fBsystemd.socket\fR(5)
\fBsystemd-modules-load.service\fR(8)
.RE
.PP
+\fIrd\&.systemd\&.gpt_auto=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
\fIrd\&.systemd\&.unit=\fR
.RS 4
\fBkernel-command-line\fR(7),
\fBsystemd-udevd.service\fR(8)
.RE
.PP
+\fIro\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
+\fIroot=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
+\fIrootfsflags=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
+\fIrootfstype=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
+\fIrw\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
\fIs\fR
.RS 4
\fBkernel-command-line\fR(7),
\fBsystemd\fR(1)
.RE
.PP
+\fIsystemd\&.debug\-shell\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
\fIsystemd\&.default_standard_error=\fR
.RS 4
\fBkernel-command-line\fR(7),
\fBsystemd\fR(1)
.RE
.PP
+\fIsystemd\&.gpt_auto=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
\fIsystemd\&.journald\&.forward_to_console=\fR
.RS 4
\fBkernel-command-line\fR(7),
\fBsystemd\fR(1)
.RE
.PP
+\fIsystemd\&.mask=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
\fIsystemd\&.restore_state=\fR
.RS 4
\fBkernel-command-line\fR(7),
\fBsystemd\fR(1)
.RE
.PP
+\fIsystemd\&.wants=\fR
+.RS 4
+\fBkernel-command-line\fR(7)
+.RE
+.PP
\fIudev\&.children\-max=\fR
.RS 4
\fBkernel-command-line\fR(7),
\fBsystemd.network\fR(5)
.RE
.PP
+\fIDHCPServer=\fR
+.RS 4
+\fBsystemd.network\fR(5)
+.RE
+.PP
\fIDNS=\fR
.RS 4
\fBresolved.conf\fR(5),
\fIDescription=\fR
.RS 4
\fBsystemd.link\fR(5),
+\fBsystemd.netdev\fR(5),
\fBsystemd.network\fR(5)
.RE
.PP
\fBsystemd.network\fR(5)
.RE
.PP
+\fIDiscoverPathMTU=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
\fIDriver=\fR
.RS 4
\fBsystemd.link\fR(5),
\fBsystemd.network\fR(5)
.RE
.PP
+\fIGroup=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
\fIHost=\fR
.RS 4
\fBsystemd.link\fR(5),
\fBsystemd.network\fR(5)
.RE
.PP
+\fILocal=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
\fIMACAddress=\fR
.RS 4
\fBsystemd.link\fR(5),
+\fBsystemd.netdev\fR(5),
\fBsystemd.network\fR(5)
.RE
.PP
.PP
\fIMTUBytes=\fR
.RS 4
-\fBsystemd.link\fR(5)
+\fBsystemd.link\fR(5),
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
+\fIMacLearning=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
.RE
.PP
\fIMode=\fR
\fBsystemd.netdev\fR(5)
.RE
.PP
+\fIMultiQueue=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
\fIName=\fR
.RS 4
\fBsystemd.link\fR(5),
\fBsystemd.link\fR(5)
.RE
.PP
+\fIOneQueue=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
+\fIPacketInfo=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
\fIPath=\fR
.RS 4
\fBsystemd.link\fR(5),
\fBsystemd.network\fR(5)
.RE
.PP
+\fIRemote=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
+\fISendHostname=\fR
+.RS 4
+\fBsystemd.network\fR(5)
+.RE
+.PP
+\fITOS=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
+\fITTL=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
+\fITunnel=\fR
+.RS 4
+\fBsystemd.network\fR(5)
+.RE
+.PP
\fIType=\fR
.RS 4
\fBsystemd.link\fR(5),
\fBsystemd.network\fR(5)
.RE
.PP
+\fIUseRoutes=\fR
+.RS 4
+\fBsystemd.network\fR(5)
+.RE
+.PP
+\fIUser=\fR
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
\fIVLAN=\fR
.RS 4
\fBsystemd.network\fR(5)
.RE
.PP
+\fIVXLAN=\fR
+.RS 4
+\fBsystemd.network\fR(5)
+.RE
+.PP
\fIVirtualization=\fR
.RS 4
\fBsystemd.link\fR(5),
.RS 4
\fBpam_systemd\fR(8)
.RE
-.SH "CRYPTTAB OPTIONS"
+.SH "/ETC/CRYPTTAB AND /ETC/FSTAB OPTIONS"
.PP
Options which influence mounted filesystems and encrypted volumes\&.
.PP
-\fIcipher=\fR
+\fBauto\fR
.RS 4
-\fBcrypttab\fR(5)
+\fBsystemd.mount\fR(5)
.RE
.PP
-\fIdiscard\fR
+\fBcipher=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIhash=\fR
+\fBdiscard\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIkey\-slot=\fR
+\fBfail\fR
.RS 4
-\fBcrypttab\fR(5)
+\fBsystemd.mount\fR(5)
.RE
.PP
-\fIkeyfile\-offset=\fR
+\fBhash=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIkeyfile\-size=\fR
+\fBkey\-slot=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIluks\fR
+\fBkeyfile\-offset=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fInoauto\fR
+\fBkeyfile\-size=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fInofail\fR
+\fBluks\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIplain\fR
+\fBnoauto\fR
+.RS 4
+\fBcrypttab\fR(5),
+\fBsystemd.mount\fR(5)
+.RE
+.PP
+\fBnofail\fR
+.RS 4
+\fBcrypttab\fR(5),
+\fBsystemd.mount\fR(5)
+.RE
+.PP
+\fBplain\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIread\-only\fR
+\fBread\-only\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIreadonly\fR
+\fBreadonly\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIsize=\fR
+\fBsize=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIswap\fR
+\fBswap\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItcrypt\fR
+\fBtcrypt\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItcrypt\-hidden\fR
+\fBtcrypt\-hidden\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItcrypt\-keyfile=\fR
+\fBtcrypt\-keyfile=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItcrypt\-system\fR
+\fBtcrypt\-system\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItimeout=\fR
+\fBtimeout=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItmp\fR
+\fBtmp\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fItries=\fR
+\fBtries=\fR
.RS 4
\fBcrypttab\fR(5)
.RE
.PP
-\fIverify\fR
+\fBverify\fR
.RS 4
\fBcrypttab\fR(5)
.RE
+.PP
+\fBx\-initrd\&.mount\fR
+.RS 4
+\fBsystemd.mount\fR(5)
+.RE
+.PP
+\fBx\-systemd\&.automount\fR
+.RS 4
+\fBsystemd.mount\fR(5)
+.RE
+.PP
+\fBx\-systemd\&.device\-timeout=\fR
+.RS 4
+\fBsystemd.mount\fR(5)
+.RE
.SH "SYSTEM MANAGER DIRECTIVES"
.PP
Directives for configuring the behaviour of the systemd process\&.
.PP
\fB\-\-field=\fR
.RS 4
-\fBjournalctl\fR(1),
-\fBsystemd-coredumpctl\fR(1)
+\fBcoredumpctl\fR(1),
+\fBjournalctl\fR(1)
.RE
.PP
\fB\-\-file\-size\-max=\fR
.RS 4
\fBbootctl\fR(1),
\fBbusctl\fR(1),
+\fBcoredumpctl\fR(1),
\fBhalt\fR(8),
\fBhostnamectl\fR(1),
\fBjournalctl\fR(1),
\fBsystemd-cat\fR(1),
\fBsystemd-cgls\fR(1),
\fBsystemd-cgtop\fR(1),
-\fBsystemd-coredumpctl\fR(1),
\fBsystemd-delta\fR(1),
\fBsystemd-detect-virt\fR(1),
\fBsystemd-inhibit\fR(1),
\fBsystemd-machine-id-setup\fR(1),
\fBsystemd-notify\fR(1),
\fBsystemd-nspawn\fR(1),
+\fBsystemd-path\fR(1),
\fBsystemd-readahead-replay.service\fR(8),
\fBsystemd-run\fR(1),
\fBsystemd-socket-proxyd\fR(8),
\fBsystemd-suspend.service\fR(8),
+\fBsystemd-sysusers\fR(8),
\fBsystemd-tmpfiles\fR(8),
\fBsystemd-tty-ask-password-agent\fR(1),
\fBsystemd-udevd.service\fR(8),
\fB\-\-no\-legend\fR
.RS 4
\fBbusctl\fR(1),
+\fBcoredumpctl\fR(1),
\fBloginctl\fR(1),
\fBmachinectl\fR(1),
-\fBsystemctl\fR(1),
-\fBsystemd-coredumpctl\fR(1)
+\fBsystemctl\fR(1)
.RE
.PP
\fB\-\-no\-pager\fR
.RS 4
\fBbusctl\fR(1),
+\fBcoredumpctl\fR(1),
\fBjournalctl\fR(1),
\fBlocalectl\fR(1),
\fBloginctl\fR(1),
\fBsystemctl\fR(1),
\fBsystemd-analyze\fR(1),
\fBsystemd-cgls\fR(1),
-\fBsystemd-coredumpctl\fR(1),
\fBsystemd-delta\fR(1),
\fBtimedatectl\fR(1)
.RE
.PP
\fB\-\-output=\fR
.RS 4
+\fBcoredumpctl\fR(1),
\fBjournalctl\fR(1),
\fBsystemctl\fR(1),
-\fBsystemd-coredumpctl\fR(1),
\fBsystemd-journal-remote\fR(8)
.RE
.PP
\fBsystemd-tmpfiles\fR(8)
.RE
.PP
+\fB\-\-preset\-mode=\fR
+.RS 4
+\fBsystemctl\fR(1)
+.RE
+.PP
\fB\-\-pretty\fR
.RS 4
\fBhostnamectl\fR(1)
\fBjournalctl\fR(1),
\fBsystemctl\fR(1),
\fBsystemd-machine-id-setup\fR(1),
+\fBsystemd-sysusers\fR(8),
\fBsystemd-tmpfiles\fR(8),
\fBudevadm\fR(8)
.RE
\fBudevadm\fR(8)
.RE
.PP
+\fB\-\-suffix=\fR
+.RS 4
+\fBsystemd-path\fR(1)
+.RE
+.PP
\fB\-\-sysname\-match=\fR
.RS 4
\fBudevadm\fR(8)
.RS 4
\fBbootctl\fR(1),
\fBbusctl\fR(1),
+\fBcoredumpctl\fR(1),
\fBhostnamectl\fR(1),
\fBjournalctl\fR(1),
\fBlocalectl\fR(1),
\fBsystemd-cat\fR(1),
\fBsystemd-cgls\fR(1),
\fBsystemd-cgtop\fR(1),
-\fBsystemd-coredumpctl\fR(1),
\fBsystemd-delta\fR(1),
\fBsystemd-detect-virt\fR(1),
\fBsystemd-inhibit\fR(1),
\fBsystemd-machine-id-setup\fR(1),
\fBsystemd-notify\fR(1),
\fBsystemd-nspawn\fR(1),
+\fBsystemd-path\fR(1),
\fBsystemd-readahead-replay.service\fR(8),
\fBsystemd-run\fR(1),
\fBsystemd-socket-proxyd\fR(8),
\fBsystemd-suspend.service\fR(8),
+\fBsystemd-sysusers\fR(8),
\fBsystemd-tmpfiles\fR(8),
\fBsystemd-tty-ask-password-agent\fR(1),
\fBsystemd-udevd.service\fR(8),
\fBhalt\fR(8)
.RE
.PP
+\fB\-1\fR
+.RS 4
+\fBcoredumpctl\fR(1)
+.RE
+.PP
\fB\-A\fR
.RS 4
\fBudevadm\fR(8)
.PP
\fB\-F\fR
.RS 4
+\fBcoredumpctl\fR(1),
\fBjournalctl\fR(1),
-\fBsystemd-bootchart\fR(1),
-\fBsystemd-coredumpctl\fR(1)
+\fBsystemd-bootchart\fR(1)
.RE
.PP
\fB\-H\fR
.RS 4
\fBbootctl\fR(1),
\fBbusctl\fR(1),
+\fBcoredumpctl\fR(1),
\fBhostnamectl\fR(1),
\fBjournalctl\fR(1),
\fBlocalectl\fR(1),
\fBsystemd-cat\fR(1),
\fBsystemd-cgls\fR(1),
\fBsystemd-cgtop\fR(1),
-\fBsystemd-coredumpctl\fR(1),
\fBsystemd-delta\fR(1),
\fBsystemd-detect-virt\fR(1),
\fBsystemd-inhibit\fR(1),
\fBsystemd-machine-id-setup\fR(1),
\fBsystemd-notify\fR(1),
\fBsystemd-nspawn\fR(1),
+\fBsystemd-path\fR(1),
\fBsystemd-readahead-replay.service\fR(8),
\fBsystemd-run\fR(1),
\fBsystemd-socket-proxyd\fR(8),
\fBsystemd-suspend.service\fR(8),
+\fBsystemd-sysusers\fR(8),
\fBsystemd-tmpfiles\fR(8),
\fBsystemd-tty-ask-password-agent\fR(1),
\fBtimedatectl\fR(1),
.PP
\fB\-o\fR
.RS 4
+\fBcoredumpctl\fR(1),
\fBjournalctl\fR(1),
\fBsystemctl\fR(1),
-\fBsystemd-bootchart\fR(1),
-\fBsystemd-coredumpctl\fR(1)
+\fBsystemd-bootchart\fR(1)
.RE
.PP
\fB\-p\fR
.PP
\fICompress=\fR
.RS 4
+\fBcoredump.conf\fR(5),
\fBjournald.conf\fR(5)
.RE
.PP
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIExternalSizeMax=\fR
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
\fIF\fR
.RS 4
\fBtmpfiles.d\fR(5)
\fBlogind.conf\fR(5)
.RE
.PP
+\fIJournalSizeMax=\fR
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
\fIKEYMAP=\fR
.RS 4
\fBvconsole.conf\fR(5)
\fBvconsole.conf\fR(5)
.RE
.PP
+\fIKeepFree=\fR
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
\fIKillExcludeUsers=\fR
.RS 4
\fBlogind.conf\fR(5)
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIL+\fR
+.RS 4
+\fBtmpfiles.d\fR(5)
+.RE
+.PP
\fILidSwitchIgnoreInhibited=\fR
.RS 4
\fBlogind.conf\fR(5)
\fBjournald.conf\fR(5)
.RE
.PP
+\fIMaxUse=\fR
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
\fINAME=\fR
.RS 4
\fBos-release\fR(5)
\fBlogind.conf\fR(5)
.RE
.PP
+\fIProcessSizeMax=\fR
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
\fIR\fR
.RS 4
\fBtmpfiles.d\fR(5)
.PP
\fIStorage=\fR
.RS 4
+\fBcoredump.conf\fR(5),
\fBjournald.conf\fR(5)
.RE
.PP
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIb+\fR
+.RS 4
+\fBtmpfiles.d\fR(5)
+.RE
+.PP
\fIc\fR
.RS 4
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIc+\fR
+.RS 4
+\fBtmpfiles.d\fR(5)
+.RE
+.PP
\fId\fR
.RS 4
\fBtmpfiles.d\fR(5)
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIg\fR
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
\fIh\fR
.RS 4
\fBtmpfiles.d\fR(5)
.PP
\fBm\fR
.RS 4
+\fBsysusers.d\fR(5),
\fBtmpfiles.d\fR(5)
.RE
.PP
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIp+\fR
+.RS 4
+\fBtmpfiles.d\fR(5)
+.RE
+.PP
\fBr\fR
.RS 4
\fBtmpfiles.d\fR(5)
\fBtmpfiles.d\fR(5)
.RE
.PP
+\fIu\fR
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
\fIudev_log\fR
.RS 4
\fBsystemd-udevd.service\fR(8)
.PP
/
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd-gpt-auto-generator\fR(8),
\fBsystemd-remount-fs.service\fR(8),
-\fBsystemd.unit\fR(5)
+\fBsystemd.unit\fR(5),
+\fBsysusers.d\fR(5)
.RE
.PP
$HOME/\&.config/systemd/user/
.PP
/bin
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5)
.RE
.PP
.PP
/boot
.RS 4
+\fBfile-hierarchy\fR(7),
\fBkernel-install\fR(8),
\fBsystemd-efi-boot-generator\fR(8),
\fBsystemd-gpt-auto-generator\fR(8)
.PP
/dev
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd-nspawn\fR(1),
\fBsystemd-remount-fs.service\fR(8),
\fBsystemd.device\fR(5),
\fBsystemd-gpt-auto-generator\fR(8)
.RE
.PP
+/dev/net/tun
+.RS 4
+\fBsystemd.netdev\fR(5)
+.RE
+.PP
/dev/null
.RS 4
\fBbinfmt.d\fR(5),
\fBsystemd.resource-control\fR(5)
.RE
.PP
+/dev/shm
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/dev/urandom
.RS 4
\fBcrypttab\fR(5),
\fBsystemd.resource-control\fR(5)
.RE
.PP
-/etc/
+/etc
.RS 4
\fBbinfmt.d\fR(5),
+\fBfile-hierarchy\fR(7),
\fBmodules-load.d\fR(5),
\fBnss-myhostname\fR(8),
+\fBos-release\fR(5),
\fBsysctl.d\fR(5),
\fBsystemctl\fR(1),
\fBsystemd-delta\fR(1),
+\fBsystemd-update-done.service\fR(8),
\fBsystemd.exec\fR(5),
\fBsystemd.link\fR(5),
\fBsystemd.mount\fR(5),
\fBsystemd.netdev\fR(5),
\fBsystemd.network\fR(5),
\fBsystemd.preset\fR(5),
+\fBsystemd.unit\fR(5),
\fBudev\fR(7)
.RE
.PP
+/etc/\&.updated
+.RS 4
+\fBsystemd-update-done.service\fR(8)
+.RE
+.PP
/etc/adjtime
.RS 4
\fBtimedatectl\fR(1)
\fBsystemd.swap\fR(5)
.RE
.PP
+/etc/group
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
/etc/hostname
.RS 4
\fBhostname\fR(5),
\fBmodules-load.d\fR(5)
.RE
.PP
+/etc/modules\-load\&.d/bridge\&.conf
+.RS 4
+\fBsysctl.d\fR(5)
+.RE
+.PP
/etc/nsswitch\&.conf
.RS 4
\fBnss-myhostname\fR(8)
\fBsystemd-nspawn\fR(1)
.RE
.PP
+/etc/passwd
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
/etc/resolv\&.conf
.RS 4
\fBsystemd-resolved.service\fR(8)
\fBsysctl.d\fR(5)
.RE
.PP
+/etc/sysctl\&.d/bridge\&.conf
+.RS 4
+\fBsysctl.d\fR(5)
+.RE
+.PP
+/etc/sysctl\&.d/domain\-name\&.conf
+.RS 4
+\fBsysctl.d\fR(5)
+.RE
+.PP
/etc/systemd/bootchart\&.conf
.RS 4
\fBbootchart.conf\fR(5),
\fBsystemd-bootchart\fR(1)
.RE
.PP
+/etc/systemd/coredump\&.conf
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
/etc/systemd/journald\&.conf
.RS 4
\fBjournald.conf\fR(5),
\fBudev\fR(7)
.RE
.PP
+/etc/udev/rules\&.d/99\-bridge\&.conf
+.RS 4
+\fBsysctl.d\fR(5)
+.RE
+.PP
/etc/udev/udev\&.conf
.RS 4
\fBsystemd-udevd.service\fR(8)
.PP
/home
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd-gpt-auto-generator\fR(8),
\fBsystemd.exec\fR(5)
.RE
.PP
/lib
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd-delta\fR(1)
.RE
.PP
+/lib64
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/proc
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsd-login\fR(3),
\fBsd_bus_creds_get_pid\fR(3),
\fBsd_bus_creds_new_from_pid\fR(3),
.PP
/proc/sys
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd-nspawn\fR(1)
.RE
.PP
\fBsystemd.socket\fR(5)
.RE
.PP
-/run/
+/root
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
+/run
.RS 4
\fBbinfmt.d\fR(5),
+\fBfile-hierarchy\fR(7),
\fBmodules-load.d\fR(5),
\fBsd-login\fR(3),
\fBsysctl.d\fR(5),
/run/log
.RS 4
\fBbootchart.conf\fR(5),
+\fBfile-hierarchy\fR(7),
\fBsystemd-bootchart\fR(1)
.RE
.PP
.PP
/run/user
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5)
.RE
.PP
.PP
/sbin
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5)
.RE
.PP
+/sbin/fsck\&.
+.RS 4
+\fBsystemd-fsck@.service\fR(8)
+.RE
+.PP
/sbin/init
.RS 4
\fBbootchart.conf\fR(5)
.RE
.PP
+/sbin/login
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
/srv
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd-gpt-auto-generator\fR(8)
.RE
.PP
/sys
.RS 4
+\fBfile-hierarchy\fR(7),
\fBloginctl\fR(1),
\fBsd_is_fifo\fR(3),
\fBsystemd\fR(1),
/tmp
.RS 4
\fBcrypttab\fR(5),
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5),
\fBsystemd.unit\fR(5),
\fBtmpfiles.d\fR(5)
/usr
.RS 4
\fBbootup\fR(7),
+\fBfile-hierarchy\fR(7),
\fBsystemd-remount-fs.service\fR(8),
+\fBsystemd-update-done.service\fR(8),
\fBsystemd.exec\fR(5),
-\fBsystemd.mount\fR(5)
+\fBsystemd.mount\fR(5),
+\fBsystemd.unit\fR(5)
.RE
.PP
/usr/bin
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5)
.RE
.PP
\fBsystemctl\fR(1)
.RE
.PP
-/usr/lib/
+/usr/include
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
+/usr/lib
.RS 4
\fBbinfmt.d\fR(5),
+\fBfile-hierarchy\fR(7),
\fBmodules-load.d\fR(5),
\fBsysctl.d\fR(5),
\fBsystemd-delta\fR(1),
\fBmodules-load.d\fR(5)
.RE
.PP
+/usr/lib/os\-release
+.RS 4
+\fBkernel-install\fR(8),
+\fBos-release\fR(5),
+\fBsystemd-nspawn\fR(1)
+.RE
+.PP
/usr/lib/sysctl\&.d/*\&.conf
.RS 4
\fBsysctl.d\fR(5)
\fBsystemd-cryptsetup-generator\fR(8)
.RE
.PP
+/usr/lib/systemd/system\-generators/systemd\-debug\-generator
+.RS 4
+\fBsystemd-debug-generator\fR(8)
+.RE
+.PP
/usr/lib/systemd/system\-generators/systemd\-efi\-boot\-generator
.RS 4
\fBsystemd-efi-boot-generator\fR(8)
\fBsystemd-udevd.service\fR(8)
.RE
.PP
+/usr/lib/systemd/systemd\-update\-done
+.RS 4
+\fBsystemd-update-done.service\fR(8)
+.RE
+.PP
/usr/lib/systemd/systemd\-update\-utmp
.RS 4
\fBsystemd-update-utmp.service\fR(8)
\fBsystemd.preset\fR(5)
.RE
.PP
+/usr/lib/sysusers\&.d/
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
+/usr/lib/sysusers\&.d/*\&.conf
+.RS 4
+\fBsysusers.d\fR(5)
+.RE
+.PP
/usr/lib/tmpfiles\&.d
.RS 4
\fBtmpfiles.d\fR(5)
\fBudev\fR(7)
.RE
.PP
+/usr/lib64
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/usr/local/bin
.RS 4
\fBsystemd.exec\fR(5)
.PP
/usr/sbin
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5)
.RE
.PP
+/usr/share
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
+/usr/share/doc
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
+/usr/share/factory
+.RS 4
+\fBfile-hierarchy\fR(7),
+\fBtmpfiles.d\fR(5)
+.RE
+.PP
+/usr/share/factory/etc
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
+/usr/share/factory/var
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/usr/share/zoneinfo/
.RS 4
\fBlocaltime\fR(5)
.PP
/var
.RS 4
+\fBfile-hierarchy\fR(7),
\fBjournald.conf\fR(5),
\fBsystemd-journald.service\fR(8),
\fBsystemd-nspawn\fR(1),
+\fBsystemd-update-done.service\fR(8),
+\fBsystemd.unit\fR(5),
\fBtmpfiles.d\fR(5)
.RE
.PP
+/var/\&.updated
+.RS 4
+\fBsystemd-update-done.service\fR(8)
+.RE
+.PP
+/var/cache
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
+/var/lib
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/var/lib/dbus/machine\-id
.RS 4
\fBmachine-id\fR(5)
\fBsystemd-backlight@.service\fR(8)
.RE
.PP
+/var/lib/systemd/coredump
+.RS 4
+\fBcoredump.conf\fR(5)
+.RE
+.PP
/var/lib/systemd/random\-seed
.RS 4
\fBsystemd-random-seed.service\fR(8)
\fBsystemd-rfkill@.service\fR(8)
.RE
.PP
+/var/log
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/var/log/journal
.RS 4
\fBjournald.conf\fR(5),
.PP
/var/run
.RS 4
+\fBfile-hierarchy\fR(7),
\fBtmpfiles.d\fR(5)
.RE
.PP
\fBrunlevel\fR(8)
.RE
.PP
+/var/spool
+.RS 4
+\fBfile-hierarchy\fR(7)
+.RE
+.PP
/var/tmp
.RS 4
+\fBfile-hierarchy\fR(7),
\fBsystemd.exec\fR(5),
\fBtmpfiles.d\fR(5)
.RE
\fBbusctl\fR(1)
.RE
.PP
+\fBcoredumpctl\fR
+.RS 4
+\fBcoredumpctl\fR(1)
+.RE
+.PP
+cryptsetup\-pre\&.target
+.RS 4
+\fBsystemd.special\fR(7)
+.RE
+.PP
cryptsetup\&.target
.RS 4
\fBsystemd.special\fR(7)
\fBsystemd-cgtop\fR(1)
.RE
.PP
-\fBsystemd\-coredumpctl\fR
-.RS 4
-\fBsystemd-coredumpctl\fR(1)
-.RE
-.PP
systemd\-cryptsetup@\&.service
.RS 4
\fBsystemd-cryptsetup@.service\fR(8)
\fBsystemd-nspawn\fR(1)
.RE
.PP
+\fBsystemd\-path\fR
+.RS 4
+\fBsystemd-path\fR(1)
+.RE
+.PP
systemd\-poweroff\&.service
.RS 4
\fBsystemd-halt.service\fR(8)
\fBsystemd-sysctl.service\fR(8)
.RE
.PP
+\fBsystemd\-sysusers\fR
+.RS 4
+\fBsystemd-sysusers\fR(8)
+.RE
+.PP
+systemd\-sysusers\&.service
+.RS 4
+\fBsystemd-sysusers\fR(8)
+.RE
+.PP
systemd\-timedated\&.service
.RS 4
\fBsystemd-timedated.service\fR(8)
\fBsystemd-udevd.service\fR(8)
.RE
.PP
+systemd\-update\-done\&.service
+.RS 4
+\fBsystemd-update-done.service\fR(8)
+.RE
+.PP
systemd\-update\-utmp\-runlevel\&.service
.RS 4
\fBsystemd-update-utmp.service\fR(8)
.RE
.SH "COLOPHON"
.PP
-This index contains 1535 entries in 14 sections, referring to 170 individual manual pages\&.
+This index contains 1621 entries in 14 sections, referring to 177 individual manual pages\&.
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.directives"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.directives — Index of configuration directives</p></div><div class="refsect1"><a name="idm214187248224"></a><h2 id="Unit directives">Unit directives<a class="headerlink" title="Permalink to this headline" href="#Unit%20directives">¶</a></h2><p>Directives for configuring units, used in unit
- files.</p><div class="variablelist"><a name="unit-directives"></a><dl class="variablelist"><dt id="Accept="><span class="term"><code class="varname">Accept=</code></span><a class="headerlink" title="Permalink to this term" href="#Accept=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="AccuracySec="><span class="term"><code class="varname">AccuracySec=</code></span><a class="headerlink" title="Permalink to this term" href="#AccuracySec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="After="><span class="term"><code class="varname">After=</code></span><a class="headerlink" title="Permalink to this term" href="#After=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Alias="><span class="term"><code class="varname">Alias=</code></span><a class="headerlink" title="Permalink to this term" href="#Alias=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="AllowIsolate="><span class="term"><code class="varname">AllowIsolate=</code></span><a class="headerlink" title="Permalink to this term" href="#AllowIsolate=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Also="><span class="term"><code class="varname">Also=</code></span><a class="headerlink" title="Permalink to this term" href="#Also=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="AppArmorProfile="><span class="term"><code class="varname">AppArmorProfile=</code></span><a class="headerlink" title="Permalink to this term" href="#AppArmorProfile=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Backlog="><span class="term"><code class="varname">Backlog=</code></span><a class="headerlink" title="Permalink to this term" href="#Backlog=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Before="><span class="term"><code class="varname">Before=</code></span><a class="headerlink" title="Permalink to this term" href="#Before=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="BindIPv6Only="><span class="term"><code class="varname">BindIPv6Only=</code></span><a class="headerlink" title="Permalink to this term" href="#BindIPv6Only=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="BindToDevice="><span class="term"><code class="varname">BindToDevice=</code></span><a class="headerlink" title="Permalink to this term" href="#BindToDevice=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="BindsTo="><span class="term"><code class="varname">BindsTo=</code></span><a class="headerlink" title="Permalink to this term" href="#BindsTo=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="BlockIOAccounting="><span class="term"><code class="varname">BlockIOAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOAccounting=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIODeviceWeight="><span class="term"><code class="varname">BlockIODeviceWeight=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIODeviceWeight=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIOReadBandwidth="><span class="term"><code class="varname">BlockIOReadBandwidth=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOReadBandwidth=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIOWeight="><span class="term"><code class="varname">BlockIOWeight=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOWeight=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIOWriteBandwidth="><span class="term"><code class="varname">BlockIOWriteBandwidth=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOWriteBandwidth=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="Broadcast="><span class="term"><code class="varname">Broadcast=</code></span><a class="headerlink" title="Permalink to this term" href="#Broadcast=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="BusName="><span class="term"><code class="varname">BusName=</code></span><a class="headerlink" title="Permalink to this term" href="#BusName=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="CPUAccounting="><span class="term"><code class="varname">CPUAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAccounting=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="CPUAffinity="><span class="term"><code class="varname">CPUAffinity=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAffinity=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUQuota="><span class="term"><code class="varname">CPUQuota=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUQuota=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="CPUSchedulingPolicy="><span class="term"><code class="varname">CPUSchedulingPolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUSchedulingPolicy=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUSchedulingPriority="><span class="term"><code class="varname">CPUSchedulingPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUSchedulingPriority=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUSchedulingResetOnFork="><span class="term"><code class="varname">CPUSchedulingResetOnFork=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUSchedulingResetOnFork=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUShares="><span class="term"><code class="varname">CPUShares=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUShares=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="Capabilities="><span class="term"><code class="varname">Capabilities=</code></span><a class="headerlink" title="Permalink to this term" href="#Capabilities=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CapabilityBoundingSet="><span class="term"><code class="varname">CapabilityBoundingSet=</code></span><a class="headerlink" title="Permalink to this term" href="#CapabilityBoundingSet=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ConditionACPower="><span class="term"><code class="varname">ConditionACPower=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionACPower=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionArchitecture="><span class="term"><code class="varname">ConditionArchitecture=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionArchitecture=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionCapability="><span class="term"><code class="varname">ConditionCapability=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionCapability=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionDirectoryNotEmpty="><span class="term"><code class="varname">ConditionDirectoryNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionDirectoryNotEmpty=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionFileIsExecutable="><span class="term"><code class="varname">ConditionFileIsExecutable=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionFileIsExecutable=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionFileNotEmpty="><span class="term"><code class="varname">ConditionFileNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionFileNotEmpty=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionHost="><span class="term"><code class="varname">ConditionHost=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionHost=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionKernelCommandLine="><span class="term"><code class="varname">ConditionKernelCommandLine=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionKernelCommandLine=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionNull="><span class="term"><code class="varname">ConditionNull=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionNull=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathExists="><span class="term"><code class="varname">ConditionPathExists=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathExists=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathExistsGlob="><span class="term"><code class="varname">ConditionPathExistsGlob=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathExistsGlob=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsDirectory="><span class="term"><code class="varname">ConditionPathIsDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsDirectory=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsMountPoint="><span class="term"><code class="varname">ConditionPathIsMountPoint=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsMountPoint=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsReadWrite="><span class="term"><code class="varname">ConditionPathIsReadWrite=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsReadWrite=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsSymbolicLink="><span class="term"><code class="varname">ConditionPathIsSymbolicLink=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsSymbolicLink=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionSecurity="><span class="term"><code class="varname">ConditionSecurity=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionSecurity=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionVirtualization="><span class="term"><code class="varname">ConditionVirtualization=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionVirtualization=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Conflicts="><span class="term"><code class="varname">Conflicts=</code></span><a class="headerlink" title="Permalink to this term" href="#Conflicts=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="DefaultDependencies="><span class="term"><code class="varname">DefaultDependencies=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultDependencies=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="DeviceAllow="><span class="term"><code class="varname">DeviceAllow=</code></span><a class="headerlink" title="Permalink to this term" href="#DeviceAllow=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="DevicePolicy="><span class="term"><code class="varname">DevicePolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#DevicePolicy=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="DirectoryMode="><span class="term"><code class="varname">DirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="#DirectoryMode=">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="DirectoryNotEmpty="><span class="term"><code class="varname">DirectoryNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#DirectoryNotEmpty=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="Documentation="><span class="term"><code class="varname">Documentation=</code></span><a class="headerlink" title="Permalink to this term" href="#Documentation=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Environment="><span class="term"><code class="varname">Environment=</code></span><a class="headerlink" title="Permalink to this term" href="#Environment=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="EnvironmentFile="><span class="term"><code class="varname">EnvironmentFile=</code></span><a class="headerlink" title="Permalink to this term" href="#EnvironmentFile=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ExecReload="><span class="term"><code class="varname">ExecReload=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecReload=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ExecStart="><span class="term"><code class="varname">ExecStart=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStart=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ExecStartPost="><span class="term"><code class="varname">ExecStartPost=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStartPost=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ExecStartPre="><span class="term"><code class="varname">ExecStartPre=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStartPre=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ExecStop="><span class="term"><code class="varname">ExecStop=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStop=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ExecStopPost="><span class="term"><code class="varname">ExecStopPost=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStopPost=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ExecStopPre="><span class="term"><code class="varname">ExecStopPre=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStopPre=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="FailureAction="><span class="term"><code class="varname">FailureAction=</code></span><a class="headerlink" title="Permalink to this term" href="#FailureAction=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="FreeBind="><span class="term"><code class="varname">FreeBind=</code></span><a class="headerlink" title="Permalink to this term" href="#FreeBind=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Group="><span class="term"><code class="varname">Group=</code></span><a class="headerlink" title="Permalink to this term" href="#Group=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="GuessMainPID="><span class="term"><code class="varname">GuessMainPID=</code></span><a class="headerlink" title="Permalink to this term" href="#GuessMainPID=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="IOSchedulingClass="><span class="term"><code class="varname">IOSchedulingClass=</code></span><a class="headerlink" title="Permalink to this term" href="#IOSchedulingClass=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="IOSchedulingPriority="><span class="term"><code class="varname">IOSchedulingPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#IOSchedulingPriority=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="IPTOS="><span class="term"><code class="varname">IPTOS=</code></span><a class="headerlink" title="Permalink to this term" href="#IPTOS=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="IPTTL="><span class="term"><code class="varname">IPTTL=</code></span><a class="headerlink" title="Permalink to this term" href="#IPTTL=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="IgnoreOnIsolate="><span class="term"><code class="varname">IgnoreOnIsolate=</code></span><a class="headerlink" title="Permalink to this term" href="#IgnoreOnIsolate=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="IgnoreOnSnapshot="><span class="term"><code class="varname">IgnoreOnSnapshot=</code></span><a class="headerlink" title="Permalink to this term" href="#IgnoreOnSnapshot=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="IgnoreSIGPIPE="><span class="term"><code class="varname">IgnoreSIGPIPE=</code></span><a class="headerlink" title="Permalink to this term" href="#IgnoreSIGPIPE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="InaccessibleDirectories="><span class="term"><code class="varname">InaccessibleDirectories=</code></span><a class="headerlink" title="Permalink to this term" href="#InaccessibleDirectories=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="JobTimeoutSec="><span class="term"><code class="varname">JobTimeoutSec=</code></span><a class="headerlink" title="Permalink to this term" href="#JobTimeoutSec=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="JoinsNamespaceOf="><span class="term"><code class="varname">JoinsNamespaceOf=</code></span><a class="headerlink" title="Permalink to this term" href="#JoinsNamespaceOf=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="KeepAlive="><span class="term"><code class="varname">KeepAlive=</code></span><a class="headerlink" title="Permalink to this term" href="#KeepAlive=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="KillMode="><span class="term"><code class="varname">KillMode=</code></span><a class="headerlink" title="Permalink to this term" href="#KillMode=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="KillSignal="><span class="term"><code class="varname">KillSignal=</code></span><a class="headerlink" title="Permalink to this term" href="#KillSignal=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="LimitAS="><span class="term"><code class="varname">LimitAS=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitAS=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitCORE="><span class="term"><code class="varname">LimitCORE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitCORE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitCPU="><span class="term"><code class="varname">LimitCPU=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitCPU=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitDATA="><span class="term"><code class="varname">LimitDATA=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitDATA=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitFSIZE="><span class="term"><code class="varname">LimitFSIZE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitFSIZE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitLOCKS="><span class="term"><code class="varname">LimitLOCKS=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitLOCKS=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitMEMLOCK="><span class="term"><code class="varname">LimitMEMLOCK=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitMEMLOCK=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitMSGQUEUE="><span class="term"><code class="varname">LimitMSGQUEUE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitMSGQUEUE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitNICE="><span class="term"><code class="varname">LimitNICE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitNICE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitNOFILE="><span class="term"><code class="varname">LimitNOFILE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitNOFILE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitNPROC="><span class="term"><code class="varname">LimitNPROC=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitNPROC=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitRSS="><span class="term"><code class="varname">LimitRSS=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitRSS=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitRTPRIO="><span class="term"><code class="varname">LimitRTPRIO=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitRTPRIO=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitRTTIME="><span class="term"><code class="varname">LimitRTTIME=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitRTTIME=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitSIGPENDING="><span class="term"><code class="varname">LimitSIGPENDING=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitSIGPENDING=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitSTACK="><span class="term"><code class="varname">LimitSTACK=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitSTACK=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ListenDatagram="><span class="term"><code class="varname">ListenDatagram=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenDatagram=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenFIFO="><span class="term"><code class="varname">ListenFIFO=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenFIFO=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenMessageQueue="><span class="term"><code class="varname">ListenMessageQueue=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenMessageQueue=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenNetlink="><span class="term"><code class="varname">ListenNetlink=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenNetlink=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenSequentialPacket="><span class="term"><code class="varname">ListenSequentialPacket=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenSequentialPacket=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenSpecial="><span class="term"><code class="varname">ListenSpecial=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenSpecial=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenStream="><span class="term"><code class="varname">ListenStream=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenStream=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MakeDirectory="><span class="term"><code class="varname">MakeDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#MakeDirectory=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="Mark="><span class="term"><code class="varname">Mark=</code></span><a class="headerlink" title="Permalink to this term" href="#Mark=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MaxConnections="><span class="term"><code class="varname">MaxConnections=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxConnections=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MemoryAccounting="><span class="term"><code class="varname">MemoryAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#MemoryAccounting=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="MemoryLimit="><span class="term"><code class="varname">MemoryLimit=</code></span><a class="headerlink" title="Permalink to this term" href="#MemoryLimit=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="MessageQueueMaxMessages="><span class="term"><code class="varname">MessageQueueMaxMessages=</code></span><a class="headerlink" title="Permalink to this term" href="#MessageQueueMaxMessages=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MessageQueueMessageSize="><span class="term"><code class="varname">MessageQueueMessageSize=</code></span><a class="headerlink" title="Permalink to this term" href="#MessageQueueMessageSize=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MountFlags="><span class="term"><code class="varname">MountFlags=</code></span><a class="headerlink" title="Permalink to this term" href="#MountFlags=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Nice="><span class="term"><code class="varname">Nice=</code></span><a class="headerlink" title="Permalink to this term" href="#Nice=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="NoNewPrivileges="><span class="term"><code class="varname">NoNewPrivileges=</code></span><a class="headerlink" title="Permalink to this term" href="#NoNewPrivileges=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="NonBlocking="><span class="term"><code class="varname">NonBlocking=</code></span><a class="headerlink" title="Permalink to this term" href="#NonBlocking=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="NotifyAccess="><span class="term"><code class="varname">NotifyAccess=</code></span><a class="headerlink" title="Permalink to this term" href="#NotifyAccess=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="OOMScoreAdjust="><span class="term"><code class="varname">OOMScoreAdjust=</code></span><a class="headerlink" title="Permalink to this term" href="#OOMScoreAdjust=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="OnActiveSec="><span class="term"><code class="varname">OnActiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnActiveSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnBootSec="><span class="term"><code class="varname">OnBootSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnBootSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnCalendar="><span class="term"><code class="varname">OnCalendar=</code></span><a class="headerlink" title="Permalink to this term" href="#OnCalendar=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnFailure="><span class="term"><code class="varname">OnFailure=</code></span><a class="headerlink" title="Permalink to this term" href="#OnFailure=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="OnFailureJobMode="><span class="term"><code class="varname">OnFailureJobMode=</code></span><a class="headerlink" title="Permalink to this term" href="#OnFailureJobMode=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="OnStartupSec="><span class="term"><code class="varname">OnStartupSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnStartupSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnUnitActiveSec="><span class="term"><code class="varname">OnUnitActiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnUnitActiveSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnUnitInactiveSec="><span class="term"><code class="varname">OnUnitInactiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnUnitInactiveSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="Options="><span class="term"><code class="varname">Options=</code></span><a class="headerlink" title="Permalink to this term" href="#Options=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="PAMName="><span class="term"><code class="varname">PAMName=</code></span><a class="headerlink" title="Permalink to this term" href="#PAMName=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PIDFile="><span class="term"><code class="varname">PIDFile=</code></span><a class="headerlink" title="Permalink to this term" href="#PIDFile=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="PartOf="><span class="term"><code class="varname">PartOf=</code></span><a class="headerlink" title="Permalink to this term" href="#PartOf=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="PassCredentials="><span class="term"><code class="varname">PassCredentials=</code></span><a class="headerlink" title="Permalink to this term" href="#PassCredentials=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="PassSecurity="><span class="term"><code class="varname">PassSecurity=</code></span><a class="headerlink" title="Permalink to this term" href="#PassSecurity=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="PathChanged="><span class="term"><code class="varname">PathChanged=</code></span><a class="headerlink" title="Permalink to this term" href="#PathChanged=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PathExists="><span class="term"><code class="varname">PathExists=</code></span><a class="headerlink" title="Permalink to this term" href="#PathExists=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PathExistsGlob="><span class="term"><code class="varname">PathExistsGlob=</code></span><a class="headerlink" title="Permalink to this term" href="#PathExistsGlob=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PathModified="><span class="term"><code class="varname">PathModified=</code></span><a class="headerlink" title="Permalink to this term" href="#PathModified=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PermissionsStartOnly="><span class="term"><code class="varname">PermissionsStartOnly=</code></span><a class="headerlink" title="Permalink to this term" href="#PermissionsStartOnly=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="Persistent="><span class="term"><code class="varname">Persistent=</code></span><a class="headerlink" title="Permalink to this term" href="#Persistent=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="Personality="><span class="term"><code class="varname">Personality=</code></span><a class="headerlink" title="Permalink to this term" href="#Personality=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PipeSize="><span class="term"><code class="varname">PipeSize=</code></span><a class="headerlink" title="Permalink to this term" href="#PipeSize=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Priority="><span class="term"><code class="varname">Priority=</code></span><a class="headerlink" title="Permalink to this term" href="#Priority=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="PrivateDevices="><span class="term"><code class="varname">PrivateDevices=</code></span><a class="headerlink" title="Permalink to this term" href="#PrivateDevices=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PrivateNetwork="><span class="term"><code class="varname">PrivateNetwork=</code></span><a class="headerlink" title="Permalink to this term" href="#PrivateNetwork=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PrivateTmp="><span class="term"><code class="varname">PrivateTmp=</code></span><a class="headerlink" title="Permalink to this term" href="#PrivateTmp=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PropagatesReloadTo="><span class="term"><code class="varname">PropagatesReloadTo=</code></span><a class="headerlink" title="Permalink to this term" href="#PropagatesReloadTo=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ProtectHome="><span class="term"><code class="varname">ProtectHome=</code></span><a class="headerlink" title="Permalink to this term" href="#ProtectHome=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ProtectSystem="><span class="term"><code class="varname">ProtectSystem=</code></span><a class="headerlink" title="Permalink to this term" href="#ProtectSystem=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ReadOnlyDirectories="><span class="term"><code class="varname">ReadOnlyDirectories=</code></span><a class="headerlink" title="Permalink to this term" href="#ReadOnlyDirectories=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ReadWriteDirectories="><span class="term"><code class="varname">ReadWriteDirectories=</code></span><a class="headerlink" title="Permalink to this term" href="#ReadWriteDirectories=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="RebootArgument="><span class="term"><code class="varname">RebootArgument=</code></span><a class="headerlink" title="Permalink to this term" href="#RebootArgument=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ReceiveBuffer="><span class="term"><code class="varname">ReceiveBuffer=</code></span><a class="headerlink" title="Permalink to this term" href="#ReceiveBuffer=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="RefuseManualStart="><span class="term"><code class="varname">RefuseManualStart=</code></span><a class="headerlink" title="Permalink to this term" href="#RefuseManualStart=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RefuseManualStop="><span class="term"><code class="varname">RefuseManualStop=</code></span><a class="headerlink" title="Permalink to this term" href="#RefuseManualStop=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ReloadPropagatedFrom="><span class="term"><code class="varname">ReloadPropagatedFrom=</code></span><a class="headerlink" title="Permalink to this term" href="#ReloadPropagatedFrom=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RemainAfterExit="><span class="term"><code class="varname">RemainAfterExit=</code></span><a class="headerlink" title="Permalink to this term" href="#RemainAfterExit=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RemoveOnStop="><span class="term"><code class="varname">RemoveOnStop=</code></span><a class="headerlink" title="Permalink to this term" href="#RemoveOnStop=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="RequiredBy="><span class="term"><code class="varname">RequiredBy=</code></span><a class="headerlink" title="Permalink to this term" href="#RequiredBy=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Requires="><span class="term"><code class="varname">Requires=</code></span><a class="headerlink" title="Permalink to this term" href="#Requires=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RequiresMountsFor="><span class="term"><code class="varname">RequiresMountsFor=</code></span><a class="headerlink" title="Permalink to this term" href="#RequiresMountsFor=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RequiresOverridable="><span class="term"><code class="varname">RequiresOverridable=</code></span><a class="headerlink" title="Permalink to this term" href="#RequiresOverridable=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Requisite="><span class="term"><code class="varname">Requisite=</code></span><a class="headerlink" title="Permalink to this term" href="#Requisite=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RequisiteOverridable="><span class="term"><code class="varname">RequisiteOverridable=</code></span><a class="headerlink" title="Permalink to this term" href="#RequisiteOverridable=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Restart="><span class="term"><code class="varname">Restart=</code></span><a class="headerlink" title="Permalink to this term" href="#Restart=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestartPreventExitStatus="><span class="term"><code class="varname">RestartPreventExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#RestartPreventExitStatus=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestartSec="><span class="term"><code class="varname">RestartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#RestartSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestrictAddressFamilies="><span class="term"><code class="varname">RestrictAddressFamilies=</code></span><a class="headerlink" title="Permalink to this term" href="#RestrictAddressFamilies=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ReusePort="><span class="term"><code class="varname">ReusePort=</code></span><a class="headerlink" title="Permalink to this term" href="#ReusePort=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="RootDirectory="><span class="term"><code class="varname">RootDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#RootDirectory=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="RootDirectoryStartOnly="><span class="term"><code class="varname">RootDirectoryStartOnly=</code></span><a class="headerlink" title="Permalink to this term" href="#RootDirectoryStartOnly=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RuntimeDirectory="><span class="term"><code class="varname">RuntimeDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeDirectory=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="RuntimeDirectoryMode="><span class="term"><code class="varname">RuntimeDirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeDirectoryMode=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SELinuxContext="><span class="term"><code class="varname">SELinuxContext=</code></span><a class="headerlink" title="Permalink to this term" href="#SELinuxContext=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SecureBits="><span class="term"><code class="varname">SecureBits=</code></span><a class="headerlink" title="Permalink to this term" href="#SecureBits=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SendBuffer="><span class="term"><code class="varname">SendBuffer=</code></span><a class="headerlink" title="Permalink to this term" href="#SendBuffer=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SendSIGHUP="><span class="term"><code class="varname">SendSIGHUP=</code></span><a class="headerlink" title="Permalink to this term" href="#SendSIGHUP=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="SendSIGKILL="><span class="term"><code class="varname">SendSIGKILL=</code></span><a class="headerlink" title="Permalink to this term" href="#SendSIGKILL=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="Service="><span class="term"><code class="varname">Service=</code></span><a class="headerlink" title="Permalink to this term" href="#Service=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Slice="><span class="term"><code class="varname">Slice=</code></span><a class="headerlink" title="Permalink to this term" href="#Slice=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="SmackLabel="><span class="term"><code class="varname">SmackLabel=</code></span><a class="headerlink" title="Permalink to this term" href="#SmackLabel=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SmackLabelIPIn="><span class="term"><code class="varname">SmackLabelIPIn=</code></span><a class="headerlink" title="Permalink to this term" href="#SmackLabelIPIn=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SmackLabelIPOut="><span class="term"><code class="varname">SmackLabelIPOut=</code></span><a class="headerlink" title="Permalink to this term" href="#SmackLabelIPOut=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SocketGroup="><span class="term"><code class="varname">SocketGroup=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketGroup=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SocketMode="><span class="term"><code class="varname">SocketMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketMode=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SocketUser="><span class="term"><code class="varname">SocketUser=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketUser=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Sockets="><span class="term"><code class="varname">Sockets=</code></span><a class="headerlink" title="Permalink to this term" href="#Sockets=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SourcePath="><span class="term"><code class="varname">SourcePath=</code></span><a class="headerlink" title="Permalink to this term" href="#SourcePath=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="StandardError="><span class="term"><code class="varname">StandardError=</code></span><a class="headerlink" title="Permalink to this term" href="#StandardError=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="StandardInput="><span class="term"><code class="varname">StandardInput=</code></span><a class="headerlink" title="Permalink to this term" href="#StandardInput=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="StandardOutput="><span class="term"><code class="varname">StandardOutput=</code></span><a class="headerlink" title="Permalink to this term" href="#StandardOutput=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="StartLimitAction="><span class="term"><code class="varname">StartLimitAction=</code></span><a class="headerlink" title="Permalink to this term" href="#StartLimitAction=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="StartLimitBurst="><span class="term"><code class="varname">StartLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#StartLimitBurst=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="StartLimitInterval="><span class="term"><code class="varname">StartLimitInterval=</code></span><a class="headerlink" title="Permalink to this term" href="#StartLimitInterval=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="StartupBlockIOWeight="><span class="term"><code class="varname">StartupBlockIOWeight=</code></span><a class="headerlink" title="Permalink to this term" href="#StartupBlockIOWeight=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="StartupCPUShares="><span class="term"><code class="varname">StartupCPUShares=</code></span><a class="headerlink" title="Permalink to this term" href="#StartupCPUShares=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="StopWhenUnneeded="><span class="term"><code class="varname">StopWhenUnneeded=</code></span><a class="headerlink" title="Permalink to this term" href="#StopWhenUnneeded=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="SuccessExitStatus="><span class="term"><code class="varname">SuccessExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#SuccessExitStatus=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SupplementaryGroups="><span class="term"><code class="varname">SupplementaryGroups=</code></span><a class="headerlink" title="Permalink to this term" href="#SupplementaryGroups=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Symlinks="><span class="term"><code class="varname">Symlinks=</code></span><a class="headerlink" title="Permalink to this term" href="#Symlinks=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SysVStartPriority="><span class="term"><code class="varname">SysVStartPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#SysVStartPriority=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SyslogFacility="><span class="term"><code class="varname">SyslogFacility=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogFacility=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SyslogIdentifier="><span class="term"><code class="varname">SyslogIdentifier=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogIdentifier=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SyslogLevel="><span class="term"><code class="varname">SyslogLevel=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogLevel=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SyslogLevelPrefix="><span class="term"><code class="varname">SyslogLevelPrefix=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogLevelPrefix=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SystemCallArchitectures="><span class="term"><code class="varname">SystemCallArchitectures=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallArchitectures=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SystemCallErrorNumber="><span class="term"><code class="varname">SystemCallErrorNumber=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallErrorNumber=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SystemCallFilter="><span class="term"><code class="varname">SystemCallFilter=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallFilter=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TCPCongestion="><span class="term"><code class="varname">TCPCongestion=</code></span><a class="headerlink" title="Permalink to this term" href="#TCPCongestion=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="TTYPath="><span class="term"><code class="varname">TTYPath=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYPath=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TTYReset="><span class="term"><code class="varname">TTYReset=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYReset=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TTYVHangup="><span class="term"><code class="varname">TTYVHangup=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYVHangup=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TTYVTDisallocate="><span class="term"><code class="varname">TTYVTDisallocate=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYVTDisallocate=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TimeoutSec="><span class="term"><code class="varname">TimeoutSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimeoutSec=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="TimeoutStartSec="><span class="term"><code class="varname">TimeoutStartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimeoutStartSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="TimeoutStopSec="><span class="term"><code class="varname">TimeoutStopSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimeoutStopSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="TimerSlackNSec="><span class="term"><code class="varname">TimerSlackNSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimerSlackNSec=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Transparent="><span class="term"><code class="varname">Transparent=</code></span><a class="headerlink" title="Permalink to this term" href="#Transparent=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Type="><span class="term"><code class="varname">Type=</code></span><a class="headerlink" title="Permalink to this term" href="#Type=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="UMask="><span class="term"><code class="varname">UMask=</code></span><a class="headerlink" title="Permalink to this term" href="#UMask=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Unit="><span class="term"><code class="varname">Unit=</code></span><a class="headerlink" title="Permalink to this term" href="#Unit=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>, <a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="User="><span class="term"><code class="varname">User=</code></span><a class="headerlink" title="Permalink to this term" href="#User=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="UtmpIdentifier="><span class="term"><code class="varname">UtmpIdentifier=</code></span><a class="headerlink" title="Permalink to this term" href="#UtmpIdentifier=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="WakeSystem="><span class="term"><code class="varname">WakeSystem=</code></span><a class="headerlink" title="Permalink to this term" href="#WakeSystem=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="WantedBy="><span class="term"><code class="varname">WantedBy=</code></span><a class="headerlink" title="Permalink to this term" href="#WantedBy=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Wants="><span class="term"><code class="varname">Wants=</code></span><a class="headerlink" title="Permalink to this term" href="#Wants=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="WatchdogSec="><span class="term"><code class="varname">WatchdogSec=</code></span><a class="headerlink" title="Permalink to this term" href="#WatchdogSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="What="><span class="term"><code class="varname">What=</code></span><a class="headerlink" title="Permalink to this term" href="#What=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="Where="><span class="term"><code class="varname">Where=</code></span><a class="headerlink" title="Permalink to this term" href="#Where=">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="WorkingDirectory="><span class="term"><code class="varname">WorkingDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#WorkingDirectory=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186888336"></a><h2 id="Options on the kernel command line">Options on the kernel command line<a class="headerlink" title="Permalink to this headline" href="#Options%20on%20the%20kernel%20command%20line">¶</a></h2><p>Kernel boot options for configuring the behaviour of the
- systemd process.</p><div class="variablelist"><a name="kernel-commandline-options"></a><dl class="variablelist"><dt id="-b"><span class="term"><code class="option">-b</code></span><a class="headerlink" title="Permalink to this term" href="#-b">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="1"><span class="term"><code class="constant">1</code></span><a class="headerlink" title="Permalink to this term" href="#1">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="2"><span class="term"><code class="constant">2</code></span><a class="headerlink" title="Permalink to this term" href="#2">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="3"><span class="term"><code class="varname">3</code></span><a class="headerlink" title="Permalink to this term" href="#3">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="4"><span class="term"><code class="varname">4</code></span><a class="headerlink" title="Permalink to this term" href="#4">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="5"><span class="term"><code class="varname">5</code></span><a class="headerlink" title="Permalink to this term" href="#5">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="S"><span class="term"><code class="varname">S</code></span><a class="headerlink" title="Permalink to this term" href="#S">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="debug"><span class="term"><code class="varname">debug</code></span><a class="headerlink" title="Permalink to this term" href="#debug">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="emergency"><span class="term"><code class="varname">emergency</code></span><a class="headerlink" title="Permalink to this term" href="#emergency">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="fsck.repair="><span class="term"><code class="varname">fsck.repair=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.repair=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="fstab="><span class="term"><code class="varname">fstab=</code></span><a class="headerlink" title="Permalink to this term" href="#fstab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a></p></dd><dt id="locale.LANG="><span class="term"><code class="varname">locale.LANG=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LANG=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LANGUAGE="><span class="term"><code class="varname">locale.LANGUAGE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LANGUAGE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_ADDRESS="><span class="term"><code class="varname">locale.LC_ADDRESS=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_ADDRESS=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_COLLATE="><span class="term"><code class="varname">locale.LC_COLLATE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_COLLATE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_CTYPE="><span class="term"><code class="varname">locale.LC_CTYPE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_CTYPE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_IDENTIFICATION="><span class="term"><code class="varname">locale.LC_IDENTIFICATION=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_IDENTIFICATION=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_MEASUREMENT="><span class="term"><code class="varname">locale.LC_MEASUREMENT=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_MEASUREMENT=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_MESSAGES="><span class="term"><code class="varname">locale.LC_MESSAGES=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_MESSAGES=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_MONETARY="><span class="term"><code class="varname">locale.LC_MONETARY=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_MONETARY=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_NAME="><span class="term"><code class="varname">locale.LC_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_NAME=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_NUMERIC="><span class="term"><code class="varname">locale.LC_NUMERIC=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_NUMERIC=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_PAPER="><span class="term"><code class="varname">locale.LC_PAPER=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_PAPER=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_TELEPHONE="><span class="term"><code class="varname">locale.LC_TELEPHONE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_TELEPHONE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_TIME="><span class="term"><code class="varname">locale.LC_TIME=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_TIME=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="luks.crypttab="><span class="term"><code class="varname">luks.crypttab=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.crypttab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks.key="><span class="term"><code class="varname">luks.key=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.key=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks.options="><span class="term"><code class="varname">luks.options=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.options=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks.uuid="><span class="term"><code class="varname">luks.uuid=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.uuid=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks="><span class="term"><code class="varname">luks=</code></span><a class="headerlink" title="Permalink to this term" href="#luks=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="modules-load="><span class="term"><code class="varname">modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#modules-load=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="net.ifnames="><span class="term"><code class="varname">net.ifnames=</code></span><a class="headerlink" title="Permalink to this term" href="#net.ifnames=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="plymouth.enable="><span class="term"><code class="varname">plymouth.enable=</code></span><a class="headerlink" title="Permalink to this term" href="#plymouth.enable=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="quiet"><span class="term"><code class="varname">quiet</code></span><a class="headerlink" title="Permalink to this term" href="#quiet">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="quotacheck.mode="><span class="term"><code class="varname">quotacheck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#quotacheck.mode=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a></p></dd><dt id="rd.fstab="><span class="term"><code class="varname">rd.fstab=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.fstab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a></p></dd><dt id="rd.luks.crypttab="><span class="term"><code class="varname">rd.luks.crypttab=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.crypttab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks.key="><span class="term"><code class="varname">rd.luks.key=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.key=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks.options="><span class="term"><code class="varname">rd.luks.options=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.options=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks.uuid="><span class="term"><code class="varname">rd.luks.uuid=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.uuid=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks="><span class="term"><code class="varname">rd.luks=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.modules-load="><span class="term"><code class="varname">rd.modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.modules-load=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="rd.systemd.unit="><span class="term"><code class="varname">rd.systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.systemd.unit=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="rd.udev.children-max="><span class="term"><code class="varname">rd.udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.udev.children-max=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="rd.udev.exec-delay="><span class="term"><code class="varname">rd.udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.udev.exec-delay=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="rd.udev.log-priority="><span class="term"><code class="varname">rd.udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.udev.log-priority=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="s"><span class="term"><code class="varname">s</code></span><a class="headerlink" title="Permalink to this term" href="#s">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="single"><span class="term"><code class="varname">single</code></span><a class="headerlink" title="Permalink to this term" href="#single">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.confirm_spawn="><span class="term"><code class="varname">systemd.confirm_spawn=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.confirm_spawn=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.crash_chvt="><span class="term"><code class="varname">systemd.crash_chvt=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.crash_chvt=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.crash_shell="><span class="term"><code class="varname">systemd.crash_shell=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.crash_shell=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.default_standard_error="><span class="term"><code class="varname">systemd.default_standard_error=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.default_standard_error=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.default_standard_output="><span class="term"><code class="varname">systemd.default_standard_output=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.default_standard_output=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.dump_core="><span class="term"><code class="varname">systemd.dump_core=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.dump_core=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.journald.forward_to_console="><span class="term"><code class="varname">systemd.journald.forward_to_console=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_console=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.journald.forward_to_kmsg="><span class="term"><code class="varname">systemd.journald.forward_to_kmsg=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_kmsg=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.journald.forward_to_syslog="><span class="term"><code class="varname">systemd.journald.forward_to_syslog=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_syslog=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.journald.forward_to_wall="><span class="term"><code class="varname">systemd.journald.forward_to_wall=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_wall=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.log_color="><span class="term"><code class="varname">systemd.log_color=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_color=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.log_level="><span class="term"><code class="varname">systemd.log_level=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_level=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.log_location="><span class="term"><code class="varname">systemd.log_location=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_location=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.log_target="><span class="term"><code class="varname">systemd.log_target=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_target=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a>, <a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="systemd.setenv="><span class="term"><code class="varname">systemd.setenv=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.setenv=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.show_status="><span class="term"><code class="varname">systemd.show_status=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.show_status=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="udev.children-max="><span class="term"><code class="varname">udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.children-max=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="udev.exec-delay="><span class="term"><code class="varname">udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.exec-delay=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="udev.log-priority="><span class="term"><code class="varname">udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.log-priority=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="vconsole.font.map="><span class="term"><code class="varname">vconsole.font.map=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.font.map=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.font.unimap="><span class="term"><code class="varname">vconsole.font.unimap=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.font.unimap=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.font="><span class="term"><code class="varname">vconsole.font=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.font=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.keymap.toggle="><span class="term"><code class="varname">vconsole.keymap.toggle=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.keymap.toggle=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.keymap="><span class="term"><code class="varname">vconsole.keymap=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.keymap=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186705920"></a><h2 id="Environment variables">Environment variables<a class="headerlink" title="Permalink to this headline" href="#Environment%20variables">¶</a></h2><p>Environment variables understood by the systemd
- manager and other programs.</p><div class="variablelist"><a name="environment-variables"></a><dl class="variablelist"><dt id="$HOME"><span class="term"><code class="varname">$HOME</code></span><a class="headerlink" title="Permalink to this term" href="#%24HOME">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LANG"><span class="term"><code class="varname">$LANG</code></span><a class="headerlink" title="Permalink to this term" href="#%24LANG">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_FDS">¶</a></dt><dd><p><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LISTEN_PID"><span class="term"><code class="varname">$LISTEN_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_PID">¶</a></dt><dd><p><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LOGNAME"><span class="term"><code class="varname">$LOGNAME</code></span><a class="headerlink" title="Permalink to this term" href="#%24LOGNAME">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$MAINPID"><span class="term"><code class="varname">$MAINPID</code></span><a class="headerlink" title="Permalink to this term" href="#%24MAINPID">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$MANAGERPID"><span class="term"><code class="varname">$MANAGERPID</code></span><a class="headerlink" title="Permalink to this term" href="#%24MANAGERPID">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$NOTIFY_SOCKET"><span class="term"><code class="varname">$NOTIFY_SOCKET</code></span><a class="headerlink" title="Permalink to this term" href="#%24NOTIFY_SOCKET">¶</a></dt><dd><p><a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$PATH"><span class="term"><code class="varname">$PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24PATH">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$PREVLEVEL"><span class="term"><code class="varname">$PREVLEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24PREVLEVEL">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="$RUNLEVEL"><span class="term"><code class="varname">$RUNLEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24RUNLEVEL">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="$SHELL"><span class="term"><code class="varname">$SHELL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SHELL">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="$SYSTEMD_LOG_COLOR"><span class="term"><code class="varname">$SYSTEMD_LOG_COLOR</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_COLOR">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_LOG_LEVEL"><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LEVEL">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_LOG_LOCATION"><span class="term"><code class="varname">$SYSTEMD_LOG_LOCATION</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LOCATION">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_LOG_TARGET"><span class="term"><code class="varname">$SYSTEMD_LOG_TARGET</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_TARGET">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="$SYSTEMD_SYSVINIT_PATH"><span class="term"><code class="varname">$SYSTEMD_SYSVINIT_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_SYSVINIT_PATH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$SYSTEMD_SYSVRCND_PATH"><span class="term"><code class="varname">$SYSTEMD_SYSVRCND_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_SYSVRCND_PATH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$SYSTEMD_UNIT_PATH"><span class="term"><code class="varname">$SYSTEMD_UNIT_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_UNIT_PATH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$TERM"><span class="term"><code class="varname">$TERM</code></span><a class="headerlink" title="Permalink to this term" href="#%24TERM">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="$USER"><span class="term"><code class="varname">$USER</code></span><a class="headerlink" title="Permalink to this term" href="#%24USER">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$WATCHDOG_PID"><span class="term"><code class="varname">$WATCHDOG_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24WATCHDOG_PID">¶</a></dt><dd><p><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a></p></dd><dt id="$WATCHDOG_USEC"><span class="term"><code class="varname">$WATCHDOG_USEC</code></span><a class="headerlink" title="Permalink to this term" href="#%24WATCHDOG_USEC">¶</a></dt><dd><p><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a></p></dd><dt id="$XDG_CONFIG_DIRS"><span class="term"><code class="varname">$XDG_CONFIG_DIRS</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_CONFIG_DIRS">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_CONFIG_HOME"><span class="term"><code class="varname">$XDG_CONFIG_HOME</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_CONFIG_HOME">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_DATA_DIRS"><span class="term"><code class="varname">$XDG_DATA_DIRS</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_DATA_DIRS">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_DATA_HOME"><span class="term"><code class="varname">$XDG_DATA_HOME</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_DATA_HOME">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_RUNTIME_DIR"><span class="term"><code class="varname">$XDG_RUNTIME_DIR</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_RUNTIME_DIR">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$XDG_SEAT"><span class="term"><code class="varname">$XDG_SEAT</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SEAT">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$XDG_SESSION_CLASS"><span class="term"><code class="varname">$XDG_SESSION_CLASS</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_CLASS">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="$XDG_SESSION_DESKTOP"><span class="term"><code class="varname">$XDG_SESSION_DESKTOP</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_DESKTOP">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="$XDG_SESSION_ID"><span class="term"><code class="varname">$XDG_SESSION_ID</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_ID">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$XDG_SESSION_TYPE"><span class="term"><code class="varname">$XDG_SESSION_TYPE</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_TYPE">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="$XDG_VTNR"><span class="term"><code class="varname">$XDG_VTNR</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_VTNR">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186623296"></a><h2 id="UDEV directives">UDEV directives<a class="headerlink" title="Permalink to this headline" href="#UDEV%20directives">¶</a></h2><p>Directives for configuring systemd units through the
- udev database.</p><div class="variablelist"><a name="udev-directives"></a><dl class="variablelist"><dt id="$$"><span class="term"><code class="option">$$</code></span><a class="headerlink" title="Permalink to this term" href="#%24%24">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$attr{file}"><span class="term"><code class="option">$attr{<em class="replaceable"><code>file</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%24attr%7Bfile%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$devnode"><span class="term"><code class="option">$devnode</code></span><a class="headerlink" title="Permalink to this term" href="#%24devnode">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$devpath"><span class="term"><code class="option">$devpath</code></span><a class="headerlink" title="Permalink to this term" href="#%24devpath">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$driver"><span class="term"><code class="option">$driver</code></span><a class="headerlink" title="Permalink to this term" href="#%24driver">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$env{key}"><span class="term"><code class="option">$env{<em class="replaceable"><code>key</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%24env%7Bkey%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$id"><span class="term"><code class="option">$id</code></span><a class="headerlink" title="Permalink to this term" href="#%24id">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$kernel"><span class="term"><code class="option">$kernel</code></span><a class="headerlink" title="Permalink to this term" href="#%24kernel">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$links"><span class="term"><code class="option">$links</code></span><a class="headerlink" title="Permalink to this term" href="#%24links">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$major"><span class="term"><code class="option">$major</code></span><a class="headerlink" title="Permalink to this term" href="#%24major">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$minor"><span class="term"><code class="option">$minor</code></span><a class="headerlink" title="Permalink to this term" href="#%24minor">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$name"><span class="term"><code class="option">$name</code></span><a class="headerlink" title="Permalink to this term" href="#%24name">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$number"><span class="term"><code class="option">$number</code></span><a class="headerlink" title="Permalink to this term" href="#%24number">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$parent"><span class="term"><code class="option">$parent</code></span><a class="headerlink" title="Permalink to this term" href="#%24parent">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$result"><span class="term"><code class="option">$result</code></span><a class="headerlink" title="Permalink to this term" href="#%24result">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$root"><span class="term"><code class="option">$root</code></span><a class="headerlink" title="Permalink to this term" href="#%24root">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$sys"><span class="term"><code class="option">$sys</code></span><a class="headerlink" title="Permalink to this term" href="#%24sys">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%%"><span class="term"><code class="option">%%</code></span><a class="headerlink" title="Permalink to this term" href="#%%">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%E{key}"><span class="term"><code class="option">%E{<em class="replaceable"><code>key</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%E%7Bkey%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%M"><span class="term"><code class="option">%M</code></span><a class="headerlink" title="Permalink to this term" href="#%M">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%N"><span class="term"><code class="option">%N</code></span><a class="headerlink" title="Permalink to this term" href="#%N">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%P"><span class="term"><code class="option">%P</code></span><a class="headerlink" title="Permalink to this term" href="#%P">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%S"><span class="term"><code class="option">%S</code></span><a class="headerlink" title="Permalink to this term" href="#%S">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%b"><span class="term"><code class="option">%b</code></span><a class="headerlink" title="Permalink to this term" href="#%b">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%c"><span class="term"><code class="option">%c</code></span><a class="headerlink" title="Permalink to this term" href="#%c">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%k"><span class="term"><code class="option">%k</code></span><a class="headerlink" title="Permalink to this term" href="#%k">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%m"><span class="term"><code class="option">%m</code></span><a class="headerlink" title="Permalink to this term" href="#%m">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%n"><span class="term"><code class="option">%n</code></span><a class="headerlink" title="Permalink to this term" href="#%n">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%p"><span class="term"><code class="option">%p</code></span><a class="headerlink" title="Permalink to this term" href="#%p">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%r"><span class="term"><code class="option">%r</code></span><a class="headerlink" title="Permalink to this term" href="#%r">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%s{file}"><span class="term"><code class="option">%s{<em class="replaceable"><code>file</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%s%7Bfile%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ACTION"><span class="term"><code class="varname">ACTION</code></span><a class="headerlink" title="Permalink to this term" href="#ACTION">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ATTRS{filename}"><span class="term"><code class="varname">ATTRS{<em class="replaceable"><code>filename</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#ATTRS%7Bfilename%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ATTR{filename}"><span class="term"><code class="varname">ATTR{<em class="replaceable"><code>filename</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#ATTR%7Bfilename%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="DEVPATH"><span class="term"><code class="varname">DEVPATH</code></span><a class="headerlink" title="Permalink to this term" href="#DEVPATH">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="DRIVER"><span class="term"><code class="varname">DRIVER</code></span><a class="headerlink" title="Permalink to this term" href="#DRIVER">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="DRIVERS"><span class="term"><code class="varname">DRIVERS</code></span><a class="headerlink" title="Permalink to this term" href="#DRIVERS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ENV{key}"><span class="term"><code class="varname">ENV{<em class="replaceable"><code>key</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#ENV%7Bkey%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="GOTO"><span class="term"><code class="varname">GOTO</code></span><a class="headerlink" title="Permalink to this term" href="#GOTO">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="GROUP"><span class="term"><code class="varname">GROUP</code></span><a class="headerlink" title="Permalink to this term" href="#GROUP">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ID_MODEL="><span class="term"><code class="varname">ID_MODEL=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_MODEL=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="ID_MODEL_FROM_DATABASE="><span class="term"><code class="varname">ID_MODEL_FROM_DATABASE=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_MODEL_FROM_DATABASE=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="IMPORT{type}"><span class="term"><code class="varname">IMPORT{<em class="replaceable"><code>type</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#IMPORT%7Btype%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="KERNEL"><span class="term"><code class="varname">KERNEL</code></span><a class="headerlink" title="Permalink to this term" href="#KERNEL">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="KERNELS"><span class="term"><code class="varname">KERNELS</code></span><a class="headerlink" title="Permalink to this term" href="#KERNELS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="LABEL"><span class="term"><code class="varname">LABEL</code></span><a class="headerlink" title="Permalink to this term" href="#LABEL">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="MODE"><span class="term"><code class="varname">MODE</code></span><a class="headerlink" title="Permalink to this term" href="#MODE">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="NAME"><span class="term"><code class="varname">NAME</code></span><a class="headerlink" title="Permalink to this term" href="#NAME">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="OPTIONS"><span class="term"><code class="varname">OPTIONS</code></span><a class="headerlink" title="Permalink to this term" href="#OPTIONS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="OWNER"><span class="term"><code class="varname">OWNER</code></span><a class="headerlink" title="Permalink to this term" href="#OWNER">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="PROGRAM"><span class="term"><code class="varname">PROGRAM</code></span><a class="headerlink" title="Permalink to this term" href="#PROGRAM">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="RESULT"><span class="term"><code class="varname">RESULT</code></span><a class="headerlink" title="Permalink to this term" href="#RESULT">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="RUN{type}"><span class="term"><code class="varname">RUN{<em class="replaceable"><code>type</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#RUN%7Btype%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SECLABEL{module}"><span class="term"><code class="varname">SECLABEL{<em class="replaceable"><code>module</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#SECLABEL%7Bmodule%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SUBSYSTEM"><span class="term"><code class="varname">SUBSYSTEM</code></span><a class="headerlink" title="Permalink to this term" href="#SUBSYSTEM">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SUBSYSTEMS"><span class="term"><code class="varname">SUBSYSTEMS</code></span><a class="headerlink" title="Permalink to this term" href="#SUBSYSTEMS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SYMLINK"><span class="term"><code class="varname">SYMLINK</code></span><a class="headerlink" title="Permalink to this term" href="#SYMLINK">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SYSTEMD_ALIAS="><span class="term"><code class="varname">SYSTEMD_ALIAS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_ALIAS=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="SYSTEMD_READY="><span class="term"><code class="varname">SYSTEMD_READY=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_READY=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="SYSTEMD_USER_WANTS="><span class="term"><code class="varname">SYSTEMD_USER_WANTS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_USER_WANTS=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="SYSTEMD_WANTS="><span class="term"><code class="varname">SYSTEMD_WANTS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_WANTS=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="TAG"><span class="term"><code class="varname">TAG</code></span><a class="headerlink" title="Permalink to this term" href="#TAG">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="TAGS"><span class="term"><code class="varname">TAGS</code></span><a class="headerlink" title="Permalink to this term" href="#TAGS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="TEST{octal mode mask}"><span class="term"><code class="varname">TEST{<em class="replaceable"><code>octal mode mask</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#TEST%7Boctal%20mode%20mask%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="WAIT_FOR"><span class="term"><code class="varname">WAIT_FOR</code></span><a class="headerlink" title="Permalink to this term" href="#WAIT_FOR">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="event_timeout="><span class="term"><code class="option">event_timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#event_timeout=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="link_priority="><span class="term"><code class="option">link_priority=</code></span><a class="headerlink" title="Permalink to this term" href="#link_priority=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="nowatch"><span class="term"><code class="option">nowatch</code></span><a class="headerlink" title="Permalink to this term" href="#nowatch">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="static_node="><span class="term"><code class="option">static_node=</code></span><a class="headerlink" title="Permalink to this term" href="#static_node=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="string_escape="><span class="term"><code class="option">string_escape=</code></span><a class="headerlink" title="Permalink to this term" href="#string_escape=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="watch"><span class="term"><code class="option">watch</code></span><a class="headerlink" title="Permalink to this term" href="#watch">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186503568"></a><h2 id="Network directives">Network directives<a class="headerlink" title="Permalink to this headline" href="#Network%20directives">¶</a></h2><p>Directives for configuring network links through the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.directives"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.directives — Index of configuration directives</p></div><div class="refsect1"><a name="idm214182825408"></a><h2 id="Unit directives">Unit directives<a class="headerlink" title="Permalink to this headline" href="#Unit%20directives">¶</a></h2><p>Directives for configuring units, used in unit
+ files.</p><div class="variablelist"><a name="unit-directives"></a><dl class="variablelist"><dt id="Accept="><span class="term"><code class="varname">Accept=</code></span><a class="headerlink" title="Permalink to this term" href="#Accept=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="AccuracySec="><span class="term"><code class="varname">AccuracySec=</code></span><a class="headerlink" title="Permalink to this term" href="#AccuracySec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="After="><span class="term"><code class="varname">After=</code></span><a class="headerlink" title="Permalink to this term" href="#After=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Alias="><span class="term"><code class="varname">Alias=</code></span><a class="headerlink" title="Permalink to this term" href="#Alias=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="AllowIsolate="><span class="term"><code class="varname">AllowIsolate=</code></span><a class="headerlink" title="Permalink to this term" href="#AllowIsolate=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Also="><span class="term"><code class="varname">Also=</code></span><a class="headerlink" title="Permalink to this term" href="#Also=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="AppArmorProfile="><span class="term"><code class="varname">AppArmorProfile=</code></span><a class="headerlink" title="Permalink to this term" href="#AppArmorProfile=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Backlog="><span class="term"><code class="varname">Backlog=</code></span><a class="headerlink" title="Permalink to this term" href="#Backlog=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Before="><span class="term"><code class="varname">Before=</code></span><a class="headerlink" title="Permalink to this term" href="#Before=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="BindIPv6Only="><span class="term"><code class="varname">BindIPv6Only=</code></span><a class="headerlink" title="Permalink to this term" href="#BindIPv6Only=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="BindToDevice="><span class="term"><code class="varname">BindToDevice=</code></span><a class="headerlink" title="Permalink to this term" href="#BindToDevice=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="BindsTo="><span class="term"><code class="varname">BindsTo=</code></span><a class="headerlink" title="Permalink to this term" href="#BindsTo=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="BlockIOAccounting="><span class="term"><code class="varname">BlockIOAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOAccounting=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIODeviceWeight="><span class="term"><code class="varname">BlockIODeviceWeight=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIODeviceWeight=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIOReadBandwidth="><span class="term"><code class="varname">BlockIOReadBandwidth=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOReadBandwidth=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIOWeight="><span class="term"><code class="varname">BlockIOWeight=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOWeight=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="BlockIOWriteBandwidth="><span class="term"><code class="varname">BlockIOWriteBandwidth=</code></span><a class="headerlink" title="Permalink to this term" href="#BlockIOWriteBandwidth=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="Broadcast="><span class="term"><code class="varname">Broadcast=</code></span><a class="headerlink" title="Permalink to this term" href="#Broadcast=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="BusName="><span class="term"><code class="varname">BusName=</code></span><a class="headerlink" title="Permalink to this term" href="#BusName=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="CPUAccounting="><span class="term"><code class="varname">CPUAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAccounting=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="CPUAffinity="><span class="term"><code class="varname">CPUAffinity=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAffinity=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUQuota="><span class="term"><code class="varname">CPUQuota=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUQuota=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="CPUSchedulingPolicy="><span class="term"><code class="varname">CPUSchedulingPolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUSchedulingPolicy=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUSchedulingPriority="><span class="term"><code class="varname">CPUSchedulingPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUSchedulingPriority=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUSchedulingResetOnFork="><span class="term"><code class="varname">CPUSchedulingResetOnFork=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUSchedulingResetOnFork=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CPUShares="><span class="term"><code class="varname">CPUShares=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUShares=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="Capabilities="><span class="term"><code class="varname">Capabilities=</code></span><a class="headerlink" title="Permalink to this term" href="#Capabilities=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CapabilityBoundingSet="><span class="term"><code class="varname">CapabilityBoundingSet=</code></span><a class="headerlink" title="Permalink to this term" href="#CapabilityBoundingSet=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ConditionACPower="><span class="term"><code class="varname">ConditionACPower=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionACPower=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionArchitecture="><span class="term"><code class="varname">ConditionArchitecture=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionArchitecture=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionCapability="><span class="term"><code class="varname">ConditionCapability=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionCapability=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionDirectoryNotEmpty="><span class="term"><code class="varname">ConditionDirectoryNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionDirectoryNotEmpty=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionFileIsExecutable="><span class="term"><code class="varname">ConditionFileIsExecutable=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionFileIsExecutable=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionFileNotEmpty="><span class="term"><code class="varname">ConditionFileNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionFileNotEmpty=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionHost="><span class="term"><code class="varname">ConditionHost=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionHost=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionKernelCommandLine="><span class="term"><code class="varname">ConditionKernelCommandLine=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionKernelCommandLine=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionNeedsUpdate="><span class="term"><code class="varname">ConditionNeedsUpdate=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionNeedsUpdate=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionNull="><span class="term"><code class="varname">ConditionNull=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionNull=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathExists="><span class="term"><code class="varname">ConditionPathExists=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathExists=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathExistsGlob="><span class="term"><code class="varname">ConditionPathExistsGlob=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathExistsGlob=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsDirectory="><span class="term"><code class="varname">ConditionPathIsDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsDirectory=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsMountPoint="><span class="term"><code class="varname">ConditionPathIsMountPoint=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsMountPoint=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsReadWrite="><span class="term"><code class="varname">ConditionPathIsReadWrite=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsReadWrite=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionPathIsSymbolicLink="><span class="term"><code class="varname">ConditionPathIsSymbolicLink=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionPathIsSymbolicLink=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionSecurity="><span class="term"><code class="varname">ConditionSecurity=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionSecurity=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ConditionVirtualization="><span class="term"><code class="varname">ConditionVirtualization=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionVirtualization=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Conflicts="><span class="term"><code class="varname">Conflicts=</code></span><a class="headerlink" title="Permalink to this term" href="#Conflicts=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="DefaultDependencies="><span class="term"><code class="varname">DefaultDependencies=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultDependencies=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="DefaultInstance="><span class="term"><code class="varname">DefaultInstance=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultInstance=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="DeviceAllow="><span class="term"><code class="varname">DeviceAllow=</code></span><a class="headerlink" title="Permalink to this term" href="#DeviceAllow=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="DevicePolicy="><span class="term"><code class="varname">DevicePolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#DevicePolicy=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="DirectoryMode="><span class="term"><code class="varname">DirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="#DirectoryMode=">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="DirectoryNotEmpty="><span class="term"><code class="varname">DirectoryNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#DirectoryNotEmpty=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="Documentation="><span class="term"><code class="varname">Documentation=</code></span><a class="headerlink" title="Permalink to this term" href="#Documentation=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Environment="><span class="term"><code class="varname">Environment=</code></span><a class="headerlink" title="Permalink to this term" href="#Environment=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="EnvironmentFile="><span class="term"><code class="varname">EnvironmentFile=</code></span><a class="headerlink" title="Permalink to this term" href="#EnvironmentFile=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ExecReload="><span class="term"><code class="varname">ExecReload=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecReload=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ExecStart="><span class="term"><code class="varname">ExecStart=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStart=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ExecStartPost="><span class="term"><code class="varname">ExecStartPost=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStartPost=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ExecStartPre="><span class="term"><code class="varname">ExecStartPre=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStartPre=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ExecStop="><span class="term"><code class="varname">ExecStop=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStop=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ExecStopPost="><span class="term"><code class="varname">ExecStopPost=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStopPost=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ExecStopPre="><span class="term"><code class="varname">ExecStopPre=</code></span><a class="headerlink" title="Permalink to this term" href="#ExecStopPre=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="FailureAction="><span class="term"><code class="varname">FailureAction=</code></span><a class="headerlink" title="Permalink to this term" href="#FailureAction=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="FreeBind="><span class="term"><code class="varname">FreeBind=</code></span><a class="headerlink" title="Permalink to this term" href="#FreeBind=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Group="><span class="term"><code class="varname">Group=</code></span><a class="headerlink" title="Permalink to this term" href="#Group=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="GuessMainPID="><span class="term"><code class="varname">GuessMainPID=</code></span><a class="headerlink" title="Permalink to this term" href="#GuessMainPID=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="IOSchedulingClass="><span class="term"><code class="varname">IOSchedulingClass=</code></span><a class="headerlink" title="Permalink to this term" href="#IOSchedulingClass=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="IOSchedulingPriority="><span class="term"><code class="varname">IOSchedulingPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#IOSchedulingPriority=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="IPTOS="><span class="term"><code class="varname">IPTOS=</code></span><a class="headerlink" title="Permalink to this term" href="#IPTOS=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="IPTTL="><span class="term"><code class="varname">IPTTL=</code></span><a class="headerlink" title="Permalink to this term" href="#IPTTL=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="IgnoreOnIsolate="><span class="term"><code class="varname">IgnoreOnIsolate=</code></span><a class="headerlink" title="Permalink to this term" href="#IgnoreOnIsolate=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="IgnoreOnSnapshot="><span class="term"><code class="varname">IgnoreOnSnapshot=</code></span><a class="headerlink" title="Permalink to this term" href="#IgnoreOnSnapshot=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="IgnoreSIGPIPE="><span class="term"><code class="varname">IgnoreSIGPIPE=</code></span><a class="headerlink" title="Permalink to this term" href="#IgnoreSIGPIPE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="InaccessibleDirectories="><span class="term"><code class="varname">InaccessibleDirectories=</code></span><a class="headerlink" title="Permalink to this term" href="#InaccessibleDirectories=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="JobTimeoutSec="><span class="term"><code class="varname">JobTimeoutSec=</code></span><a class="headerlink" title="Permalink to this term" href="#JobTimeoutSec=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="JoinsNamespaceOf="><span class="term"><code class="varname">JoinsNamespaceOf=</code></span><a class="headerlink" title="Permalink to this term" href="#JoinsNamespaceOf=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="KeepAlive="><span class="term"><code class="varname">KeepAlive=</code></span><a class="headerlink" title="Permalink to this term" href="#KeepAlive=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="KillMode="><span class="term"><code class="varname">KillMode=</code></span><a class="headerlink" title="Permalink to this term" href="#KillMode=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="KillSignal="><span class="term"><code class="varname">KillSignal=</code></span><a class="headerlink" title="Permalink to this term" href="#KillSignal=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="LimitAS="><span class="term"><code class="varname">LimitAS=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitAS=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitCORE="><span class="term"><code class="varname">LimitCORE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitCORE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitCPU="><span class="term"><code class="varname">LimitCPU=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitCPU=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitDATA="><span class="term"><code class="varname">LimitDATA=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitDATA=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitFSIZE="><span class="term"><code class="varname">LimitFSIZE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitFSIZE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitLOCKS="><span class="term"><code class="varname">LimitLOCKS=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitLOCKS=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitMEMLOCK="><span class="term"><code class="varname">LimitMEMLOCK=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitMEMLOCK=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitMSGQUEUE="><span class="term"><code class="varname">LimitMSGQUEUE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitMSGQUEUE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitNICE="><span class="term"><code class="varname">LimitNICE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitNICE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitNOFILE="><span class="term"><code class="varname">LimitNOFILE=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitNOFILE=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitNPROC="><span class="term"><code class="varname">LimitNPROC=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitNPROC=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitRSS="><span class="term"><code class="varname">LimitRSS=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitRSS=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitRTPRIO="><span class="term"><code class="varname">LimitRTPRIO=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitRTPRIO=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitRTTIME="><span class="term"><code class="varname">LimitRTTIME=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitRTTIME=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitSIGPENDING="><span class="term"><code class="varname">LimitSIGPENDING=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitSIGPENDING=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LimitSTACK="><span class="term"><code class="varname">LimitSTACK=</code></span><a class="headerlink" title="Permalink to this term" href="#LimitSTACK=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ListenDatagram="><span class="term"><code class="varname">ListenDatagram=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenDatagram=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenFIFO="><span class="term"><code class="varname">ListenFIFO=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenFIFO=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenMessageQueue="><span class="term"><code class="varname">ListenMessageQueue=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenMessageQueue=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenNetlink="><span class="term"><code class="varname">ListenNetlink=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenNetlink=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenSequentialPacket="><span class="term"><code class="varname">ListenSequentialPacket=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenSequentialPacket=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenSpecial="><span class="term"><code class="varname">ListenSpecial=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenSpecial=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="ListenStream="><span class="term"><code class="varname">ListenStream=</code></span><a class="headerlink" title="Permalink to this term" href="#ListenStream=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MakeDirectory="><span class="term"><code class="varname">MakeDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#MakeDirectory=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="Mark="><span class="term"><code class="varname">Mark=</code></span><a class="headerlink" title="Permalink to this term" href="#Mark=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MaxConnections="><span class="term"><code class="varname">MaxConnections=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxConnections=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MemoryAccounting="><span class="term"><code class="varname">MemoryAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#MemoryAccounting=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="MemoryLimit="><span class="term"><code class="varname">MemoryLimit=</code></span><a class="headerlink" title="Permalink to this term" href="#MemoryLimit=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="MessageQueueMaxMessages="><span class="term"><code class="varname">MessageQueueMaxMessages=</code></span><a class="headerlink" title="Permalink to this term" href="#MessageQueueMaxMessages=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MessageQueueMessageSize="><span class="term"><code class="varname">MessageQueueMessageSize=</code></span><a class="headerlink" title="Permalink to this term" href="#MessageQueueMessageSize=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="MountFlags="><span class="term"><code class="varname">MountFlags=</code></span><a class="headerlink" title="Permalink to this term" href="#MountFlags=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Nice="><span class="term"><code class="varname">Nice=</code></span><a class="headerlink" title="Permalink to this term" href="#Nice=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="NoNewPrivileges="><span class="term"><code class="varname">NoNewPrivileges=</code></span><a class="headerlink" title="Permalink to this term" href="#NoNewPrivileges=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="NonBlocking="><span class="term"><code class="varname">NonBlocking=</code></span><a class="headerlink" title="Permalink to this term" href="#NonBlocking=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="NotifyAccess="><span class="term"><code class="varname">NotifyAccess=</code></span><a class="headerlink" title="Permalink to this term" href="#NotifyAccess=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="OOMScoreAdjust="><span class="term"><code class="varname">OOMScoreAdjust=</code></span><a class="headerlink" title="Permalink to this term" href="#OOMScoreAdjust=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="OnActiveSec="><span class="term"><code class="varname">OnActiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnActiveSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnBootSec="><span class="term"><code class="varname">OnBootSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnBootSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnCalendar="><span class="term"><code class="varname">OnCalendar=</code></span><a class="headerlink" title="Permalink to this term" href="#OnCalendar=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnFailure="><span class="term"><code class="varname">OnFailure=</code></span><a class="headerlink" title="Permalink to this term" href="#OnFailure=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="OnFailureJobMode="><span class="term"><code class="varname">OnFailureJobMode=</code></span><a class="headerlink" title="Permalink to this term" href="#OnFailureJobMode=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="OnStartupSec="><span class="term"><code class="varname">OnStartupSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnStartupSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnUnitActiveSec="><span class="term"><code class="varname">OnUnitActiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnUnitActiveSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="OnUnitInactiveSec="><span class="term"><code class="varname">OnUnitInactiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnUnitInactiveSec=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="Options="><span class="term"><code class="varname">Options=</code></span><a class="headerlink" title="Permalink to this term" href="#Options=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="PAMName="><span class="term"><code class="varname">PAMName=</code></span><a class="headerlink" title="Permalink to this term" href="#PAMName=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PIDFile="><span class="term"><code class="varname">PIDFile=</code></span><a class="headerlink" title="Permalink to this term" href="#PIDFile=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="PartOf="><span class="term"><code class="varname">PartOf=</code></span><a class="headerlink" title="Permalink to this term" href="#PartOf=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="PassCredentials="><span class="term"><code class="varname">PassCredentials=</code></span><a class="headerlink" title="Permalink to this term" href="#PassCredentials=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="PassSecurity="><span class="term"><code class="varname">PassSecurity=</code></span><a class="headerlink" title="Permalink to this term" href="#PassSecurity=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="PathChanged="><span class="term"><code class="varname">PathChanged=</code></span><a class="headerlink" title="Permalink to this term" href="#PathChanged=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PathExists="><span class="term"><code class="varname">PathExists=</code></span><a class="headerlink" title="Permalink to this term" href="#PathExists=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PathExistsGlob="><span class="term"><code class="varname">PathExistsGlob=</code></span><a class="headerlink" title="Permalink to this term" href="#PathExistsGlob=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PathModified="><span class="term"><code class="varname">PathModified=</code></span><a class="headerlink" title="Permalink to this term" href="#PathModified=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a></p></dd><dt id="PermissionsStartOnly="><span class="term"><code class="varname">PermissionsStartOnly=</code></span><a class="headerlink" title="Permalink to this term" href="#PermissionsStartOnly=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="Persistent="><span class="term"><code class="varname">Persistent=</code></span><a class="headerlink" title="Permalink to this term" href="#Persistent=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="Personality="><span class="term"><code class="varname">Personality=</code></span><a class="headerlink" title="Permalink to this term" href="#Personality=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PipeSize="><span class="term"><code class="varname">PipeSize=</code></span><a class="headerlink" title="Permalink to this term" href="#PipeSize=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Priority="><span class="term"><code class="varname">Priority=</code></span><a class="headerlink" title="Permalink to this term" href="#Priority=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="PrivateDevices="><span class="term"><code class="varname">PrivateDevices=</code></span><a class="headerlink" title="Permalink to this term" href="#PrivateDevices=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PrivateNetwork="><span class="term"><code class="varname">PrivateNetwork=</code></span><a class="headerlink" title="Permalink to this term" href="#PrivateNetwork=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PrivateTmp="><span class="term"><code class="varname">PrivateTmp=</code></span><a class="headerlink" title="Permalink to this term" href="#PrivateTmp=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="PropagatesReloadTo="><span class="term"><code class="varname">PropagatesReloadTo=</code></span><a class="headerlink" title="Permalink to this term" href="#PropagatesReloadTo=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ProtectHome="><span class="term"><code class="varname">ProtectHome=</code></span><a class="headerlink" title="Permalink to this term" href="#ProtectHome=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ProtectSystem="><span class="term"><code class="varname">ProtectSystem=</code></span><a class="headerlink" title="Permalink to this term" href="#ProtectSystem=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ReadOnlyDirectories="><span class="term"><code class="varname">ReadOnlyDirectories=</code></span><a class="headerlink" title="Permalink to this term" href="#ReadOnlyDirectories=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ReadWriteDirectories="><span class="term"><code class="varname">ReadWriteDirectories=</code></span><a class="headerlink" title="Permalink to this term" href="#ReadWriteDirectories=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="RebootArgument="><span class="term"><code class="varname">RebootArgument=</code></span><a class="headerlink" title="Permalink to this term" href="#RebootArgument=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="ReceiveBuffer="><span class="term"><code class="varname">ReceiveBuffer=</code></span><a class="headerlink" title="Permalink to this term" href="#ReceiveBuffer=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="RefuseManualStart="><span class="term"><code class="varname">RefuseManualStart=</code></span><a class="headerlink" title="Permalink to this term" href="#RefuseManualStart=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RefuseManualStop="><span class="term"><code class="varname">RefuseManualStop=</code></span><a class="headerlink" title="Permalink to this term" href="#RefuseManualStop=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="ReloadPropagatedFrom="><span class="term"><code class="varname">ReloadPropagatedFrom=</code></span><a class="headerlink" title="Permalink to this term" href="#ReloadPropagatedFrom=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RemainAfterExit="><span class="term"><code class="varname">RemainAfterExit=</code></span><a class="headerlink" title="Permalink to this term" href="#RemainAfterExit=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RemoveOnStop="><span class="term"><code class="varname">RemoveOnStop=</code></span><a class="headerlink" title="Permalink to this term" href="#RemoveOnStop=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="RequiredBy="><span class="term"><code class="varname">RequiredBy=</code></span><a class="headerlink" title="Permalink to this term" href="#RequiredBy=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Requires="><span class="term"><code class="varname">Requires=</code></span><a class="headerlink" title="Permalink to this term" href="#Requires=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RequiresMountsFor="><span class="term"><code class="varname">RequiresMountsFor=</code></span><a class="headerlink" title="Permalink to this term" href="#RequiresMountsFor=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RequiresOverridable="><span class="term"><code class="varname">RequiresOverridable=</code></span><a class="headerlink" title="Permalink to this term" href="#RequiresOverridable=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Requisite="><span class="term"><code class="varname">Requisite=</code></span><a class="headerlink" title="Permalink to this term" href="#Requisite=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="RequisiteOverridable="><span class="term"><code class="varname">RequisiteOverridable=</code></span><a class="headerlink" title="Permalink to this term" href="#RequisiteOverridable=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Restart="><span class="term"><code class="varname">Restart=</code></span><a class="headerlink" title="Permalink to this term" href="#Restart=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestartForceExitStatus="><span class="term"><code class="varname">RestartForceExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#RestartForceExitStatus=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestartPreventExitStatus="><span class="term"><code class="varname">RestartPreventExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#RestartPreventExitStatus=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestartSec="><span class="term"><code class="varname">RestartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#RestartSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RestrictAddressFamilies="><span class="term"><code class="varname">RestrictAddressFamilies=</code></span><a class="headerlink" title="Permalink to this term" href="#RestrictAddressFamilies=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="ReusePort="><span class="term"><code class="varname">ReusePort=</code></span><a class="headerlink" title="Permalink to this term" href="#ReusePort=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="RootDirectory="><span class="term"><code class="varname">RootDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#RootDirectory=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="RootDirectoryStartOnly="><span class="term"><code class="varname">RootDirectoryStartOnly=</code></span><a class="headerlink" title="Permalink to this term" href="#RootDirectoryStartOnly=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="RuntimeDirectory="><span class="term"><code class="varname">RuntimeDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeDirectory=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="RuntimeDirectoryMode="><span class="term"><code class="varname">RuntimeDirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeDirectoryMode=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SELinuxContext="><span class="term"><code class="varname">SELinuxContext=</code></span><a class="headerlink" title="Permalink to this term" href="#SELinuxContext=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SecureBits="><span class="term"><code class="varname">SecureBits=</code></span><a class="headerlink" title="Permalink to this term" href="#SecureBits=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SendBuffer="><span class="term"><code class="varname">SendBuffer=</code></span><a class="headerlink" title="Permalink to this term" href="#SendBuffer=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SendSIGHUP="><span class="term"><code class="varname">SendSIGHUP=</code></span><a class="headerlink" title="Permalink to this term" href="#SendSIGHUP=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="SendSIGKILL="><span class="term"><code class="varname">SendSIGKILL=</code></span><a class="headerlink" title="Permalink to this term" href="#SendSIGKILL=">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a></p></dd><dt id="Service="><span class="term"><code class="varname">Service=</code></span><a class="headerlink" title="Permalink to this term" href="#Service=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Slice="><span class="term"><code class="varname">Slice=</code></span><a class="headerlink" title="Permalink to this term" href="#Slice=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="SloppyOptions="><span class="term"><code class="varname">SloppyOptions=</code></span><a class="headerlink" title="Permalink to this term" href="#SloppyOptions=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="SmackLabel="><span class="term"><code class="varname">SmackLabel=</code></span><a class="headerlink" title="Permalink to this term" href="#SmackLabel=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SmackLabelIPIn="><span class="term"><code class="varname">SmackLabelIPIn=</code></span><a class="headerlink" title="Permalink to this term" href="#SmackLabelIPIn=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SmackLabelIPOut="><span class="term"><code class="varname">SmackLabelIPOut=</code></span><a class="headerlink" title="Permalink to this term" href="#SmackLabelIPOut=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SocketGroup="><span class="term"><code class="varname">SocketGroup=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketGroup=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SocketMode="><span class="term"><code class="varname">SocketMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketMode=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SocketUser="><span class="term"><code class="varname">SocketUser=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketUser=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Sockets="><span class="term"><code class="varname">Sockets=</code></span><a class="headerlink" title="Permalink to this term" href="#Sockets=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SourcePath="><span class="term"><code class="varname">SourcePath=</code></span><a class="headerlink" title="Permalink to this term" href="#SourcePath=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="StandardError="><span class="term"><code class="varname">StandardError=</code></span><a class="headerlink" title="Permalink to this term" href="#StandardError=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="StandardInput="><span class="term"><code class="varname">StandardInput=</code></span><a class="headerlink" title="Permalink to this term" href="#StandardInput=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="StandardOutput="><span class="term"><code class="varname">StandardOutput=</code></span><a class="headerlink" title="Permalink to this term" href="#StandardOutput=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="StartLimitAction="><span class="term"><code class="varname">StartLimitAction=</code></span><a class="headerlink" title="Permalink to this term" href="#StartLimitAction=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="StartLimitBurst="><span class="term"><code class="varname">StartLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#StartLimitBurst=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="StartLimitInterval="><span class="term"><code class="varname">StartLimitInterval=</code></span><a class="headerlink" title="Permalink to this term" href="#StartLimitInterval=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="StartupBlockIOWeight="><span class="term"><code class="varname">StartupBlockIOWeight=</code></span><a class="headerlink" title="Permalink to this term" href="#StartupBlockIOWeight=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="StartupCPUShares="><span class="term"><code class="varname">StartupCPUShares=</code></span><a class="headerlink" title="Permalink to this term" href="#StartupCPUShares=">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="StopWhenUnneeded="><span class="term"><code class="varname">StopWhenUnneeded=</code></span><a class="headerlink" title="Permalink to this term" href="#StopWhenUnneeded=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="SuccessExitStatus="><span class="term"><code class="varname">SuccessExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#SuccessExitStatus=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SupplementaryGroups="><span class="term"><code class="varname">SupplementaryGroups=</code></span><a class="headerlink" title="Permalink to this term" href="#SupplementaryGroups=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Symlinks="><span class="term"><code class="varname">Symlinks=</code></span><a class="headerlink" title="Permalink to this term" href="#Symlinks=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SysVStartPriority="><span class="term"><code class="varname">SysVStartPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#SysVStartPriority=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SyslogFacility="><span class="term"><code class="varname">SyslogFacility=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogFacility=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SyslogIdentifier="><span class="term"><code class="varname">SyslogIdentifier=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogIdentifier=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SyslogLevel="><span class="term"><code class="varname">SyslogLevel=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogLevel=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SyslogLevelPrefix="><span class="term"><code class="varname">SyslogLevelPrefix=</code></span><a class="headerlink" title="Permalink to this term" href="#SyslogLevelPrefix=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SystemCallArchitectures="><span class="term"><code class="varname">SystemCallArchitectures=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallArchitectures=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SystemCallErrorNumber="><span class="term"><code class="varname">SystemCallErrorNumber=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallErrorNumber=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SystemCallFilter="><span class="term"><code class="varname">SystemCallFilter=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallFilter=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TCPCongestion="><span class="term"><code class="varname">TCPCongestion=</code></span><a class="headerlink" title="Permalink to this term" href="#TCPCongestion=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="TTYPath="><span class="term"><code class="varname">TTYPath=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYPath=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TTYReset="><span class="term"><code class="varname">TTYReset=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYReset=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TTYVHangup="><span class="term"><code class="varname">TTYVHangup=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYVHangup=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TTYVTDisallocate="><span class="term"><code class="varname">TTYVTDisallocate=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYVTDisallocate=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="TimeoutSec="><span class="term"><code class="varname">TimeoutSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimeoutSec=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="TimeoutStartSec="><span class="term"><code class="varname">TimeoutStartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimeoutStartSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="TimeoutStopSec="><span class="term"><code class="varname">TimeoutStopSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimeoutStopSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="TimerSlackNSec="><span class="term"><code class="varname">TimerSlackNSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimerSlackNSec=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Transparent="><span class="term"><code class="varname">Transparent=</code></span><a class="headerlink" title="Permalink to this term" href="#Transparent=">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="Type="><span class="term"><code class="varname">Type=</code></span><a class="headerlink" title="Permalink to this term" href="#Type=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="UMask="><span class="term"><code class="varname">UMask=</code></span><a class="headerlink" title="Permalink to this term" href="#UMask=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="Unit="><span class="term"><code class="varname">Unit=</code></span><a class="headerlink" title="Permalink to this term" href="#Unit=">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>, <a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="User="><span class="term"><code class="varname">User=</code></span><a class="headerlink" title="Permalink to this term" href="#User=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="UtmpIdentifier="><span class="term"><code class="varname">UtmpIdentifier=</code></span><a class="headerlink" title="Permalink to this term" href="#UtmpIdentifier=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="WakeSystem="><span class="term"><code class="varname">WakeSystem=</code></span><a class="headerlink" title="Permalink to this term" href="#WakeSystem=">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a></p></dd><dt id="WantedBy="><span class="term"><code class="varname">WantedBy=</code></span><a class="headerlink" title="Permalink to this term" href="#WantedBy=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="Wants="><span class="term"><code class="varname">Wants=</code></span><a class="headerlink" title="Permalink to this term" href="#Wants=">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="WatchdogSec="><span class="term"><code class="varname">WatchdogSec=</code></span><a class="headerlink" title="Permalink to this term" href="#WatchdogSec=">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="What="><span class="term"><code class="varname">What=</code></span><a class="headerlink" title="Permalink to this term" href="#What=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="Where="><span class="term"><code class="varname">Where=</code></span><a class="headerlink" title="Permalink to this term" href="#Where=">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="WorkingDirectory="><span class="term"><code class="varname">WorkingDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#WorkingDirectory=">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214182458288"></a><h2 id="Options on the kernel command line">Options on the kernel command line<a class="headerlink" title="Permalink to this headline" href="#Options%20on%20the%20kernel%20command%20line">¶</a></h2><p>Kernel boot options for configuring the behaviour of the
+ systemd process.</p><div class="variablelist"><a name="kernel-commandline-options"></a><dl class="variablelist"><dt id="-b"><span class="term"><code class="option">-b</code></span><a class="headerlink" title="Permalink to this term" href="#-b">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="1"><span class="term"><code class="constant">1</code></span><a class="headerlink" title="Permalink to this term" href="#1">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="2"><span class="term"><code class="constant">2</code></span><a class="headerlink" title="Permalink to this term" href="#2">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="3"><span class="term"><code class="varname">3</code></span><a class="headerlink" title="Permalink to this term" href="#3">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="4"><span class="term"><code class="varname">4</code></span><a class="headerlink" title="Permalink to this term" href="#4">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="5"><span class="term"><code class="varname">5</code></span><a class="headerlink" title="Permalink to this term" href="#5">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="S"><span class="term"><code class="varname">S</code></span><a class="headerlink" title="Permalink to this term" href="#S">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="debug"><span class="term"><code class="varname">debug</code></span><a class="headerlink" title="Permalink to this term" href="#debug">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="emergency"><span class="term"><code class="varname">emergency</code></span><a class="headerlink" title="Permalink to this term" href="#emergency">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="fsck.mode="><span class="term"><code class="varname">fsck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.mode=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="fsck.repair="><span class="term"><code class="varname">fsck.repair=</code></span><a class="headerlink" title="Permalink to this term" href="#fsck.repair=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="fstab="><span class="term"><code class="varname">fstab=</code></span><a class="headerlink" title="Permalink to this term" href="#fstab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a></p></dd><dt id="locale.LANG="><span class="term"><code class="varname">locale.LANG=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LANG=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LANGUAGE="><span class="term"><code class="varname">locale.LANGUAGE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LANGUAGE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_ADDRESS="><span class="term"><code class="varname">locale.LC_ADDRESS=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_ADDRESS=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_COLLATE="><span class="term"><code class="varname">locale.LC_COLLATE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_COLLATE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_CTYPE="><span class="term"><code class="varname">locale.LC_CTYPE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_CTYPE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_IDENTIFICATION="><span class="term"><code class="varname">locale.LC_IDENTIFICATION=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_IDENTIFICATION=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_MEASUREMENT="><span class="term"><code class="varname">locale.LC_MEASUREMENT=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_MEASUREMENT=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_MESSAGES="><span class="term"><code class="varname">locale.LC_MESSAGES=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_MESSAGES=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_MONETARY="><span class="term"><code class="varname">locale.LC_MONETARY=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_MONETARY=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_NAME="><span class="term"><code class="varname">locale.LC_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_NAME=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_NUMERIC="><span class="term"><code class="varname">locale.LC_NUMERIC=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_NUMERIC=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_PAPER="><span class="term"><code class="varname">locale.LC_PAPER=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_PAPER=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_TELEPHONE="><span class="term"><code class="varname">locale.LC_TELEPHONE=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_TELEPHONE=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="locale.LC_TIME="><span class="term"><code class="varname">locale.LC_TIME=</code></span><a class="headerlink" title="Permalink to this term" href="#locale.LC_TIME=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="luks.crypttab="><span class="term"><code class="varname">luks.crypttab=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.crypttab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks.key="><span class="term"><code class="varname">luks.key=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.key=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks.options="><span class="term"><code class="varname">luks.options=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.options=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks.uuid="><span class="term"><code class="varname">luks.uuid=</code></span><a class="headerlink" title="Permalink to this term" href="#luks.uuid=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="luks="><span class="term"><code class="varname">luks=</code></span><a class="headerlink" title="Permalink to this term" href="#luks=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="modules-load="><span class="term"><code class="varname">modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#modules-load=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="net.ifnames="><span class="term"><code class="varname">net.ifnames=</code></span><a class="headerlink" title="Permalink to this term" href="#net.ifnames=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="plymouth.enable="><span class="term"><code class="varname">plymouth.enable=</code></span><a class="headerlink" title="Permalink to this term" href="#plymouth.enable=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="quiet"><span class="term"><code class="varname">quiet</code></span><a class="headerlink" title="Permalink to this term" href="#quiet">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="quotacheck.mode="><span class="term"><code class="varname">quotacheck.mode=</code></span><a class="headerlink" title="Permalink to this term" href="#quotacheck.mode=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a></p></dd><dt id="rd.fstab="><span class="term"><code class="varname">rd.fstab=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.fstab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a></p></dd><dt id="rd.luks.crypttab="><span class="term"><code class="varname">rd.luks.crypttab=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.crypttab=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks.key="><span class="term"><code class="varname">rd.luks.key=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.key=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks.options="><span class="term"><code class="varname">rd.luks.options=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.options=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks.uuid="><span class="term"><code class="varname">rd.luks.uuid=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks.uuid=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.luks="><span class="term"><code class="varname">rd.luks=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.luks=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="rd.modules-load="><span class="term"><code class="varname">rd.modules-load=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.modules-load=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="rd.systemd.gpt_auto="><span class="term"><code class="varname">rd.systemd.gpt_auto=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.systemd.gpt_auto=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="rd.systemd.unit="><span class="term"><code class="varname">rd.systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.systemd.unit=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="rd.udev.children-max="><span class="term"><code class="varname">rd.udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.udev.children-max=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="rd.udev.exec-delay="><span class="term"><code class="varname">rd.udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.udev.exec-delay=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="rd.udev.log-priority="><span class="term"><code class="varname">rd.udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#rd.udev.log-priority=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="ro"><span class="term"><code class="varname">ro</code></span><a class="headerlink" title="Permalink to this term" href="#ro">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="root="><span class="term"><code class="varname">root=</code></span><a class="headerlink" title="Permalink to this term" href="#root=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="rootfsflags="><span class="term"><code class="varname">rootfsflags=</code></span><a class="headerlink" title="Permalink to this term" href="#rootfsflags=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="rootfstype="><span class="term"><code class="varname">rootfstype=</code></span><a class="headerlink" title="Permalink to this term" href="#rootfstype=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="rw"><span class="term"><code class="varname">rw</code></span><a class="headerlink" title="Permalink to this term" href="#rw">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="s"><span class="term"><code class="varname">s</code></span><a class="headerlink" title="Permalink to this term" href="#s">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="single"><span class="term"><code class="varname">single</code></span><a class="headerlink" title="Permalink to this term" href="#single">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.confirm_spawn="><span class="term"><code class="varname">systemd.confirm_spawn=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.confirm_spawn=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.crash_chvt="><span class="term"><code class="varname">systemd.crash_chvt=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.crash_chvt=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.crash_shell="><span class="term"><code class="varname">systemd.crash_shell=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.crash_shell=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.debug-shell"><span class="term"><code class="varname">systemd.debug-shell</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.debug-shell">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="systemd.default_standard_error="><span class="term"><code class="varname">systemd.default_standard_error=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.default_standard_error=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.default_standard_output="><span class="term"><code class="varname">systemd.default_standard_output=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.default_standard_output=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.dump_core="><span class="term"><code class="varname">systemd.dump_core=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.dump_core=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.gpt_auto="><span class="term"><code class="varname">systemd.gpt_auto=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.gpt_auto=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="systemd.journald.forward_to_console="><span class="term"><code class="varname">systemd.journald.forward_to_console=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_console=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.journald.forward_to_kmsg="><span class="term"><code class="varname">systemd.journald.forward_to_kmsg=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_kmsg=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.journald.forward_to_syslog="><span class="term"><code class="varname">systemd.journald.forward_to_syslog=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_syslog=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.journald.forward_to_wall="><span class="term"><code class="varname">systemd.journald.forward_to_wall=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.journald.forward_to_wall=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd.log_color="><span class="term"><code class="varname">systemd.log_color=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_color=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.log_level="><span class="term"><code class="varname">systemd.log_level=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_level=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.log_location="><span class="term"><code class="varname">systemd.log_location=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_location=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.log_target="><span class="term"><code class="varname">systemd.log_target=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.log_target=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.mask="><span class="term"><code class="varname">systemd.mask=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.mask=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="systemd.restore_state="><span class="term"><code class="varname">systemd.restore_state=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.restore_state=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a>, <a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="systemd.setenv="><span class="term"><code class="varname">systemd.setenv=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.setenv=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.show_status="><span class="term"><code class="varname">systemd.show_status=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.show_status=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd.wants="><span class="term"><code class="varname">systemd.wants=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.wants=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a></p></dd><dt id="udev.children-max="><span class="term"><code class="varname">udev.children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.children-max=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="udev.exec-delay="><span class="term"><code class="varname">udev.exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.exec-delay=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="udev.log-priority="><span class="term"><code class="varname">udev.log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#udev.log-priority=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="vconsole.font.map="><span class="term"><code class="varname">vconsole.font.map=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.font.map=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.font.unimap="><span class="term"><code class="varname">vconsole.font.unimap=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.font.unimap=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.font="><span class="term"><code class="varname">vconsole.font=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.font=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.keymap.toggle="><span class="term"><code class="varname">vconsole.keymap.toggle=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.keymap.toggle=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="vconsole.keymap="><span class="term"><code class="varname">vconsole.keymap=</code></span><a class="headerlink" title="Permalink to this term" href="#vconsole.keymap=">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214182259936"></a><h2 id="Environment variables">Environment variables<a class="headerlink" title="Permalink to this headline" href="#Environment%20variables">¶</a></h2><p>Environment variables understood by the systemd
+ manager and other programs.</p><div class="variablelist"><a name="environment-variables"></a><dl class="variablelist"><dt id="$HOME"><span class="term"><code class="varname">$HOME</code></span><a class="headerlink" title="Permalink to this term" href="#%24HOME">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LANG"><span class="term"><code class="varname">$LANG</code></span><a class="headerlink" title="Permalink to this term" href="#%24LANG">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_FDS">¶</a></dt><dd><p><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LISTEN_PID"><span class="term"><code class="varname">$LISTEN_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_PID">¶</a></dt><dd><p><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$LOGNAME"><span class="term"><code class="varname">$LOGNAME</code></span><a class="headerlink" title="Permalink to this term" href="#%24LOGNAME">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$MAINPID"><span class="term"><code class="varname">$MAINPID</code></span><a class="headerlink" title="Permalink to this term" href="#%24MAINPID">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$MANAGERPID"><span class="term"><code class="varname">$MANAGERPID</code></span><a class="headerlink" title="Permalink to this term" href="#%24MANAGERPID">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$NOTIFY_SOCKET"><span class="term"><code class="varname">$NOTIFY_SOCKET</code></span><a class="headerlink" title="Permalink to this term" href="#%24NOTIFY_SOCKET">¶</a></dt><dd><p><a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$PATH"><span class="term"><code class="varname">$PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24PATH">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$PREVLEVEL"><span class="term"><code class="varname">$PREVLEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24PREVLEVEL">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="$RUNLEVEL"><span class="term"><code class="varname">$RUNLEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24RUNLEVEL">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="$SHELL"><span class="term"><code class="varname">$SHELL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SHELL">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="$SYSTEMD_LOG_COLOR"><span class="term"><code class="varname">$SYSTEMD_LOG_COLOR</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_COLOR">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_LOG_LEVEL"><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LEVEL">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_LOG_LOCATION"><span class="term"><code class="varname">$SYSTEMD_LOG_LOCATION</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LOCATION">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_LOG_TARGET"><span class="term"><code class="varname">$SYSTEMD_LOG_TARGET</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_TARGET">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="$SYSTEMD_SYSVINIT_PATH"><span class="term"><code class="varname">$SYSTEMD_SYSVINIT_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_SYSVINIT_PATH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$SYSTEMD_SYSVRCND_PATH"><span class="term"><code class="varname">$SYSTEMD_SYSVRCND_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_SYSVRCND_PATH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$SYSTEMD_UNIT_PATH"><span class="term"><code class="varname">$SYSTEMD_UNIT_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_UNIT_PATH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$TERM"><span class="term"><code class="varname">$TERM</code></span><a class="headerlink" title="Permalink to this term" href="#%24TERM">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$UDEV_LOG="><span class="term"><code class="varname">$UDEV_LOG=</code></span><a class="headerlink" title="Permalink to this term" href="#%24UDEV_LOG=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="$USER"><span class="term"><code class="varname">$USER</code></span><a class="headerlink" title="Permalink to this term" href="#%24USER">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$WATCHDOG_PID"><span class="term"><code class="varname">$WATCHDOG_PID</code></span><a class="headerlink" title="Permalink to this term" href="#%24WATCHDOG_PID">¶</a></dt><dd><p><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a></p></dd><dt id="$WATCHDOG_USEC"><span class="term"><code class="varname">$WATCHDOG_USEC</code></span><a class="headerlink" title="Permalink to this term" href="#%24WATCHDOG_USEC">¶</a></dt><dd><p><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a></p></dd><dt id="$XDG_CONFIG_DIRS"><span class="term"><code class="varname">$XDG_CONFIG_DIRS</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_CONFIG_DIRS">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_CONFIG_HOME"><span class="term"><code class="varname">$XDG_CONFIG_HOME</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_CONFIG_HOME">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_DATA_DIRS"><span class="term"><code class="varname">$XDG_DATA_DIRS</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_DATA_DIRS">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_DATA_HOME"><span class="term"><code class="varname">$XDG_DATA_HOME</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_DATA_HOME">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="$XDG_RUNTIME_DIR"><span class="term"><code class="varname">$XDG_RUNTIME_DIR</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_RUNTIME_DIR">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$XDG_SEAT"><span class="term"><code class="varname">$XDG_SEAT</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SEAT">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$XDG_SESSION_CLASS"><span class="term"><code class="varname">$XDG_SESSION_CLASS</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_CLASS">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="$XDG_SESSION_DESKTOP"><span class="term"><code class="varname">$XDG_SESSION_DESKTOP</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_DESKTOP">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="$XDG_SESSION_ID"><span class="term"><code class="varname">$XDG_SESSION_ID</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_ID">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="$XDG_SESSION_TYPE"><span class="term"><code class="varname">$XDG_SESSION_TYPE</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_SESSION_TYPE">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="$XDG_VTNR"><span class="term"><code class="varname">$XDG_VTNR</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_VTNR">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214182177312"></a><h2 id="UDEV directives">UDEV directives<a class="headerlink" title="Permalink to this headline" href="#UDEV%20directives">¶</a></h2><p>Directives for configuring systemd units through the
+ udev database.</p><div class="variablelist"><a name="udev-directives"></a><dl class="variablelist"><dt id="$$"><span class="term"><code class="option">$$</code></span><a class="headerlink" title="Permalink to this term" href="#%24%24">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$attr{file}"><span class="term"><code class="option">$attr{<em class="replaceable"><code>file</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%24attr%7Bfile%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$devnode"><span class="term"><code class="option">$devnode</code></span><a class="headerlink" title="Permalink to this term" href="#%24devnode">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$devpath"><span class="term"><code class="option">$devpath</code></span><a class="headerlink" title="Permalink to this term" href="#%24devpath">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$driver"><span class="term"><code class="option">$driver</code></span><a class="headerlink" title="Permalink to this term" href="#%24driver">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$env{key}"><span class="term"><code class="option">$env{<em class="replaceable"><code>key</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%24env%7Bkey%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$id"><span class="term"><code class="option">$id</code></span><a class="headerlink" title="Permalink to this term" href="#%24id">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$kernel"><span class="term"><code class="option">$kernel</code></span><a class="headerlink" title="Permalink to this term" href="#%24kernel">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$links"><span class="term"><code class="option">$links</code></span><a class="headerlink" title="Permalink to this term" href="#%24links">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$major"><span class="term"><code class="option">$major</code></span><a class="headerlink" title="Permalink to this term" href="#%24major">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$minor"><span class="term"><code class="option">$minor</code></span><a class="headerlink" title="Permalink to this term" href="#%24minor">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$name"><span class="term"><code class="option">$name</code></span><a class="headerlink" title="Permalink to this term" href="#%24name">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$number"><span class="term"><code class="option">$number</code></span><a class="headerlink" title="Permalink to this term" href="#%24number">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$parent"><span class="term"><code class="option">$parent</code></span><a class="headerlink" title="Permalink to this term" href="#%24parent">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$result"><span class="term"><code class="option">$result</code></span><a class="headerlink" title="Permalink to this term" href="#%24result">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$root"><span class="term"><code class="option">$root</code></span><a class="headerlink" title="Permalink to this term" href="#%24root">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="$sys"><span class="term"><code class="option">$sys</code></span><a class="headerlink" title="Permalink to this term" href="#%24sys">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%%"><span class="term"><code class="option">%%</code></span><a class="headerlink" title="Permalink to this term" href="#%%">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%E{key}"><span class="term"><code class="option">%E{<em class="replaceable"><code>key</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%E%7Bkey%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%M"><span class="term"><code class="option">%M</code></span><a class="headerlink" title="Permalink to this term" href="#%M">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%N"><span class="term"><code class="option">%N</code></span><a class="headerlink" title="Permalink to this term" href="#%N">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%P"><span class="term"><code class="option">%P</code></span><a class="headerlink" title="Permalink to this term" href="#%P">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%S"><span class="term"><code class="option">%S</code></span><a class="headerlink" title="Permalink to this term" href="#%S">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%b"><span class="term"><code class="option">%b</code></span><a class="headerlink" title="Permalink to this term" href="#%b">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%c"><span class="term"><code class="option">%c</code></span><a class="headerlink" title="Permalink to this term" href="#%c">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%k"><span class="term"><code class="option">%k</code></span><a class="headerlink" title="Permalink to this term" href="#%k">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%m"><span class="term"><code class="option">%m</code></span><a class="headerlink" title="Permalink to this term" href="#%m">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%n"><span class="term"><code class="option">%n</code></span><a class="headerlink" title="Permalink to this term" href="#%n">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%p"><span class="term"><code class="option">%p</code></span><a class="headerlink" title="Permalink to this term" href="#%p">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%r"><span class="term"><code class="option">%r</code></span><a class="headerlink" title="Permalink to this term" href="#%r">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="%s{file}"><span class="term"><code class="option">%s{<em class="replaceable"><code>file</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#%s%7Bfile%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ACTION"><span class="term"><code class="varname">ACTION</code></span><a class="headerlink" title="Permalink to this term" href="#ACTION">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ATTRS{filename}"><span class="term"><code class="varname">ATTRS{<em class="replaceable"><code>filename</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#ATTRS%7Bfilename%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ATTR{filename}"><span class="term"><code class="varname">ATTR{<em class="replaceable"><code>filename</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#ATTR%7Bfilename%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="DEVPATH"><span class="term"><code class="varname">DEVPATH</code></span><a class="headerlink" title="Permalink to this term" href="#DEVPATH">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="DRIVER"><span class="term"><code class="varname">DRIVER</code></span><a class="headerlink" title="Permalink to this term" href="#DRIVER">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="DRIVERS"><span class="term"><code class="varname">DRIVERS</code></span><a class="headerlink" title="Permalink to this term" href="#DRIVERS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ENV{key}"><span class="term"><code class="varname">ENV{<em class="replaceable"><code>key</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#ENV%7Bkey%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="GOTO"><span class="term"><code class="varname">GOTO</code></span><a class="headerlink" title="Permalink to this term" href="#GOTO">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="GROUP"><span class="term"><code class="varname">GROUP</code></span><a class="headerlink" title="Permalink to this term" href="#GROUP">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="ID_MODEL="><span class="term"><code class="varname">ID_MODEL=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_MODEL=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="ID_MODEL_FROM_DATABASE="><span class="term"><code class="varname">ID_MODEL_FROM_DATABASE=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_MODEL_FROM_DATABASE=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="IMPORT{type}"><span class="term"><code class="varname">IMPORT{<em class="replaceable"><code>type</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#IMPORT%7Btype%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="KERNEL"><span class="term"><code class="varname">KERNEL</code></span><a class="headerlink" title="Permalink to this term" href="#KERNEL">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="KERNELS"><span class="term"><code class="varname">KERNELS</code></span><a class="headerlink" title="Permalink to this term" href="#KERNELS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="LABEL"><span class="term"><code class="varname">LABEL</code></span><a class="headerlink" title="Permalink to this term" href="#LABEL">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="MODE"><span class="term"><code class="varname">MODE</code></span><a class="headerlink" title="Permalink to this term" href="#MODE">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="NAME"><span class="term"><code class="varname">NAME</code></span><a class="headerlink" title="Permalink to this term" href="#NAME">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="OPTIONS"><span class="term"><code class="varname">OPTIONS</code></span><a class="headerlink" title="Permalink to this term" href="#OPTIONS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="OWNER"><span class="term"><code class="varname">OWNER</code></span><a class="headerlink" title="Permalink to this term" href="#OWNER">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="PROGRAM"><span class="term"><code class="varname">PROGRAM</code></span><a class="headerlink" title="Permalink to this term" href="#PROGRAM">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="RESULT"><span class="term"><code class="varname">RESULT</code></span><a class="headerlink" title="Permalink to this term" href="#RESULT">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="RUN{type}"><span class="term"><code class="varname">RUN{<em class="replaceable"><code>type</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#RUN%7Btype%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SECLABEL{module}"><span class="term"><code class="varname">SECLABEL{<em class="replaceable"><code>module</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#SECLABEL%7Bmodule%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SUBSYSTEM"><span class="term"><code class="varname">SUBSYSTEM</code></span><a class="headerlink" title="Permalink to this term" href="#SUBSYSTEM">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SUBSYSTEMS"><span class="term"><code class="varname">SUBSYSTEMS</code></span><a class="headerlink" title="Permalink to this term" href="#SUBSYSTEMS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SYMLINK"><span class="term"><code class="varname">SYMLINK</code></span><a class="headerlink" title="Permalink to this term" href="#SYMLINK">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="SYSTEMD_ALIAS="><span class="term"><code class="varname">SYSTEMD_ALIAS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_ALIAS=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="SYSTEMD_READY="><span class="term"><code class="varname">SYSTEMD_READY=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_READY=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="SYSTEMD_USER_WANTS="><span class="term"><code class="varname">SYSTEMD_USER_WANTS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_USER_WANTS=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="SYSTEMD_WANTS="><span class="term"><code class="varname">SYSTEMD_WANTS=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSTEMD_WANTS=">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a></p></dd><dt id="TAG"><span class="term"><code class="varname">TAG</code></span><a class="headerlink" title="Permalink to this term" href="#TAG">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="TAGS"><span class="term"><code class="varname">TAGS</code></span><a class="headerlink" title="Permalink to this term" href="#TAGS">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="TEST{octal mode mask}"><span class="term"><code class="varname">TEST{<em class="replaceable"><code>octal mode mask</code></em>}</code></span><a class="headerlink" title="Permalink to this term" href="#TEST%7Boctal%20mode%20mask%7D">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="WAIT_FOR"><span class="term"><code class="varname">WAIT_FOR</code></span><a class="headerlink" title="Permalink to this term" href="#WAIT_FOR">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="event_timeout="><span class="term"><code class="option">event_timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#event_timeout=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="link_priority="><span class="term"><code class="option">link_priority=</code></span><a class="headerlink" title="Permalink to this term" href="#link_priority=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="nowatch"><span class="term"><code class="option">nowatch</code></span><a class="headerlink" title="Permalink to this term" href="#nowatch">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="static_node="><span class="term"><code class="option">static_node=</code></span><a class="headerlink" title="Permalink to this term" href="#static_node=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="string_escape="><span class="term"><code class="option">string_escape=</code></span><a class="headerlink" title="Permalink to this term" href="#string_escape=">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="watch"><span class="term"><code class="option">watch</code></span><a class="headerlink" title="Permalink to this term" href="#watch">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214182057584"></a><h2 id="Network directives">Network directives<a class="headerlink" title="Permalink to this headline" href="#Network%20directives">¶</a></h2><p>Directives for configuring network links through the
net-setup-link udev builtin and networks through
- systemd-networkd.</p><div class="variablelist"><a name="network-directives"></a><dl class="variablelist"><dt id="Address="><span class="term"><code class="varname">Address=</code></span><a class="headerlink" title="Permalink to this term" href="#Address=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Alias="><span class="term"><code class="varname">Alias=</code></span><a class="headerlink" title="Permalink to this term" href="#Alias=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Architecture="><span class="term"><code class="varname">Architecture=</code></span><a class="headerlink" title="Permalink to this term" href="#Architecture=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="BitsPerSecond="><span class="term"><code class="varname">BitsPerSecond=</code></span><a class="headerlink" title="Permalink to this term" href="#BitsPerSecond=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Bond="><span class="term"><code class="varname">Bond=</code></span><a class="headerlink" title="Permalink to this term" href="#Bond=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Bridge="><span class="term"><code class="varname">Bridge=</code></span><a class="headerlink" title="Permalink to this term" href="#Bridge=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Broadcast="><span class="term"><code class="varname">Broadcast=</code></span><a class="headerlink" title="Permalink to this term" href="#Broadcast=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="CriticalConnection="><span class="term"><code class="varname">CriticalConnection=</code></span><a class="headerlink" title="Permalink to this term" href="#CriticalConnection=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="DHCP="><span class="term"><code class="varname">DHCP=</code></span><a class="headerlink" title="Permalink to this term" href="#DHCP=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="DNS="><span class="term"><code class="varname">DNS=</code></span><a class="headerlink" title="Permalink to this term" href="#DNS=">¶</a></dt><dd><p><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Destination="><span class="term"><code class="varname">Destination=</code></span><a class="headerlink" title="Permalink to this term" href="#Destination=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Driver="><span class="term"><code class="varname">Driver=</code></span><a class="headerlink" title="Permalink to this term" href="#Driver=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Duplex="><span class="term"><code class="varname">Duplex=</code></span><a class="headerlink" title="Permalink to this term" href="#Duplex=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Gateway="><span class="term"><code class="varname">Gateway=</code></span><a class="headerlink" title="Permalink to this term" href="#Gateway=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Host="><span class="term"><code class="varname">Host=</code></span><a class="headerlink" title="Permalink to this term" href="#Host=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="IPv4LL="><span class="term"><code class="varname">IPv4LL=</code></span><a class="headerlink" title="Permalink to this term" href="#IPv4LL=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Id="><span class="term"><code class="varname">Id=</code></span><a class="headerlink" title="Permalink to this term" href="#Id=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="KernelCommandLine="><span class="term"><code class="varname">KernelCommandLine=</code></span><a class="headerlink" title="Permalink to this term" href="#KernelCommandLine=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Kind="><span class="term"><code class="varname">Kind=</code></span><a class="headerlink" title="Permalink to this term" href="#Kind=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Label="><span class="term"><code class="varname">Label=</code></span><a class="headerlink" title="Permalink to this term" href="#Label=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="MACAddress="><span class="term"><code class="varname">MACAddress=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddress=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="MACAddressPolicy="><span class="term"><code class="varname">MACAddressPolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddressPolicy=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="MACVLAN="><span class="term"><code class="varname">MACVLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#MACVLAN=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="MTUBytes="><span class="term"><code class="varname">MTUBytes=</code></span><a class="headerlink" title="Permalink to this term" href="#MTUBytes=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Mode="><span class="term"><code class="varname">Mode=</code></span><a class="headerlink" title="Permalink to this term" href="#Mode=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Name="><span class="term"><code class="varname">Name=</code></span><a class="headerlink" title="Permalink to this term" href="#Name=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="NamePolicy="><span class="term"><code class="varname">NamePolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#NamePolicy=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Path="><span class="term"><code class="varname">Path=</code></span><a class="headerlink" title="Permalink to this term" href="#Path=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Type="><span class="term"><code class="varname">Type=</code></span><a class="headerlink" title="Permalink to this term" href="#Type=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseDNS="><span class="term"><code class="varname">UseDNS=</code></span><a class="headerlink" title="Permalink to this term" href="#UseDNS=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseHostname="><span class="term"><code class="varname">UseHostname=</code></span><a class="headerlink" title="Permalink to this term" href="#UseHostname=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseMTU="><span class="term"><code class="varname">UseMTU=</code></span><a class="headerlink" title="Permalink to this term" href="#UseMTU=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="VLAN="><span class="term"><code class="varname">VLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#VLAN=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Virtualization="><span class="term"><code class="varname">Virtualization=</code></span><a class="headerlink" title="Permalink to this term" href="#Virtualization=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="WakeOnLan="><span class="term"><code class="varname">WakeOnLan=</code></span><a class="headerlink" title="Permalink to this term" href="#WakeOnLan=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186431328"></a><h2 id="Journal fields">Journal fields<a class="headerlink" title="Permalink to this headline" href="#Journal%20fields">¶</a></h2><p>Fields in the journal events with a well known meaning.</p><div class="variablelist"><a name="journal-directives"></a><dl class="variablelist"><dt id="CODE_FILE="><span class="term"><code class="varname">CODE_FILE=</code></span><a class="headerlink" title="Permalink to this term" href="#CODE_FILE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="CODE_FUNC="><span class="term"><code class="varname">CODE_FUNC=</code></span><a class="headerlink" title="Permalink to this term" href="#CODE_FUNC=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="CODE_LINE="><span class="term"><code class="varname">CODE_LINE=</code></span><a class="headerlink" title="Permalink to this term" href="#CODE_LINE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="COREDUMP_UNIT="><span class="term"><code class="varname">COREDUMP_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#COREDUMP_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="COREDUMP_USER_UNIT="><span class="term"><code class="varname">COREDUMP_USER_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#COREDUMP_USER_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="ERRNO="><span class="term"><code class="varname">ERRNO=</code></span><a class="headerlink" title="Permalink to this term" href="#ERRNO=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="MESSAGE="><span class="term"><code class="varname">MESSAGE=</code></span><a class="headerlink" title="Permalink to this term" href="#MESSAGE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="MESSAGE_ID="><span class="term"><code class="varname">MESSAGE_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#MESSAGE_ID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_AUDIT_LOGINUID="><span class="term"><code class="varname">OBJECT_AUDIT_LOGINUID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_AUDIT_LOGINUID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_AUDIT_SESSION="><span class="term"><code class="varname">OBJECT_AUDIT_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_AUDIT_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_CMDLINE="><span class="term"><code class="varname">OBJECT_CMDLINE=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_CMDLINE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_COMM="><span class="term"><code class="varname">OBJECT_COMM=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_COMM=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_EXE="><span class="term"><code class="varname">OBJECT_EXE=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_EXE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_GID="><span class="term"><code class="varname">OBJECT_GID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_GID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_PID="><span class="term"><code class="varname">OBJECT_PID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_PID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_CGROUP="><span class="term"><code class="varname">OBJECT_SYSTEMD_CGROUP=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_CGROUP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_OWNER_UID="><span class="term"><code class="varname">OBJECT_SYSTEMD_OWNER_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_OWNER_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_SESSION="><span class="term"><code class="varname">OBJECT_SYSTEMD_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_UNIT="><span class="term"><code class="varname">OBJECT_SYSTEMD_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_USER_UNIT="><span class="term"><code class="varname">OBJECT_SYSTEMD_USER_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_USER_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_UID="><span class="term"><code class="varname">OBJECT_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="PRIORITY="><span class="term"><code class="varname">PRIORITY=</code></span><a class="headerlink" title="Permalink to this term" href="#PRIORITY=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="SYSLOG_FACILITY="><span class="term"><code class="varname">SYSLOG_FACILITY=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSLOG_FACILITY=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="SYSLOG_IDENTIFIER="><span class="term"><code class="varname">SYSLOG_IDENTIFIER=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSLOG_IDENTIFIER=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="SYSLOG_PID="><span class="term"><code class="varname">SYSLOG_PID=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSLOG_PID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_AUDIT_LOGINUID="><span class="term"><code class="varname">_AUDIT_LOGINUID=</code></span><a class="headerlink" title="Permalink to this term" href="#_AUDIT_LOGINUID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_AUDIT_SESSION="><span class="term"><code class="varname">_AUDIT_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#_AUDIT_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_BOOT_ID="><span class="term"><code class="varname">_BOOT_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#_BOOT_ID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_CAP_EFFECTIVE="><span class="term"><code class="varname">_CAP_EFFECTIVE=</code></span><a class="headerlink" title="Permalink to this term" href="#_CAP_EFFECTIVE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_CMDLINE="><span class="term"><code class="varname">_CMDLINE=</code></span><a class="headerlink" title="Permalink to this term" href="#_CMDLINE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_COMM="><span class="term"><code class="varname">_COMM=</code></span><a class="headerlink" title="Permalink to this term" href="#_COMM=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_EXE="><span class="term"><code class="varname">_EXE=</code></span><a class="headerlink" title="Permalink to this term" href="#_EXE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_GID="><span class="term"><code class="varname">_GID=</code></span><a class="headerlink" title="Permalink to this term" href="#_GID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_HOSTNAME="><span class="term"><code class="varname">_HOSTNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#_HOSTNAME=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_KERNEL_DEVICE="><span class="term"><code class="varname">_KERNEL_DEVICE=</code></span><a class="headerlink" title="Permalink to this term" href="#_KERNEL_DEVICE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_KERNEL_SUBSYSTEM="><span class="term"><code class="varname">_KERNEL_SUBSYSTEM=</code></span><a class="headerlink" title="Permalink to this term" href="#_KERNEL_SUBSYSTEM=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_MACHINE_ID="><span class="term"><code class="varname">_MACHINE_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#_MACHINE_ID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_PID="><span class="term"><code class="varname">_PID=</code></span><a class="headerlink" title="Permalink to this term" href="#_PID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SELINUX_CONTEXT="><span class="term"><code class="varname">_SELINUX_CONTEXT=</code></span><a class="headerlink" title="Permalink to this term" href="#_SELINUX_CONTEXT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SOURCE_REALTIME_TIMESTAMP="><span class="term"><code class="varname">_SOURCE_REALTIME_TIMESTAMP=</code></span><a class="headerlink" title="Permalink to this term" href="#_SOURCE_REALTIME_TIMESTAMP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_CGROUP="><span class="term"><code class="varname">_SYSTEMD_CGROUP=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_CGROUP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_OWNER_UID="><span class="term"><code class="varname">_SYSTEMD_OWNER_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_OWNER_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_SESSION="><span class="term"><code class="varname">_SYSTEMD_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_SLICE="><span class="term"><code class="varname">_SYSTEMD_SLICE=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_SLICE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_UNIT="><span class="term"><code class="varname">_SYSTEMD_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_USER_UNIT="><span class="term"><code class="varname">_SYSTEMD_USER_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_USER_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_TRANSPORT="><span class="term"><code class="varname">_TRANSPORT=</code></span><a class="headerlink" title="Permalink to this term" href="#_TRANSPORT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UDEV_DEVLINK="><span class="term"><code class="varname">_UDEV_DEVLINK=</code></span><a class="headerlink" title="Permalink to this term" href="#_UDEV_DEVLINK=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UDEV_DEVNODE="><span class="term"><code class="varname">_UDEV_DEVNODE=</code></span><a class="headerlink" title="Permalink to this term" href="#_UDEV_DEVNODE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UDEV_SYSNAME="><span class="term"><code class="varname">_UDEV_SYSNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#_UDEV_SYSNAME=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UID="><span class="term"><code class="varname">_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="__CURSOR="><span class="term"><code class="varname">__CURSOR=</code></span><a class="headerlink" title="Permalink to this term" href="#__CURSOR=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="__MONOTONIC_TIMESTAMP="><span class="term"><code class="varname">__MONOTONIC_TIMESTAMP=</code></span><a class="headerlink" title="Permalink to this term" href="#__MONOTONIC_TIMESTAMP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="__REALTIME_TIMESTAMP="><span class="term"><code class="varname">__REALTIME_TIMESTAMP=</code></span><a class="headerlink" title="Permalink to this term" href="#__REALTIME_TIMESTAMP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186343104"></a><h2 id="PAM configuration directives">PAM configuration directives<a class="headerlink" title="Permalink to this headline" href="#PAM%20configuration%20directives">¶</a></h2><p>Directives for configuring PAM behaviour.</p><div class="variablelist"><a name="pam-directives"></a><dl class="variablelist"><dt id="class="><span class="term"><code class="option">class=</code></span><a class="headerlink" title="Permalink to this term" href="#class=">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="debug"><span class="term"><code class="varname">debug</code></span><a class="headerlink" title="Permalink to this term" href="#debug">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="type="><span class="term"><code class="option">type=</code></span><a class="headerlink" title="Permalink to this term" href="#type=">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186336512"></a><h2 id="crypttab options">crypttab options<a class="headerlink" title="Permalink to this headline" href="#crypttab%20options">¶</a></h2><p>Options which influence mounted filesystems and
- encrypted volumes.</p><div class="variablelist"><a name="crypttab-options"></a><dl class="variablelist"><dt id="cipher="><span class="term"><code class="varname">cipher=</code></span><a class="headerlink" title="Permalink to this term" href="#cipher=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="discard"><span class="term"><code class="varname">discard</code></span><a class="headerlink" title="Permalink to this term" href="#discard">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="hash="><span class="term"><code class="varname">hash=</code></span><a class="headerlink" title="Permalink to this term" href="#hash=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="key-slot="><span class="term"><code class="varname">key-slot=</code></span><a class="headerlink" title="Permalink to this term" href="#key-slot=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="keyfile-offset="><span class="term"><code class="varname">keyfile-offset=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-offset=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="keyfile-size="><span class="term"><code class="varname">keyfile-size=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-size=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="luks"><span class="term"><code class="varname">luks</code></span><a class="headerlink" title="Permalink to this term" href="#luks">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="noauto"><span class="term"><code class="varname">noauto</code></span><a class="headerlink" title="Permalink to this term" href="#noauto">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="nofail"><span class="term"><code class="varname">nofail</code></span><a class="headerlink" title="Permalink to this term" href="#nofail">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="plain"><span class="term"><code class="varname">plain</code></span><a class="headerlink" title="Permalink to this term" href="#plain">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="read-only"><span class="term"><code class="varname">read-only</code></span><a class="headerlink" title="Permalink to this term" href="#read-only">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="readonly"><span class="term"><code class="varname">readonly</code></span><a class="headerlink" title="Permalink to this term" href="#readonly">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="size="><span class="term"><code class="varname">size=</code></span><a class="headerlink" title="Permalink to this term" href="#size=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="swap"><span class="term"><code class="varname">swap</code></span><a class="headerlink" title="Permalink to this term" href="#swap">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt"><span class="term"><code class="varname">tcrypt</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt-hidden"><span class="term"><code class="varname">tcrypt-hidden</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-hidden">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt-keyfile="><span class="term"><code class="varname">tcrypt-keyfile=</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-keyfile=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt-system"><span class="term"><code class="varname">tcrypt-system</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-system">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="timeout="><span class="term"><code class="varname">timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#timeout=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tmp"><span class="term"><code class="varname">tmp</code></span><a class="headerlink" title="Permalink to this term" href="#tmp">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tries="><span class="term"><code class="varname">tries=</code></span><a class="headerlink" title="Permalink to this term" href="#tries=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="verify"><span class="term"><code class="varname">verify</code></span><a class="headerlink" title="Permalink to this term" href="#verify">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186299536"></a><h2 id="System manager directives">System manager directives<a class="headerlink" title="Permalink to this headline" href="#System%20manager%20directives">¶</a></h2><p>Directives for configuring the behaviour of the
- systemd process.</p><div class="variablelist"><a name="systemd-directives"></a><dl class="variablelist"><dt id="CPUAffinity="><span class="term"><code class="varname">CPUAffinity=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAffinity=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="CapabilityBoundingSet="><span class="term"><code class="varname">CapabilityBoundingSet=</code></span><a class="headerlink" title="Permalink to this term" href="#CapabilityBoundingSet=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="CrashChVT="><span class="term"><code class="varname">CrashChVT=</code></span><a class="headerlink" title="Permalink to this term" href="#CrashChVT=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="CrashShell="><span class="term"><code class="varname">CrashShell=</code></span><a class="headerlink" title="Permalink to this term" href="#CrashShell=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultBlockIOAccounting="><span class="term"><code class="varname">DefaultBlockIOAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultBlockIOAccounting=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultCPUAccounting="><span class="term"><code class="varname">DefaultCPUAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultCPUAccounting=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultEnvironment="><span class="term"><code class="varname">DefaultEnvironment=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultEnvironment=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitAS="><span class="term"><code class="varname">DefaultLimitAS=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitAS=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitCORE="><span class="term"><code class="varname">DefaultLimitCORE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitCORE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitCPU="><span class="term"><code class="varname">DefaultLimitCPU=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitCPU=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitDATA="><span class="term"><code class="varname">DefaultLimitDATA=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitDATA=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitFSIZE="><span class="term"><code class="varname">DefaultLimitFSIZE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitFSIZE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitLOCKS="><span class="term"><code class="varname">DefaultLimitLOCKS=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitLOCKS=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitMEMLOCK="><span class="term"><code class="varname">DefaultLimitMEMLOCK=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitMEMLOCK=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitMSGQUEUE="><span class="term"><code class="varname">DefaultLimitMSGQUEUE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitMSGQUEUE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitNICE="><span class="term"><code class="varname">DefaultLimitNICE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitNICE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitNOFILE="><span class="term"><code class="varname">DefaultLimitNOFILE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitNOFILE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitNPROC="><span class="term"><code class="varname">DefaultLimitNPROC=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitNPROC=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitRSS="><span class="term"><code class="varname">DefaultLimitRSS=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitRSS=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitRTPRIO="><span class="term"><code class="varname">DefaultLimitRTPRIO=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitRTPRIO=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitRTTIME="><span class="term"><code class="varname">DefaultLimitRTTIME=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitRTTIME=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitSIGPENDING="><span class="term"><code class="varname">DefaultLimitSIGPENDING=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitSIGPENDING=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitSTACK="><span class="term"><code class="varname">DefaultLimitSTACK=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitSTACK=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultMemoryAccounting="><span class="term"><code class="varname">DefaultMemoryAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultMemoryAccounting=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultRestartSec="><span class="term"><code class="varname">DefaultRestartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultRestartSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStandardError="><span class="term"><code class="varname">DefaultStandardError=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStandardError=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStandardOutput="><span class="term"><code class="varname">DefaultStandardOutput=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStandardOutput=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStartLimitBurst="><span class="term"><code class="varname">DefaultStartLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStartLimitBurst=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStartLimitInterval="><span class="term"><code class="varname">DefaultStartLimitInterval=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStartLimitInterval=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultTimeoutStartSec="><span class="term"><code class="varname">DefaultTimeoutStartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultTimeoutStartSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultTimeoutStopSec="><span class="term"><code class="varname">DefaultTimeoutStopSec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultTimeoutStopSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultTimerAccuracySec="><span class="term"><code class="varname">DefaultTimerAccuracySec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultTimerAccuracySec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DumpCore="><span class="term"><code class="varname">DumpCore=</code></span><a class="headerlink" title="Permalink to this term" href="#DumpCore=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="HibernateMode="><span class="term"><code class="varname">HibernateMode=</code></span><a class="headerlink" title="Permalink to this term" href="#HibernateMode=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="HibernateState="><span class="term"><code class="varname">HibernateState=</code></span><a class="headerlink" title="Permalink to this term" href="#HibernateState=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="HybridSleepMode="><span class="term"><code class="varname">HybridSleepMode=</code></span><a class="headerlink" title="Permalink to this term" href="#HybridSleepMode=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="HybridSleepState="><span class="term"><code class="varname">HybridSleepState=</code></span><a class="headerlink" title="Permalink to this term" href="#HybridSleepState=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="JoinControllers="><span class="term"><code class="varname">JoinControllers=</code></span><a class="headerlink" title="Permalink to this term" href="#JoinControllers=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogColor="><span class="term"><code class="varname">LogColor=</code></span><a class="headerlink" title="Permalink to this term" href="#LogColor=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogLevel="><span class="term"><code class="varname">LogLevel=</code></span><a class="headerlink" title="Permalink to this term" href="#LogLevel=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogLocation="><span class="term"><code class="varname">LogLocation=</code></span><a class="headerlink" title="Permalink to this term" href="#LogLocation=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogTarget="><span class="term"><code class="varname">LogTarget=</code></span><a class="headerlink" title="Permalink to this term" href="#LogTarget=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="RuntimeWatchdogSec="><span class="term"><code class="varname">RuntimeWatchdogSec=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeWatchdogSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="ShowStatus="><span class="term"><code class="varname">ShowStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#ShowStatus=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="ShutdownWatchdogSec="><span class="term"><code class="varname">ShutdownWatchdogSec=</code></span><a class="headerlink" title="Permalink to this term" href="#ShutdownWatchdogSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="SuspendMode="><span class="term"><code class="varname">SuspendMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendMode=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="SuspendState="><span class="term"><code class="varname">SuspendState=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendState=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="SystemCallArchitectures="><span class="term"><code class="varname">SystemCallArchitectures=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallArchitectures=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="TimerSlackNSec="><span class="term"><code class="varname">TimerSlackNSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimerSlackNSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186219232"></a><h2 id="bootchart.conf directives">bootchart.conf directives<a class="headerlink" title="Permalink to this headline" href="#bootchart.conf%20directives">¶</a></h2><p>Directives for configuring the behaviour of the
- systemd-bootchart process.</p><div class="variablelist"><a name="bootchart-directives"></a><dl class="variablelist"><dt id="ControlGroup="><span class="term"><code class="varname">ControlGroup=</code></span><a class="headerlink" title="Permalink to this term" href="#ControlGroup=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Filter="><span class="term"><code class="varname">Filter=</code></span><a class="headerlink" title="Permalink to this term" href="#Filter=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Frequency="><span class="term"><code class="varname">Frequency=</code></span><a class="headerlink" title="Permalink to this term" href="#Frequency=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Init="><span class="term"><code class="varname">Init=</code></span><a class="headerlink" title="Permalink to this term" href="#Init=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Output="><span class="term"><code class="varname">Output=</code></span><a class="headerlink" title="Permalink to this term" href="#Output=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="PlotEntropyGraph="><span class="term"><code class="varname">PlotEntropyGraph=</code></span><a class="headerlink" title="Permalink to this term" href="#PlotEntropyGraph=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="PlotMemoryUsage="><span class="term"><code class="varname">PlotMemoryUsage=</code></span><a class="headerlink" title="Permalink to this term" href="#PlotMemoryUsage=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Relative="><span class="term"><code class="varname">Relative=</code></span><a class="headerlink" title="Permalink to this term" href="#Relative=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Samples="><span class="term"><code class="varname">Samples=</code></span><a class="headerlink" title="Permalink to this term" href="#Samples=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="ScaleX="><span class="term"><code class="varname">ScaleX=</code></span><a class="headerlink" title="Permalink to this term" href="#ScaleX=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="ScaleY="><span class="term"><code class="varname">ScaleY=</code></span><a class="headerlink" title="Permalink to this term" href="#ScaleY=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214186199792"></a><h2 id="command-line options">command-line options<a class="headerlink" title="Permalink to this headline" href="#command-line%20options">¶</a></h2><p>Command-line options accepted by programs in the
- systemd suite.</p><div class="variablelist"><a name="options"></a><dl class="variablelist"><dt id="--accept"><span class="term"><code class="option">--accept</code></span><a class="headerlink" title="Permalink to this term" href="#--accept">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="--accept-cached"><span class="term"><code class="option">--accept-cached</code></span><a class="headerlink" title="Permalink to this term" href="#--accept-cached">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--acquired"><span class="term"><code class="option">--acquired</code></span><a class="headerlink" title="Permalink to this term" href="#--acquired">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--action="><span class="term"><code class="option">--action=</code></span><a class="headerlink" title="Permalink to this term" href="#--action=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--activatable"><span class="term"><code class="option">--activatable</code></span><a class="headerlink" title="Permalink to this term" href="#--activatable">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--address="><span class="term"><code class="option">--address=</code></span><a class="headerlink" title="Permalink to this term" href="#--address=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a></p></dd><dt id="--adjust-system-clock"><span class="term"><code class="option">--adjust-system-clock</code></span><a class="headerlink" title="Permalink to this term" href="#--adjust-system-clock">¶</a></dt><dd><p><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--after"><span class="term"><code class="option">--after</code></span><a class="headerlink" title="Permalink to this term" href="#--after">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--after-cursor="><span class="term"><code class="option">--after-cursor=</code></span><a class="headerlink" title="Permalink to this term" href="#--after-cursor=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--all"><span class="term"><code class="option">--all</code></span><a class="headerlink" title="Permalink to this term" href="#--all">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="--attr-match="><span class="term"><code class="option">--attr-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--attr-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--attr-nomatch="><span class="term"><code class="option">--attr-nomatch=</code></span><a class="headerlink" title="Permalink to this term" href="#--attr-nomatch=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--attribute-walk"><span class="term"><code class="option">--attribute-walk</code></span><a class="headerlink" title="Permalink to this term" href="#--attribute-walk">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--batch"><span class="term"><code class="option">--batch</code></span><a class="headerlink" title="Permalink to this term" href="#--batch">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--before"><span class="term"><code class="option">--before</code></span><a class="headerlink" title="Permalink to this term" href="#--before">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--bind-ro="><span class="term"><code class="option">--bind-ro=</code></span><a class="headerlink" title="Permalink to this term" href="#--bind-ro=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--bind="><span class="term"><code class="option">--bind=</code></span><a class="headerlink" title="Permalink to this term" href="#--bind=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--boot"><span class="term"><code class="option">--boot</code></span><a class="headerlink" title="Permalink to this term" href="#--boot">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--boot="><span class="term"><code class="option">--boot=</code></span><a class="headerlink" title="Permalink to this term" href="#--boot=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--booted"><span class="term"><code class="option">--booted</code></span><a class="headerlink" title="Permalink to this term" href="#--booted">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--capability="><span class="term"><code class="option">--capability=</code></span><a class="headerlink" title="Permalink to this term" href="#--capability=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--catalog"><span class="term"><code class="option">--catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--clean"><span class="term"><code class="option">--clean</code></span><a class="headerlink" title="Permalink to this term" href="#--clean">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--cleanup-db"><span class="term"><code class="option">--cleanup-db</code></span><a class="headerlink" title="Permalink to this term" href="#--cleanup-db">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--cmdline"><span class="term"><code class="option">--cmdline</code></span><a class="headerlink" title="Permalink to this term" href="#--cmdline">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--compress"><span class="term"><code class="option">--compress</code></span><a class="headerlink" title="Permalink to this term" href="#--compress">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--confirm-spawn"><span class="term"><code class="option">--confirm-spawn</code></span><a class="headerlink" title="Permalink to this term" href="#--confirm-spawn">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--console"><span class="term"><code class="option">--console</code></span><a class="headerlink" title="Permalink to this term" href="#--console">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--container"><span class="term"><code class="option">--container</code></span><a class="headerlink" title="Permalink to this term" href="#--container">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a></p></dd><dt id="--control-group"><span class="term"><code class="option">--control-group</code></span><a class="headerlink" title="Permalink to this term" href="#--control-group">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--crash-shell"><span class="term"><code class="option">--crash-shell</code></span><a class="headerlink" title="Permalink to this term" href="#--crash-shell">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--cursor="><span class="term"><code class="option">--cursor=</code></span><a class="headerlink" title="Permalink to this term" href="#--cursor=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--default-standard-error="><span class="term"><code class="option">--default-standard-error=</code></span><a class="headerlink" title="Permalink to this term" href="#--default-standard-error=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--default-standard-output="><span class="term"><code class="option">--default-standard-output=</code></span><a class="headerlink" title="Permalink to this term" href="#--default-standard-output=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--delay="><span class="term"><code class="option">--delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--delay=">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--depth="><span class="term"><code class="option">--depth=</code></span><a class="headerlink" title="Permalink to this term" href="#--depth=">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--description="><span class="term"><code class="option">--description=</code></span><a class="headerlink" title="Permalink to this term" href="#--description=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--device-id-of-file="><span class="term"><code class="option">--device-id-of-file=</code></span><a class="headerlink" title="Permalink to this term" href="#--device-id-of-file=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--diff="><span class="term"><code class="option">--diff=</code></span><a class="headerlink" title="Permalink to this term" href="#--diff=">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="--directory="><span class="term"><code class="option">--directory=</code></span><a class="headerlink" title="Permalink to this term" href="#--directory=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--disk-usage"><span class="term"><code class="option">--disk-usage</code></span><a class="headerlink" title="Permalink to this term" href="#--disk-usage">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--dmesg"><span class="term"><code class="option">--dmesg</code></span><a class="headerlink" title="Permalink to this term" href="#--dmesg">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--drop-capability="><span class="term"><code class="option">--drop-capability=</code></span><a class="headerlink" title="Permalink to this term" href="#--drop-capability=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--dry-run"><span class="term"><code class="option">--dry-run</code></span><a class="headerlink" title="Permalink to this term" href="#--dry-run">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--dump-catalog"><span class="term"><code class="option">--dump-catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--dump-configuration-items"><span class="term"><code class="option">--dump-configuration-items</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-configuration-items">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--dump-core"><span class="term"><code class="option">--dump-core</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-core">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--entropy"><span class="term"><code class="option">--entropy</code></span><a class="headerlink" title="Permalink to this term" href="#--entropy">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--exclude-prefix="><span class="term"><code class="option">--exclude-prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--exclude-prefix=">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="--exit"><span class="term"><code class="option">--exit</code></span><a class="headerlink" title="Permalink to this term" href="#--exit">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--exit-if-exists="><span class="term"><code class="option">--exit-if-exists=</code></span><a class="headerlink" title="Permalink to this term" href="#--exit-if-exists=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--export"><span class="term"><code class="option">--export</code></span><a class="headerlink" title="Permalink to this term" href="#--export">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--export-db"><span class="term"><code class="option">--export-db</code></span><a class="headerlink" title="Permalink to this term" href="#--export-db">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--export-prefix="><span class="term"><code class="option">--export-prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--export-prefix=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--field="><span class="term"><code class="option">--field=</code></span><a class="headerlink" title="Permalink to this term" href="#--field=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a></p></dd><dt id="--file-size-max="><span class="term"><code class="option">--file-size-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--file-size-max=">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="--file="><span class="term"><code class="option">--file=</code></span><a class="headerlink" title="Permalink to this term" href="#--file=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="--follow"><span class="term"><code class="option">--follow</code></span><a class="headerlink" title="Permalink to this term" href="#--follow">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--force"><span class="term"><code class="option">--force</code></span><a class="headerlink" title="Permalink to this term" href="#--force">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--freq"><span class="term"><code class="option">--freq</code></span><a class="headerlink" title="Permalink to this term" href="#--freq">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--from-pattern="><span class="term"><code class="option">--from-pattern=</code></span><a class="headerlink" title="Permalink to this term" href="#--from-pattern=">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--full"><span class="term"><code class="option">--full</code></span><a class="headerlink" title="Permalink to this term" href="#--full">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="--fuzz="><span class="term"><code class="option">--fuzz=</code></span><a class="headerlink" title="Permalink to this term" href="#--fuzz=">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--getter="><span class="term"><code class="option">--getter=</code></span><a class="headerlink" title="Permalink to this term" href="#--getter=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--gid="><span class="term"><code class="option">--gid=</code></span><a class="headerlink" title="Permalink to this term" href="#--gid=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--global"><span class="term"><code class="option">--global</code></span><a class="headerlink" title="Permalink to this term" href="#--global">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--halt"><span class="term"><code class="option">--halt</code></span><a class="headerlink" title="Permalink to this term" href="#--halt">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="--header"><span class="term"><code class="option">--header</code></span><a class="headerlink" title="Permalink to this term" href="#--header">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a>, <a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--host="><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#--host=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--icon="><span class="term"><code class="option">--icon=</code></span><a class="headerlink" title="Permalink to this term" href="#--icon=">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--identifier="><span class="term"><code class="option">--identifier=</code></span><a class="headerlink" title="Permalink to this term" href="#--identifier=">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="--ignore-inhibitors"><span class="term"><code class="option">--ignore-inhibitors</code></span><a class="headerlink" title="Permalink to this term" href="#--ignore-inhibitors">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--image="><span class="term"><code class="option">--image=</code></span><a class="headerlink" title="Permalink to this term" href="#--image=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--init"><span class="term"><code class="option">--init</code></span><a class="headerlink" title="Permalink to this term" href="#--init">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--interface="><span class="term"><code class="option">--interface=</code></span><a class="headerlink" title="Permalink to this term" href="#--interface=">¶</a></dt><dd><p><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a></p></dd><dt id="--interval="><span class="term"><code class="option">--interval=</code></span><a class="headerlink" title="Permalink to this term" href="#--interval=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--iterations="><span class="term"><code class="option">--iterations=</code></span><a class="headerlink" title="Permalink to this term" href="#--iterations=">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--job-mode="><span class="term"><code class="option">--job-mode=</code></span><a class="headerlink" title="Permalink to this term" href="#--job-mode=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--keep-unit"><span class="term"><code class="option">--keep-unit</code></span><a class="headerlink" title="Permalink to this term" href="#--keep-unit">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--kernel"><span class="term"><code class="option">--kernel</code></span><a class="headerlink" title="Permalink to this term" href="#--kernel">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--key="><span class="term"><code class="option">--key=</code></span><a class="headerlink" title="Permalink to this term" href="#--key=">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="--kill-who="><span class="term"><code class="option">--kill-who=</code></span><a class="headerlink" title="Permalink to this term" href="#--kill-who=">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--level-prefix="><span class="term"><code class="option">--level-prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--level-prefix=">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="--lines="><span class="term"><code class="option">--lines=</code></span><a class="headerlink" title="Permalink to this term" href="#--lines=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--link-journal="><span class="term"><code class="option">--link-journal=</code></span><a class="headerlink" title="Permalink to this term" href="#--link-journal=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--list"><span class="term"><code class="option">--list</code></span><a class="headerlink" title="Permalink to this term" href="#--list">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--list-boots"><span class="term"><code class="option">--list-boots</code></span><a class="headerlink" title="Permalink to this term" href="#--list-boots">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--list-catalog"><span class="term"><code class="option">--list-catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--list-catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--listen-http="><span class="term"><code class="option">--listen-http=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen-http=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--listen-https="><span class="term"><code class="option">--listen-https=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen-https=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--listen-raw="><span class="term"><code class="option">--listen-raw=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen-raw=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--listen="><span class="term"><code class="option">--listen=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen=">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="--log-color="><span class="term"><code class="option">--log-color=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-color=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--log-level="><span class="term"><code class="option">--log-level=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-level=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--log-location="><span class="term"><code class="option">--log-location=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-location=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--log-priority="><span class="term"><code class="option">--log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-priority=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--log-target="><span class="term"><code class="option">--log-target=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-target=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--machine="><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#--machine=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--match="><span class="term"><code class="option">--match=</code></span><a class="headerlink" title="Permalink to this term" href="#--match=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--merge"><span class="term"><code class="option">--merge</code></span><a class="headerlink" title="Permalink to this term" href="#--merge">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--mode="><span class="term"><code class="option">--mode=</code></span><a class="headerlink" title="Permalink to this term" href="#--mode=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--multiple"><span class="term"><code class="option">--multiple</code></span><a class="headerlink" title="Permalink to this term" href="#--multiple">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--name="><span class="term"><code class="option">--name=</code></span><a class="headerlink" title="Permalink to this term" href="#--name=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--network-bridge="><span class="term"><code class="option">--network-bridge=</code></span><a class="headerlink" title="Permalink to this term" href="#--network-bridge=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--network-interface="><span class="term"><code class="option">--network-interface=</code></span><a class="headerlink" title="Permalink to this term" href="#--network-interface=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--network-macvlan="><span class="term"><code class="option">--network-macvlan=</code></span><a class="headerlink" title="Permalink to this term" href="#--network-macvlan=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--network-veth"><span class="term"><code class="option">--network-veth</code></span><a class="headerlink" title="Permalink to this term" href="#--network-veth">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--new-id128"><span class="term"><code class="option">--new-id128</code></span><a class="headerlink" title="Permalink to this term" href="#--new-id128">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--nice="><span class="term"><code class="option">--nice=</code></span><a class="headerlink" title="Permalink to this term" href="#--nice=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--no-block"><span class="term"><code class="option">--no-block</code></span><a class="headerlink" title="Permalink to this term" href="#--no-block">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--no-compress"><span class="term"><code class="option">--no-compress</code></span><a class="headerlink" title="Permalink to this term" href="#--no-compress">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--no-convert"><span class="term"><code class="option">--no-convert</code></span><a class="headerlink" title="Permalink to this term" href="#--no-convert">¶</a></dt><dd><p><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a></p></dd><dt id="--no-filter"><span class="term"><code class="option">--no-filter</code></span><a class="headerlink" title="Permalink to this term" href="#--no-filter">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--no-full"><span class="term"><code class="option">--no-full</code></span><a class="headerlink" title="Permalink to this term" href="#--no-full">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a></p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--no-reload"><span class="term"><code class="option">--no-reload</code></span><a class="headerlink" title="Permalink to this term" href="#--no-reload">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--no-seal"><span class="term"><code class="option">--no-seal</code></span><a class="headerlink" title="Permalink to this term" href="#--no-seal">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--no-tail"><span class="term"><code class="option">--no-tail</code></span><a class="headerlink" title="Permalink to this term" href="#--no-tail">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--no-tty"><span class="term"><code class="option">--no-tty</code></span><a class="headerlink" title="Permalink to this term" href="#--no-tty">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--no-wall"><span class="term"><code class="option">--no-wall</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wall">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a></p></dd><dt id="--no-wtmp"><span class="term"><code class="option">--no-wtmp</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wtmp">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="--order"><span class="term"><code class="option">--order</code></span><a class="headerlink" title="Permalink to this term" href="#--order">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--output"><span class="term"><code class="option">--output</code></span><a class="headerlink" title="Permalink to this term" href="#--output">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--output="><span class="term"><code class="option">--output=</code></span><a class="headerlink" title="Permalink to this term" href="#--output=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--pager-end"><span class="term"><code class="option">--pager-end</code></span><a class="headerlink" title="Permalink to this term" href="#--pager-end">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--parent-match="><span class="term"><code class="option">--parent-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--parent-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--path="><span class="term"><code class="option">--path=</code></span><a class="headerlink" title="Permalink to this term" href="#--path=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--personality="><span class="term"><code class="option">--personality=</code></span><a class="headerlink" title="Permalink to this term" href="#--personality=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--pid="><span class="term"><code class="option">--pid=</code></span><a class="headerlink" title="Permalink to this term" href="#--pid=">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--plain"><span class="term"><code class="option">--plain</code></span><a class="headerlink" title="Permalink to this term" href="#--plain">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--plymouth"><span class="term"><code class="option">--plymouth</code></span><a class="headerlink" title="Permalink to this term" href="#--plymouth">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--poweroff"><span class="term"><code class="option">--poweroff</code></span><a class="headerlink" title="Permalink to this term" href="#--poweroff">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="--prefix="><span class="term"><code class="option">--prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--prefix=">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--pretty"><span class="term"><code class="option">--pretty</code></span><a class="headerlink" title="Permalink to this term" href="#--pretty">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="--priority="><span class="term"><code class="option">--priority=</code></span><a class="headerlink" title="Permalink to this term" href="#--priority=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="--private-network"><span class="term"><code class="option">--private-network</code></span><a class="headerlink" title="Permalink to this term" href="#--private-network">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--privileged"><span class="term"><code class="option">--privileged</code></span><a class="headerlink" title="Permalink to this term" href="#--privileged">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a></p></dd><dt id="--property"><span class="term"><code class="option">--property</code></span><a class="headerlink" title="Permalink to this term" href="#--property">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--property-match="><span class="term"><code class="option">--property-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--property-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--property="><span class="term"><code class="option">--property=</code></span><a class="headerlink" title="Permalink to this term" href="#--property=">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--pss"><span class="term"><code class="option">--pss</code></span><a class="headerlink" title="Permalink to this term" href="#--pss">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--query"><span class="term"><code class="option">--query</code></span><a class="headerlink" title="Permalink to this term" href="#--query">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--query="><span class="term"><code class="option">--query=</code></span><a class="headerlink" title="Permalink to this term" href="#--query=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--quiet"><span class="term"><code class="option">--quiet</code></span><a class="headerlink" title="Permalink to this term" href="#--quiet">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--read-only"><span class="term"><code class="option">--read-only</code></span><a class="headerlink" title="Permalink to this term" href="#--read-only">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--readahead="><span class="term"><code class="option">--readahead=</code></span><a class="headerlink" title="Permalink to this term" href="#--readahead=">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--ready"><span class="term"><code class="option">--ready</code></span><a class="headerlink" title="Permalink to this term" href="#--ready">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--reboot"><span class="term"><code class="option">--reboot</code></span><a class="headerlink" title="Permalink to this term" href="#--reboot">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="--recursive"><span class="term"><code class="option">--recursive</code></span><a class="headerlink" title="Permalink to this term" href="#--recursive">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--register="><span class="term"><code class="option">--register=</code></span><a class="headerlink" title="Permalink to this term" href="#--register=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--rel"><span class="term"><code class="option">--rel</code></span><a class="headerlink" title="Permalink to this term" href="#--rel">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--reload"><span class="term"><code class="option">--reload</code></span><a class="headerlink" title="Permalink to this term" href="#--reload">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--remain-after-exit"><span class="term"><code class="option">--remain-after-exit</code></span><a class="headerlink" title="Permalink to this term" href="#--remain-after-exit">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--remove"><span class="term"><code class="option">--remove</code></span><a class="headerlink" title="Permalink to this term" href="#--remove">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--require"><span class="term"><code class="option">--require</code></span><a class="headerlink" title="Permalink to this term" href="#--require">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--resolve-names="><span class="term"><code class="option">--resolve-names=</code></span><a class="headerlink" title="Permalink to this term" href="#--resolve-names=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--reverse"><span class="term"><code class="option">--reverse</code></span><a class="headerlink" title="Permalink to this term" href="#--reverse">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--root"><span class="term"><code class="option">--root</code></span><a class="headerlink" title="Permalink to this term" href="#--root">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--root="><span class="term"><code class="option">--root=</code></span><a class="headerlink" title="Permalink to this term" href="#--root=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--runtime"><span class="term"><code class="option">--runtime</code></span><a class="headerlink" title="Permalink to this term" href="#--runtime">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--sample"><span class="term"><code class="option">--sample</code></span><a class="headerlink" title="Permalink to this term" href="#--sample">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--scale-x"><span class="term"><code class="option">--scale-x</code></span><a class="headerlink" title="Permalink to this term" href="#--scale-x">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--scale-y"><span class="term"><code class="option">--scale-y</code></span><a class="headerlink" title="Permalink to this term" href="#--scale-y">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--scope"><span class="term"><code class="option">--scope</code></span><a class="headerlink" title="Permalink to this term" href="#--scope">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--seal"><span class="term"><code class="option">--seal</code></span><a class="headerlink" title="Permalink to this term" href="#--seal">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--selinux-apifs-context="><span class="term"><code class="option">--selinux-apifs-context=</code></span><a class="headerlink" title="Permalink to this term" href="#--selinux-apifs-context=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--selinux-context="><span class="term"><code class="option">--selinux-context=</code></span><a class="headerlink" title="Permalink to this term" href="#--selinux-context=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--send-sighup"><span class="term"><code class="option">--send-sighup</code></span><a class="headerlink" title="Permalink to this term" href="#--send-sighup">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--service-type="><span class="term"><code class="option">--service-type=</code></span><a class="headerlink" title="Permalink to this term" href="#--service-type=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--setenv="><span class="term"><code class="option">--setenv=</code></span><a class="headerlink" title="Permalink to this term" href="#--setenv=">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--setup-keys"><span class="term"><code class="option">--setup-keys</code></span><a class="headerlink" title="Permalink to this term" href="#--setup-keys">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--share-system"><span class="term"><code class="option">--share-system</code></span><a class="headerlink" title="Permalink to this term" href="#--share-system">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--show-cursor"><span class="term"><code class="option">--show-cursor</code></span><a class="headerlink" title="Permalink to this term" href="#--show-cursor">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--show-machine"><span class="term"><code class="option">--show-machine</code></span><a class="headerlink" title="Permalink to this term" href="#--show-machine">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--show-status="><span class="term"><code class="option">--show-status=</code></span><a class="headerlink" title="Permalink to this term" href="#--show-status=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--show-types"><span class="term"><code class="option">--show-types</code></span><a class="headerlink" title="Permalink to this term" href="#--show-types">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--signal="><span class="term"><code class="option">--signal=</code></span><a class="headerlink" title="Permalink to this term" href="#--signal=">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--since="><span class="term"><code class="option">--since=</code></span><a class="headerlink" title="Permalink to this term" href="#--since=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--slice="><span class="term"><code class="option">--slice=</code></span><a class="headerlink" title="Permalink to this term" href="#--slice=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--start-exec-queue"><span class="term"><code class="option">--start-exec-queue</code></span><a class="headerlink" title="Permalink to this term" href="#--start-exec-queue">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--state="><span class="term"><code class="option">--state=</code></span><a class="headerlink" title="Permalink to this term" href="#--state=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--static"><span class="term"><code class="option">--static</code></span><a class="headerlink" title="Permalink to this term" href="#--static">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="--status="><span class="term"><code class="option">--status=</code></span><a class="headerlink" title="Permalink to this term" href="#--status=">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--stop-exec-queue"><span class="term"><code class="option">--stop-exec-queue</code></span><a class="headerlink" title="Permalink to this term" href="#--stop-exec-queue">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--subsystem-match="><span class="term"><code class="option">--subsystem-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--subsystem-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--subsystem-nomatch="><span class="term"><code class="option">--subsystem-nomatch=</code></span><a class="headerlink" title="Permalink to this term" href="#--subsystem-nomatch=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--sysname-match="><span class="term"><code class="option">--sysname-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--sysname-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--system"><span class="term"><code class="option">--system</code></span><a class="headerlink" title="Permalink to this term" href="#--system">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--tag-match="><span class="term"><code class="option">--tag-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--tag-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--test"><span class="term"><code class="option">--test</code></span><a class="headerlink" title="Permalink to this term" href="#--test">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--test="><span class="term"><code class="option">--test=</code></span><a class="headerlink" title="Permalink to this term" href="#--test=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--timeout="><span class="term"><code class="option">--timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#--timeout=">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--tmpfs="><span class="term"><code class="option">--tmpfs=</code></span><a class="headerlink" title="Permalink to this term" href="#--tmpfs=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--to-pattern="><span class="term"><code class="option">--to-pattern=</code></span><a class="headerlink" title="Permalink to this term" href="#--to-pattern=">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--transient"><span class="term"><code class="option">--transient</code></span><a class="headerlink" title="Permalink to this term" href="#--transient">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="--type="><span class="term"><code class="option">--type=</code></span><a class="headerlink" title="Permalink to this term" href="#--type=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--udev"><span class="term"><code class="option">--udev</code></span><a class="headerlink" title="Permalink to this term" href="#--udev">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--uid="><span class="term"><code class="option">--uid=</code></span><a class="headerlink" title="Permalink to this term" href="#--uid=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--unique"><span class="term"><code class="option">--unique</code></span><a class="headerlink" title="Permalink to this term" href="#--unique">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--unit="><span class="term"><code class="option">--unit=</code></span><a class="headerlink" title="Permalink to this term" href="#--unit=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--until="><span class="term"><code class="option">--until=</code></span><a class="headerlink" title="Permalink to this term" href="#--until=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--update"><span class="term"><code class="option">--update</code></span><a class="headerlink" title="Permalink to this term" href="#--update">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--update-catalog"><span class="term"><code class="option">--update-catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--update-catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--url="><span class="term"><code class="option">--url=</code></span><a class="headerlink" title="Permalink to this term" href="#--url=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="#--user">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--user-unit="><span class="term"><code class="option">--user-unit=</code></span><a class="headerlink" title="Permalink to this term" href="#--user-unit=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--user="><span class="term"><code class="option">--user=</code></span><a class="headerlink" title="Permalink to this term" href="#--user=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--uuid="><span class="term"><code class="option">--uuid=</code></span><a class="headerlink" title="Permalink to this term" href="#--uuid=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--verbose"><span class="term"><code class="option">--verbose</code></span><a class="headerlink" title="Permalink to this term" href="#--verbose">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--verify"><span class="term"><code class="option">--verify</code></span><a class="headerlink" title="Permalink to this term" href="#--verify">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--verify-key="><span class="term"><code class="option">--verify-key=</code></span><a class="headerlink" title="Permalink to this term" href="#--verify-key=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a>, <a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--vm"><span class="term"><code class="option">--vm</code></span><a class="headerlink" title="Permalink to this term" href="#--vm">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a></p></dd><dt id="--wall"><span class="term"><code class="option">--wall</code></span><a class="headerlink" title="Permalink to this term" href="#--wall">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--watch"><span class="term"><code class="option">--watch</code></span><a class="headerlink" title="Permalink to this term" href="#--watch">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--what="><span class="term"><code class="option">--what=</code></span><a class="headerlink" title="Permalink to this term" href="#--what=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--who="><span class="term"><code class="option">--who=</code></span><a class="headerlink" title="Permalink to this term" href="#--who=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--why="><span class="term"><code class="option">--why=</code></span><a class="headerlink" title="Permalink to this term" href="#--why=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--wtmp-only"><span class="term"><code class="option">--wtmp-only</code></span><a class="headerlink" title="Permalink to this term" href="#--wtmp-only">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="-A"><span class="term"><code class="option">-A</code></span><a class="headerlink" title="Permalink to this term" href="#-A">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-C"><span class="term"><code class="option">-C</code></span><a class="headerlink" title="Permalink to this term" href="#-C">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="-D"><span class="term"><code class="option">-D</code></span><a class="headerlink" title="Permalink to this term" href="#-D">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-E"><span class="term"><code class="option">-E</code></span><a class="headerlink" title="Permalink to this term" href="#-E">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-F"><span class="term"><code class="option">-F</code></span><a class="headerlink" title="Permalink to this term" href="#-F">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a></p></dd><dt id="-H"><span class="term"><code class="option">-H</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="-L"><span class="term"><code class="option">-L</code></span><a class="headerlink" title="Permalink to this term" href="#-L">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-M"><span class="term"><code class="option">-M</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="-N"><span class="term"><code class="option">-N</code></span><a class="headerlink" title="Permalink to this term" href="#-N">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-P"><span class="term"><code class="option">-P</code></span><a class="headerlink" title="Permalink to this term" href="#-P">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-R"><span class="term"><code class="option">-R</code></span><a class="headerlink" title="Permalink to this term" href="#-R">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-S"><span class="term"><code class="option">-S</code></span><a class="headerlink" title="Permalink to this term" href="#-S">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-Z"><span class="term"><code class="option">-Z</code></span><a class="headerlink" title="Permalink to this term" href="#-Z">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-a"><span class="term"><code class="option">-a</code></span><a class="headerlink" title="Permalink to this term" href="#-a">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-b"><span class="term"><code class="option">-b</code></span><a class="headerlink" title="Permalink to this term" href="#-b">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-c"><span class="term"><code class="option">-c</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-d"><span class="term"><code class="option">-d</code></span><a class="headerlink" title="Permalink to this term" href="#-d">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-e"><span class="term"><code class="option">-e</code></span><a class="headerlink" title="Permalink to this term" href="#-e">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-f"><span class="term"><code class="option">-f</code></span><a class="headerlink" title="Permalink to this term" href="#-f">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="-g"><span class="term"><code class="option">-g</code></span><a class="headerlink" title="Permalink to this term" href="#-g">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-h"><span class="term"><code class="option">-h</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a>, <a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-i"><span class="term"><code class="option">-i</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-j"><span class="term"><code class="option">-j</code></span><a class="headerlink" title="Permalink to this term" href="#-j">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-k"><span class="term"><code class="option">-k</code></span><a class="headerlink" title="Permalink to this term" href="#-k">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-l"><span class="term"><code class="option">-l</code></span><a class="headerlink" title="Permalink to this term" href="#-l">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-m"><span class="term"><code class="option">-m</code></span><a class="headerlink" title="Permalink to this term" href="#-m">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-n"><span class="term"><code class="option">-n</code></span><a class="headerlink" title="Permalink to this term" href="#-n">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-o"><span class="term"><code class="option">-o</code></span><a class="headerlink" title="Permalink to this term" href="#-o">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a></p></dd><dt id="-p"><span class="term"><code class="option">-p</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-q"><span class="term"><code class="option">-q</code></span><a class="headerlink" title="Permalink to this term" href="#-q">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-r"><span class="term"><code class="option">-r</code></span><a class="headerlink" title="Permalink to this term" href="#-r">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-s"><span class="term"><code class="option">-s</code></span><a class="headerlink" title="Permalink to this term" href="#-s">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-t"><span class="term"><code class="option">-t</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-u"><span class="term"><code class="option">-u</code></span><a class="headerlink" title="Permalink to this term" href="#-u">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-v"><span class="term"><code class="option">-v</code></span><a class="headerlink" title="Permalink to this term" href="#-v">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-w"><span class="term"><code class="option">-w</code></span><a class="headerlink" title="Permalink to this term" href="#-w">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="-x"><span class="term"><code class="option">-x</code></span><a class="headerlink" title="Permalink to this term" href="#-x">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-y"><span class="term"><code class="option">-y</code></span><a class="headerlink" title="Permalink to this term" href="#-y">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="auto"><span class="term"><code class="constant">auto</code></span><a class="headerlink" title="Permalink to this term" href="#auto">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="cat"><span class="term"><code class="option">cat</code></span><a class="headerlink" title="Permalink to this term" href="#cat">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="closed"><span class="term"><code class="option">closed</code></span><a class="headerlink" title="Permalink to this term" href="#closed">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="driver"><span class="term"><code class="option">driver</code></span><a class="headerlink" title="Permalink to this term" href="#driver">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="export"><span class="term"><code class="option">export</code></span><a class="headerlink" title="Permalink to this term" href="#export">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="hibernate"><span class="term"><code class="option">hibernate</code></span><a class="headerlink" title="Permalink to this term" href="#hibernate">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="hybrid-sleep"><span class="term"><code class="option">hybrid-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#hybrid-sleep">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="journal"><span class="term"><code class="option">journal</code></span><a class="headerlink" title="Permalink to this term" href="#journal">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="json"><span class="term"><code class="option">json</code></span><a class="headerlink" title="Permalink to this term" href="#json">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="json-pretty"><span class="term"><code class="option">json-pretty</code></span><a class="headerlink" title="Permalink to this term" href="#json-pretty">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="json-sse"><span class="term"><code class="option">json-sse</code></span><a class="headerlink" title="Permalink to this term" href="#json-sse">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="kernel"><span class="term"><code class="option">kernel</code></span><a class="headerlink" title="Permalink to this term" href="#kernel">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="short"><span class="term"><code class="option">short</code></span><a class="headerlink" title="Permalink to this term" href="#short">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="short-iso"><span class="term"><code class="option">short-iso</code></span><a class="headerlink" title="Permalink to this term" href="#short-iso">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="short-monotonic"><span class="term"><code class="option">short-monotonic</code></span><a class="headerlink" title="Permalink to this term" href="#short-monotonic">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="short-precise"><span class="term"><code class="option">short-precise</code></span><a class="headerlink" title="Permalink to this term" href="#short-precise">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="stdout"><span class="term"><code class="option">stdout</code></span><a class="headerlink" title="Permalink to this term" href="#stdout">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="strict"><span class="term"><code class="option">strict</code></span><a class="headerlink" title="Permalink to this term" href="#strict">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="suspend"><span class="term"><code class="option">suspend</code></span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="syslog"><span class="term"><code class="option">syslog</code></span><a class="headerlink" title="Permalink to this term" href="#syslog">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="verbose"><span class="term"><code class="option">verbose</code></span><a class="headerlink" title="Permalink to this term" href="#verbose">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214185496288"></a><h2 id="Constants">Constants<a class="headerlink" title="Permalink to this headline" href="#Constants">¶</a></h2><p>Various constant used and/or defined by systemd.</p><div class="variablelist"><a name="constants"></a><dl class="variablelist"><dt id="-0"><span class="term"><code class="constant">-0</code></span><a class="headerlink" title="Permalink to this term" href="#-0">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="-1"><span class="term"><code class="constant">-1</code></span><a class="headerlink" title="Permalink to this term" href="#-1">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="-ECHILD"><span class="term"><code class="constant">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="-ENODATA"><span class="term"><code class="constant">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p><a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a></p></dd><dt id="-ENXIO"><span class="term"><code class="constant">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="0"><span class="term"><code class="constant">0</code></span><a class="headerlink" title="Permalink to this term" href="#0">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="1"><span class="term"><code class="constant">1</code></span><a class="headerlink" title="Permalink to this term" href="#1">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="2"><span class="term"><code class="constant">2</code></span><a class="headerlink" title="Permalink to this term" href="#2">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="AF_INET"><span class="term"><code class="constant">AF_INET</code></span><a class="headerlink" title="Permalink to this term" href="#AF_INET">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="AF_INET6"><span class="term"><code class="constant">AF_INET6</code></span><a class="headerlink" title="Permalink to this term" href="#AF_INET6">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="AF_NETLINK"><span class="term"><code class="constant">AF_NETLINK</code></span><a class="headerlink" title="Permalink to this term" href="#AF_NETLINK">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="AF_UNIX"><span class="term"><code class="constant">AF_UNIX</code></span><a class="headerlink" title="Permalink to this term" href="#AF_UNIX">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="AF_UNSPEC"><span class="term"><code class="constant">AF_UNSPEC</code></span><a class="headerlink" title="Permalink to this term" href="#AF_UNSPEC">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a></p></dd><dt id="CAP_DAC_OVERRIDE"><span class="term"><code class="constant">CAP_DAC_OVERRIDE</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_DAC_OVERRIDE">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CAP_MKNOD"><span class="term"><code class="constant">CAP_MKNOD</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_MKNOD">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CAP_SYS_ADMIN"><span class="term"><code class="constant">CAP_SYS_ADMIN</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_SYS_ADMIN">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CAP_SYS_PTRACE"><span class="term"><code class="constant">CAP_SYS_PTRACE</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_SYS_PTRACE">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CLOCK_BOOTTIME_ALARM"><span class="term"><code class="constant">CLOCK_BOOTTIME_ALARM</code></span><a class="headerlink" title="Permalink to this term" href="#CLOCK_BOOTTIME_ALARM">¶</a></dt><dd><p><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="CLOCK_MONOTONIC"><span class="term"><code class="constant">CLOCK_MONOTONIC</code></span><a class="headerlink" title="Permalink to this term" href="#CLOCK_MONOTONIC">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="CLOCK_REALTIME"><span class="term"><code class="constant">CLOCK_REALTIME</code></span><a class="headerlink" title="Permalink to this term" href="#CLOCK_REALTIME">¶</a></dt><dd><p><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="EACCES"><span class="term"><code class="constant">EACCES</code></span><a class="headerlink" title="Permalink to this term" href="#EACCES">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="EPERM"><span class="term"><code class="constant">EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#EPERM">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="EUCLEAN"><span class="term"><code class="constant">EUCLEAN</code></span><a class="headerlink" title="Permalink to this term" href="#EUCLEAN">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LOG_ALERT"><span class="term"><code class="constant">LOG_ALERT</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_ALERT">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_CRIT"><span class="term"><code class="constant">LOG_CRIT</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_CRIT">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_DEBUG"><span class="term"><code class="constant">LOG_DEBUG</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_DEBUG">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_EMERG"><span class="term"><code class="constant">LOG_EMERG</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_EMERG">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_ERR"><span class="term"><code class="constant">LOG_ERR</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_ERR">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_INFO"><span class="term"><code class="constant">LOG_INFO</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_INFO">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_NOTICE"><span class="term"><code class="constant">LOG_NOTICE</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_NOTICE">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_WARNING"><span class="term"><code class="constant">LOG_WARNING</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_WARNING">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="NUL"><span class="term"><code class="constant">NUL</code></span><a class="headerlink" title="Permalink to this term" href="#NUL">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a>, <a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="NULL"><span class="term"><code class="constant">NULL</code></span><a class="headerlink" title="Permalink to this term" href="#NULL">¶</a></dt><dd><p><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a>, <a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>, <a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a>, <a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>, <a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a></p></dd><dt id="O_NONBLOCK"><span class="term"><code class="constant">O_NONBLOCK</code></span><a class="headerlink" title="Permalink to this term" href="#O_NONBLOCK">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="POLLIN"><span class="term"><code class="constant">POLLIN</code></span><a class="headerlink" title="Permalink to this term" href="#POLLIN">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a></p></dd><dt id="POLLOUT"><span class="term"><code class="constant">POLLOUT</code></span><a class="headerlink" title="Permalink to this term" href="#POLLOUT">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_AUDIT_LOGIN_UID"><span class="term"><code class="constant">SD_BUS_CREDS_AUDIT_LOGIN_UID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_AUDIT_LOGIN_UID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_AUDIT_SESSION_ID"><span class="term"><code class="constant">SD_BUS_CREDS_AUDIT_SESSION_ID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_AUDIT_SESSION_ID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_BOUNDING_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_BOUNDING_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_BOUNDING_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_CGROUP"><span class="term"><code class="constant">SD_BUS_CREDS_CGROUP</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_CGROUP">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_CMDLINE"><span class="term"><code class="constant">SD_BUS_CREDS_CMDLINE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_CMDLINE">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_COMM"><span class="term"><code class="constant">SD_BUS_CREDS_COMM</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_COMM">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_EFFECTIVE_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_EFFECTIVE_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_EFFECTIVE_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_EXE"><span class="term"><code class="constant">SD_BUS_CREDS_EXE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_EXE">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_GID"><span class="term"><code class="constant">SD_BUS_CREDS_GID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_GID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_INHERITABLE_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_INHERITABLE_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_INHERITABLE_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_OWNER_UID"><span class="term"><code class="constant">SD_BUS_CREDS_OWNER_UID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_OWNER_UID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_PERMITTED_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_PERMITTED_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_PERMITTED_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_PID"><span class="term"><code class="constant">SD_BUS_CREDS_PID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_PID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_PID_STARTTIME"><span class="term"><code class="constant">SD_BUS_CREDS_PID_STARTTIME</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_PID_STARTTIME">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_SELINUX_CONTEXT"><span class="term"><code class="constant">SD_BUS_CREDS_SELINUX_CONTEXT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_SELINUX_CONTEXT">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_SESSION"><span class="term"><code class="constant">SD_BUS_CREDS_SESSION</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_SESSION">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_SLICE"><span class="term"><code class="constant">SD_BUS_CREDS_SLICE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_SLICE">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_TID"><span class="term"><code class="constant">SD_BUS_CREDS_TID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_TID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_TID_COMM"><span class="term"><code class="constant">SD_BUS_CREDS_TID_COMM</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_TID_COMM">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_UID"><span class="term"><code class="constant">SD_BUS_CREDS_UID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_UID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_UNIQUE_NAME"><span class="term"><code class="constant">SD_BUS_CREDS_UNIQUE_NAME</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_UNIQUE_NAME">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_UNIT"><span class="term"><code class="constant">SD_BUS_CREDS_UNIT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_UNIT">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_USER_UNIT"><span class="term"><code class="constant">SD_BUS_CREDS_USER_UNIT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_USER_UNIT">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_WELL_KNOWN_NAMES"><span class="term"><code class="constant">SD_BUS_CREDS_WELL_KNOWN_NAMES</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_WELL_KNOWN_NAMES">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_ACCESS_DENIED"><span class="term"><code class="constant">SD_BUS_ERROR_ACCESS_DENIED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_ACCESS_DENIED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_ADDRESS_IN_USE"><span class="term"><code class="constant">SD_BUS_ERROR_ADDRESS_IN_USE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_ADDRESS_IN_USE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_AUTH_FAILED"><span class="term"><code class="constant">SD_BUS_ERROR_AUTH_FAILED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_AUTH_FAILED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_BAD_ADDRESS"><span class="term"><code class="constant">SD_BUS_ERROR_BAD_ADDRESS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_BAD_ADDRESS">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_DISCONNECTED"><span class="term"><code class="constant">SD_BUS_ERROR_DISCONNECTED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_DISCONNECTED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_FAILED"><span class="term"><code class="constant">SD_BUS_ERROR_FAILED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_FAILED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_FILE_EXISTS"><span class="term"><code class="constant">SD_BUS_ERROR_FILE_EXISTS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_FILE_EXISTS">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_FILE_NOT_FOUND"><span class="term"><code class="constant">SD_BUS_ERROR_FILE_NOT_FOUND</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_FILE_NOT_FOUND">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_INCONSISTENT_MESSAGE"><span class="term"><code class="constant">SD_BUS_ERROR_INCONSISTENT_MESSAGE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_INCONSISTENT_MESSAGE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_INVALID_ARGS"><span class="term"><code class="constant">SD_BUS_ERROR_INVALID_ARGS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_INVALID_ARGS">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_INVALID_SIGNATURE"><span class="term"><code class="constant">SD_BUS_ERROR_INVALID_SIGNATURE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_INVALID_SIGNATURE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_IO_ERROR"><span class="term"><code class="constant">SD_BUS_ERROR_IO_ERROR</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_IO_ERROR">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_LIMITS_EXCEEDED"><span class="term"><code class="constant">SD_BUS_ERROR_LIMITS_EXCEEDED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_LIMITS_EXCEEDED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_MAKE_CONST(name, message)"><span class="term"><code class="constant">SD_BUS_ERROR_MAKE_CONST(<em class="replaceable"><code>name</code></em>, <em class="replaceable"><code>message</code></em>)</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_MAKE_CONST(name,%20message)">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_MATCH_RULE_INVALID"><span class="term"><code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_MATCH_RULE_INVALID">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_MATCH_RULE_NOT_FOUND"><span class="term"><code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_MATCH_RULE_NOT_FOUND">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NAME_HAS_NO_OWNER"><span class="term"><code class="constant">SD_BUS_ERROR_NAME_HAS_NO_OWNER</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NAME_HAS_NO_OWNER">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NOT_SUPPORTED"><span class="term"><code class="constant">SD_BUS_ERROR_NOT_SUPPORTED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NOT_SUPPORTED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_MEMORY"><span class="term"><code class="constant">SD_BUS_ERROR_NO_MEMORY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_MEMORY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_NETWORK"><span class="term"><code class="constant">SD_BUS_ERROR_NO_NETWORK</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_NETWORK">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_REPLY"><span class="term"><code class="constant">SD_BUS_ERROR_NO_REPLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_REPLY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_SERVER"><span class="term"><code class="constant">SD_BUS_ERROR_NO_SERVER</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_SERVER">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NULL"><span class="term"><code class="constant">SD_BUS_ERROR_NULL</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NULL">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_PROPERTY_READ_ONLY"><span class="term"><code class="constant">SD_BUS_ERROR_PROPERTY_READ_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_PROPERTY_READ_ONLY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_SERVICE_UNKNOWN"><span class="term"><code class="constant">SD_BUS_ERROR_SERVICE_UNKNOWN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_SERVICE_UNKNOWN">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_TIMEOUT"><span class="term"><code class="constant">SD_BUS_ERROR_TIMEOUT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_TIMEOUT">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN"><span class="term"><code class="constant">SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_INTERFACE"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_INTERFACE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_INTERFACE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_METHOD"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_METHOD</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_METHOD">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_OBJECT"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_OBJECT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_OBJECT">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_PROPERTY"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_PROPERTY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_PROPERTY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_ARRAY"><span class="term"><code class="constant">SD_BUS_TYPE_ARRAY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_ARRAY">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_BOOLEAN"><span class="term"><code class="constant">SD_BUS_TYPE_BOOLEAN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_BOOLEAN">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_BYTE"><span class="term"><code class="constant">SD_BUS_TYPE_BYTE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_BYTE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_DICT_ENTRY_BEGIN"><span class="term"><code class="constant">SD_BUS_TYPE_DICT_ENTRY_BEGIN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_DICT_ENTRY_BEGIN">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_DICT_ENTRY_END"><span class="term"><code class="constant">SD_BUS_TYPE_DICT_ENTRY_END</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_DICT_ENTRY_END">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_DOUBLE"><span class="term"><code class="constant">SD_BUS_TYPE_DOUBLE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_DOUBLE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_INT16"><span class="term"><code class="constant">SD_BUS_TYPE_INT16</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_INT16">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_INT32"><span class="term"><code class="constant">SD_BUS_TYPE_INT32</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_INT32">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_INT64"><span class="term"><code class="constant">SD_BUS_TYPE_INT64</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_INT64">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_OBJECT_PATH"><span class="term"><code class="constant">SD_BUS_TYPE_OBJECT_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_OBJECT_PATH">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_SIGNATURE"><span class="term"><code class="constant">SD_BUS_TYPE_SIGNATURE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_SIGNATURE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_STRING"><span class="term"><code class="constant">SD_BUS_TYPE_STRING</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_STRING">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_STRUCT_BEGIN"><span class="term"><code class="constant">SD_BUS_TYPE_STRUCT_BEGIN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_STRUCT_BEGIN">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_STRUCT_END"><span class="term"><code class="constant">SD_BUS_TYPE_STRUCT_END</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_STRUCT_END">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UINT16"><span class="term"><code class="constant">SD_BUS_TYPE_UINT16</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UINT16">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UINT32"><span class="term"><code class="constant">SD_BUS_TYPE_UINT32</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UINT32">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UINT64"><span class="term"><code class="constant">SD_BUS_TYPE_UINT64</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UINT64">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UNIX_FD"><span class="term"><code class="constant">SD_BUS_TYPE_UNIX_FD</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UNIX_FD">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_VARIANT"><span class="term"><code class="constant">SD_BUS_TYPE_VARIANT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_VARIANT">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_APPEND"><span class="term"><code class="constant">SD_JOURNAL_APPEND</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_APPEND">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_CURRENT_USER"><span class="term"><code class="constant">SD_JOURNAL_CURRENT_USER</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_CURRENT_USER">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_INVALIDATE"><span class="term"><code class="constant">SD_JOURNAL_INVALIDATE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_INVALIDATE">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_LOCAL_ONLY"><span class="term"><code class="constant">SD_JOURNAL_LOCAL_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_LOCAL_ONLY">¶</a></dt><dd><p><a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a>, <a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_NOP"><span class="term"><code class="constant">SD_JOURNAL_NOP</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_NOP">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_RUNTIME_ONLY"><span class="term"><code class="constant">SD_JOURNAL_RUNTIME_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_RUNTIME_ONLY">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_SYSTEM"><span class="term"><code class="constant">SD_JOURNAL_SYSTEM</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_SYSTEM">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_SYSTEM_ONLY"><span class="term"><code class="constant">SD_JOURNAL_SYSTEM_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_SYSTEM_ONLY">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_WARNING"><span class="term"><code class="constant">SD_WARNING</code></span><a class="headerlink" title="Permalink to this term" href="#SD_WARNING">¶</a></dt><dd><p><a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="SIGABRT"><span class="term"><code class="constant">SIGABRT</code></span><a class="headerlink" title="Permalink to this term" href="#SIGABRT">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SIGHUP"><span class="term"><code class="constant">SIGHUP</code></span><a class="headerlink" title="Permalink to this term" href="#SIGHUP">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SIGINT"><span class="term"><code class="constant">SIGINT</code></span><a class="headerlink" title="Permalink to this term" href="#SIGINT">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="SIGKILL"><span class="term"><code class="constant">SIGKILL</code></span><a class="headerlink" title="Permalink to this term" href="#SIGKILL">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="SIGPIPE"><span class="term"><code class="constant">SIGPIPE</code></span><a class="headerlink" title="Permalink to this term" href="#SIGPIPE">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SIGPWR"><span class="term"><code class="constant">SIGPWR</code></span><a class="headerlink" title="Permalink to this term" href="#SIGPWR">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+0"><span class="term"><code class="constant">SIGRTMIN+0</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+0">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+1"><span class="term"><code class="constant">SIGRTMIN+1</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+1">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+13"><span class="term"><code class="constant">SIGRTMIN+13</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+13">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+14"><span class="term"><code class="constant">SIGRTMIN+14</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+14">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+15"><span class="term"><code class="constant">SIGRTMIN+15</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+15">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+16"><span class="term"><code class="constant">SIGRTMIN+16</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+16">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+2"><span class="term"><code class="constant">SIGRTMIN+2</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+2">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+20"><span class="term"><code class="constant">SIGRTMIN+20</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+20">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+21"><span class="term"><code class="constant">SIGRTMIN+21</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+21">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+22"><span class="term"><code class="constant">SIGRTMIN+22</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+22">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+23"><span class="term"><code class="constant">SIGRTMIN+23</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+23">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+24"><span class="term"><code class="constant">SIGRTMIN+24</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+24">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+26"><span class="term"><code class="constant">SIGRTMIN+26</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+26">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+27"><span class="term"><code class="constant">SIGRTMIN+27</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+27">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+28"><span class="term"><code class="constant">SIGRTMIN+28</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+28">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+29"><span class="term"><code class="constant">SIGRTMIN+29</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+29">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+3"><span class="term"><code class="constant">SIGRTMIN+3</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+3">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+4"><span class="term"><code class="constant">SIGRTMIN+4</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+4">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+5"><span class="term"><code class="constant">SIGRTMIN+5</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+5">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+6"><span class="term"><code class="constant">SIGRTMIN+6</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+6">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGSTOP"><span class="term"><code class="constant">SIGSTOP</code></span><a class="headerlink" title="Permalink to this term" href="#SIGSTOP">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="SIGSYS"><span class="term"><code class="constant">SIGSYS</code></span><a class="headerlink" title="Permalink to this term" href="#SIGSYS">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SIGTERM"><span class="term"><code class="constant">SIGTERM</code></span><a class="headerlink" title="Permalink to this term" href="#SIGTERM">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="SIGUSR1"><span class="term"><code class="constant">SIGUSR1</code></span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGUSR2"><span class="term"><code class="constant">SIGUSR2</code></span><a class="headerlink" title="Permalink to this term" href="#SIGUSR2">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGWINCH"><span class="term"><code class="constant">SIGWINCH</code></span><a class="headerlink" title="Permalink to this term" href="#SIGWINCH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIG_DFL"><span class="term"><code class="constant">SIG_DFL</code></span><a class="headerlink" title="Permalink to this term" href="#SIG_DFL">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a></p></dd><dt id="SOCK_DGRAM"><span class="term"><code class="constant">SOCK_DGRAM</code></span><a class="headerlink" title="Permalink to this term" href="#SOCK_DGRAM">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SOCK_SEQPACKET"><span class="term"><code class="constant">SOCK_SEQPACKET</code></span><a class="headerlink" title="Permalink to this term" href="#SOCK_SEQPACKET">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SOCK_STREAM"><span class="term"><code class="constant">SOCK_STREAM</code></span><a class="headerlink" title="Permalink to this term" href="#SOCK_STREAM">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="_SD_BUS_CREDS_ALL"><span class="term"><code class="constant">_SD_BUS_CREDS_ALL</code></span><a class="headerlink" title="Permalink to this term" href="#_SD_BUS_CREDS_ALL">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="all"><span class="term"><code class="constant">all</code></span><a class="headerlink" title="Permalink to this term" href="#all">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="application/event-stream"><span class="term"><code class="constant">application/event-stream</code></span><a class="headerlink" title="Permalink to this term" href="#application/event-stream">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="application/json"><span class="term"><code class="constant">application/json</code></span><a class="headerlink" title="Permalink to this term" href="#application/json">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="application/vnd.fdo.journal"><span class="term"><code class="constant">application/vnd.fdo.journal</code></span><a class="headerlink" title="Permalink to this term" href="#application/vnd.fdo.journal">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="arm"><span class="term"><code class="constant">arm</code></span><a class="headerlink" title="Permalink to this term" href="#arm">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="auto"><span class="term"><code class="constant">auto</code></span><a class="headerlink" title="Permalink to this term" href="#auto">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="early"><span class="term"><code class="constant">early</code></span><a class="headerlink" title="Permalink to this term" href="#early">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="false"><span class="term"><code class="constant">false</code></span><a class="headerlink" title="Permalink to this term" href="#false">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="late"><span class="term"><code class="constant">late</code></span><a class="headerlink" title="Permalink to this term" href="#late">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="libsystemd"><span class="term"><code class="constant">libsystemd</code></span><a class="headerlink" title="Permalink to this term" href="#libsystemd">¶</a></dt><dd><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>, <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>, <a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a>, <a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a>, <a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a>, <a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a>, <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a>, <a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>, <a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="sd_journal_add_match.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_match</span>(3)</span></a>, <a href="sd_journal_get_catalog.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog</span>(3)</span></a>, <a href="sd_journal_get_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cursor</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data</span>(3)</span></a>, <a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a>, <a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>, <a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>, <a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_query_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_query_unique</span>(3)</span></a>, <a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>, <a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>, <a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>, <a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a>, <a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>, <a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a>, <a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a></p></dd><dt id="libsystemd-bus"><span class="term"><code class="constant">libsystemd-bus</code></span><a class="headerlink" title="Permalink to this term" href="#libsystemd-bus">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="m"><span class="term"><code class="constant">m</code></span><a class="headerlink" title="Permalink to this term" href="#m">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="name"><span class="term"><code class="constant">name</code></span><a class="headerlink" title="Permalink to this term" href="#name">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="native"><span class="term"><code class="constant">native</code></span><a class="headerlink" title="Permalink to this term" href="#native">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="never"><span class="term"><code class="constant">never</code></span><a class="headerlink" title="Permalink to this term" href="#never">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="path"><span class="term"><code class="constant">path</code></span><a class="headerlink" title="Permalink to this term" href="#path">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="property"><span class="term"><code class="constant">property</code></span><a class="headerlink" title="Permalink to this term" href="#property">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="r"><span class="term"><code class="constant">r</code></span><a class="headerlink" title="Permalink to this term" href="#r">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="simple"><span class="term"><code class="constant">simple</code></span><a class="headerlink" title="Permalink to this term" href="#simple">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="symlink"><span class="term"><code class="constant">symlink</code></span><a class="headerlink" title="Permalink to this term" href="#symlink">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="text/plain"><span class="term"><code class="constant">text/plain</code></span><a class="headerlink" title="Permalink to this term" href="#text/plain">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="true"><span class="term"><code class="constant">true</code></span><a class="headerlink" title="Permalink to this term" href="#true">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="w"><span class="term"><code class="constant">w</code></span><a class="headerlink" title="Permalink to this term" href="#w">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="x32"><span class="term"><code class="constant">x32</code></span><a class="headerlink" title="Permalink to this term" href="#x32">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="x86"><span class="term"><code class="constant">x86</code></span><a class="headerlink" title="Permalink to this term" href="#x86">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="x86-64"><span class="term"><code class="constant">x86-64</code></span><a class="headerlink" title="Permalink to this term" href="#x86-64">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="~"><span class="term"><code class="constant">~</code></span><a class="headerlink" title="Permalink to this term" href="#~">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214185064544"></a><h2 id="Miscellaneous options and directives">Miscellaneous options and directives<a class="headerlink" title="Permalink to this headline" href="#Miscellaneous%20options%20and%20directives">¶</a></h2><p>Other configuration elements which don't fit in
- any of the above groups.</p><div class="variablelist"><a name="miscellaneous"></a><dl class="variablelist"><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_FDS">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="-EADDRINUSE"><span class="term"><code class="varname">-EADDRINUSE</code></span><a class="headerlink" title="Permalink to this term" href="#-EADDRINUSE">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-EALREADY"><span class="term"><code class="varname">-EALREADY</code></span><a class="headerlink" title="Permalink to this term" href="#-EALREADY">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-ECHILD"><span class="term"><code class="constant">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="-EEXIST"><span class="term"><code class="varname">-EEXIST</code></span><a class="headerlink" title="Permalink to this term" href="#-EEXIST">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a>, <a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p><a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a></p></dd><dt id="-ENODATA"><span class="term"><code class="constant">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a>, <a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a></p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a></p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a></p></dd><dt id="-ENOTCONN"><span class="term"><code class="varname">-ENOTCONN</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTCONN">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="-ENXIO"><span class="term"><code class="constant">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a></p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a></p></dd><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="ANSI_COLOR="><span class="term"><code class="varname">ANSI_COLOR=</code></span><a class="headerlink" title="Permalink to this term" href="#ANSI_COLOR=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="BUG_REPORT_URL="><span class="term"><code class="varname">BUG_REPORT_URL=</code></span><a class="headerlink" title="Permalink to this term" href="#BUG_REPORT_URL=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="BUILD_ID="><span class="term"><code class="varname">BUILD_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#BUILD_ID=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="C"><span class="term"><code class="varname">C</code></span><a class="headerlink" title="Permalink to this term" href="#C">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="CHASSIS="><span class="term"><code class="varname">CHASSIS=</code></span><a class="headerlink" title="Permalink to this term" href="#CHASSIS=">¶</a></dt><dd><p><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="CPE_NAME="><span class="term"><code class="varname">CPE_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#CPE_NAME=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="Compress="><span class="term"><code class="varname">Compress=</code></span><a class="headerlink" title="Permalink to this term" href="#Compress=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="D"><span class="term"><code class="varname">D</code></span><a class="headerlink" title="Permalink to this term" href="#D">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="F"><span class="term"><code class="varname">F</code></span><a class="headerlink" title="Permalink to this term" href="#F">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="FONT="><span class="term"><code class="varname">FONT=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="FONT_MAP="><span class="term"><code class="varname">FONT_MAP=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT_MAP=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="FONT_UNIMAP="><span class="term"><code class="varname">FONT_UNIMAP=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT_UNIMAP=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="ForwardToConsole="><span class="term"><code class="varname">ForwardToConsole=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToConsole=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="ForwardToKMsg="><span class="term"><code class="varname">ForwardToKMsg=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToKMsg=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="ForwardToSyslog="><span class="term"><code class="varname">ForwardToSyslog=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToSyslog=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="ForwardToWall="><span class="term"><code class="varname">ForwardToWall=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToWall=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="HOME_URL="><span class="term"><code class="varname">HOME_URL=</code></span><a class="headerlink" title="Permalink to this term" href="#HOME_URL=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="HandleHibernateKey="><span class="term"><code class="varname">HandleHibernateKey=</code></span><a class="headerlink" title="Permalink to this term" href="#HandleHibernateKey=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HandleLidSwitch="><span class="term"><code class="varname">HandleLidSwitch=</code></span><a class="headerlink" title="Permalink to this term" href="#HandleLidSwitch=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HandlePowerKey="><span class="term"><code class="varname">HandlePowerKey=</code></span><a class="headerlink" title="Permalink to this term" href="#HandlePowerKey=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HandleSuspendKey="><span class="term"><code class="varname">HandleSuspendKey=</code></span><a class="headerlink" title="Permalink to this term" href="#HandleSuspendKey=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HibernateKeyIgnoreInhibited="><span class="term"><code class="varname">HibernateKeyIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#HibernateKeyIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="ICON_NAME="><span class="term"><code class="varname">ICON_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#ICON_NAME=">¶</a></dt><dd><p><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="ID="><span class="term"><code class="varname">ID=</code></span><a class="headerlink" title="Permalink to this term" href="#ID=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="ID_LIKE="><span class="term"><code class="varname">ID_LIKE=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_LIKE=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="IdleAction="><span class="term"><code class="varname">IdleAction=</code></span><a class="headerlink" title="Permalink to this term" href="#IdleAction=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="IdleActionSec="><span class="term"><code class="varname">IdleActionSec=</code></span><a class="headerlink" title="Permalink to this term" href="#IdleActionSec=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="InhibitDelayMaxSec="><span class="term"><code class="varname">InhibitDelayMaxSec=</code></span><a class="headerlink" title="Permalink to this term" href="#InhibitDelayMaxSec=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="KEYMAP="><span class="term"><code class="varname">KEYMAP=</code></span><a class="headerlink" title="Permalink to this term" href="#KEYMAP=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="KEYMAP_TOGGLE="><span class="term"><code class="varname">KEYMAP_TOGGLE=</code></span><a class="headerlink" title="Permalink to this term" href="#KEYMAP_TOGGLE=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="KillExcludeUsers="><span class="term"><code class="varname">KillExcludeUsers=</code></span><a class="headerlink" title="Permalink to this term" href="#KillExcludeUsers=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="KillOnlyUsers="><span class="term"><code class="varname">KillOnlyUsers=</code></span><a class="headerlink" title="Permalink to this term" href="#KillOnlyUsers=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="KillUserProcesses="><span class="term"><code class="varname">KillUserProcesses=</code></span><a class="headerlink" title="Permalink to this term" href="#KillUserProcesses=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="L"><span class="term"><code class="varname">L</code></span><a class="headerlink" title="Permalink to this term" href="#L">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="LidSwitchIgnoreInhibited="><span class="term"><code class="varname">LidSwitchIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#LidSwitchIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="MaxFileSec="><span class="term"><code class="varname">MaxFileSec=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxFileSec=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelConsole="><span class="term"><code class="varname">MaxLevelConsole=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelConsole=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelKMsg="><span class="term"><code class="varname">MaxLevelKMsg=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelKMsg=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelStore="><span class="term"><code class="varname">MaxLevelStore=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelStore=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelSyslog="><span class="term"><code class="varname">MaxLevelSyslog=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelSyslog=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelWall="><span class="term"><code class="varname">MaxLevelWall=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelWall=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxRetentionSec="><span class="term"><code class="varname">MaxRetentionSec=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxRetentionSec=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="NAME="><span class="term"><code class="varname">NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#NAME=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="NAutoVTs="><span class="term"><code class="varname">NAutoVTs=</code></span><a class="headerlink" title="Permalink to this term" href="#NAutoVTs=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="PRETTY_HOSTNAME="><span class="term"><code class="varname">PRETTY_HOSTNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#PRETTY_HOSTNAME=">¶</a></dt><dd><p><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="PRETTY_NAME="><span class="term"><code class="varname">PRETTY_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#PRETTY_NAME=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="PowerKeyIgnoreInhibited="><span class="term"><code class="varname">PowerKeyIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#PowerKeyIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="R"><span class="term"><code class="varname">R</code></span><a class="headerlink" title="Permalink to this term" href="#R">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="RateLimitBurst="><span class="term"><code class="varname">RateLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#RateLimitBurst=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RateLimitInterval="><span class="term"><code class="varname">RateLimitInterval=</code></span><a class="headerlink" title="Permalink to this term" href="#RateLimitInterval=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RemoveIPC="><span class="term"><code class="varname">RemoveIPC=</code></span><a class="headerlink" title="Permalink to this term" href="#RemoveIPC=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="ReserveVT="><span class="term"><code class="varname">ReserveVT=</code></span><a class="headerlink" title="Permalink to this term" href="#ReserveVT=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="RuntimeDirectorySize="><span class="term"><code class="varname">RuntimeDirectorySize=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeDirectorySize=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="RuntimeKeepFree="><span class="term"><code class="varname">RuntimeKeepFree=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeKeepFree=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RuntimeMaxFileSize="><span class="term"><code class="varname">RuntimeMaxFileSize=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeMaxFileSize=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RuntimeMaxUse="><span class="term"><code class="varname">RuntimeMaxUse=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeMaxUse=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SD_BUS_NAME_ALLOW_REPLACEMENT"><span class="term"><code class="varname">SD_BUS_NAME_ALLOW_REPLACEMENT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_NAME_ALLOW_REPLACEMENT">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="SD_BUS_NAME_QUEUE"><span class="term"><code class="varname">SD_BUS_NAME_QUEUE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_NAME_QUEUE">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="SD_BUS_NAME_REPLACE_EXISTING"><span class="term"><code class="varname">SD_BUS_NAME_REPLACE_EXISTING</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_NAME_REPLACE_EXISTING">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="SUPPORT_URL="><span class="term"><code class="varname">SUPPORT_URL=</code></span><a class="headerlink" title="Permalink to this term" href="#SUPPORT_URL=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="Seal="><span class="term"><code class="varname">Seal=</code></span><a class="headerlink" title="Permalink to this term" href="#Seal=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SplitMode="><span class="term"><code class="varname">SplitMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SplitMode=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="Storage="><span class="term"><code class="varname">Storage=</code></span><a class="headerlink" title="Permalink to this term" href="#Storage=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SuspendKeyIgnoreInhibited="><span class="term"><code class="varname">SuspendKeyIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendKeyIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="SyncIntervalSec="><span class="term"><code class="varname">SyncIntervalSec=</code></span><a class="headerlink" title="Permalink to this term" href="#SyncIntervalSec=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SystemKeepFree="><span class="term"><code class="varname">SystemKeepFree=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemKeepFree=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SystemMaxFileSize="><span class="term"><code class="varname">SystemMaxFileSize=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemMaxFileSize=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SystemMaxUse="><span class="term"><code class="varname">SystemMaxUse=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemMaxUse=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="TTYPath="><span class="term"><code class="varname">TTYPath=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYPath=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="VERSION="><span class="term"><code class="varname">VERSION=</code></span><a class="headerlink" title="Permalink to this term" href="#VERSION=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="VERSION_ID="><span class="term"><code class="varname">VERSION_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#VERSION_ID=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="X"><span class="term"><code class="varname">X</code></span><a class="headerlink" title="Permalink to this term" href="#X">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="Z"><span class="term"><code class="varname">Z</code></span><a class="headerlink" title="Permalink to this term" href="#Z">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="b"><span class="term"><code class="varname">b</code></span><a class="headerlink" title="Permalink to this term" href="#b">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="c"><span class="term"><code class="varname">c</code></span><a class="headerlink" title="Permalink to this term" href="#c">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="d"><span class="term"><code class="varname">d</code></span><a class="headerlink" title="Permalink to this term" href="#d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="equivalent"><span class="term"><code class="varname">equivalent</code></span><a class="headerlink" title="Permalink to this term" href="#equivalent">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="extended"><span class="term"><code class="varname">extended</code></span><a class="headerlink" title="Permalink to this term" href="#extended">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="f"><span class="term"><code class="varname">f</code></span><a class="headerlink" title="Permalink to this term" href="#f">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="h"><span class="term"><code class="varname">h</code></span><a class="headerlink" title="Permalink to this term" href="#h">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="m"><span class="term"><code class="constant">m</code></span><a class="headerlink" title="Permalink to this term" href="#m">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="masked"><span class="term"><code class="varname">masked</code></span><a class="headerlink" title="Permalink to this term" href="#masked">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="min"><span class="term"><code class="varname">min</code></span><a class="headerlink" title="Permalink to this term" href="#min">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="ms"><span class="term"><code class="varname">ms</code></span><a class="headerlink" title="Permalink to this term" href="#ms">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="overridden"><span class="term"><code class="varname">overridden</code></span><a class="headerlink" title="Permalink to this term" href="#overridden">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="p"><span class="term"><code class="varname">p</code></span><a class="headerlink" title="Permalink to this term" href="#p">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="r"><span class="term"><code class="constant">r</code></span><a class="headerlink" title="Permalink to this term" href="#r">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="redirected"><span class="term"><code class="varname">redirected</code></span><a class="headerlink" title="Permalink to this term" href="#redirected">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="s"><span class="term"><code class="varname">s</code></span><a class="headerlink" title="Permalink to this term" href="#s">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="udev_log"><span class="term"><code class="varname">udev_log</code></span><a class="headerlink" title="Permalink to this term" href="#udev_log">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="unchanged"><span class="term"><code class="varname">unchanged</code></span><a class="headerlink" title="Permalink to this term" href="#unchanged">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="us"><span class="term"><code class="varname">us</code></span><a class="headerlink" title="Permalink to this term" href="#us">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="w"><span class="term"><code class="constant">w</code></span><a class="headerlink" title="Permalink to this term" href="#w">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="x"><span class="term"><code class="varname">x</code></span><a class="headerlink" title="Permalink to this term" href="#x">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="z"><span class="term"><code class="varname">z</code></span><a class="headerlink" title="Permalink to this term" href="#z">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214184851568"></a><h2 id="Files and directories">Files and directories<a class="headerlink" title="Permalink to this headline" href="#Files%20and%20directories">¶</a></h2><p>Paths and file names referred to in the
- documentation.</p><div class="variablelist"><a name="filenames"></a><dl class="variablelist"><dt id="/"><span class="term"><code class="filename">/</code></span><a class="headerlink" title="Permalink to this term" href="#/">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="$HOME/.config/systemd/user/"><span class="term"><code class="filename">$HOME/.config/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#%24HOME/.config/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="$XDG_CONFIG_HOME/systemd/user/"><span class="term"><code class="filename">$XDG_CONFIG_HOME/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_CONFIG_HOME/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="-.slice"><span class="term"><code class="filename">-.slice</code></span><a class="headerlink" title="Permalink to this term" href="#-.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="/.readahead"><span class="term"><code class="filename">/.readahead</code></span><a class="headerlink" title="Permalink to this term" href="#/.readahead">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="/bin"><span class="term"><code class="filename">/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/bin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/bin/ls"><span class="term"><code class="filename">/bin/ls</code></span><a class="headerlink" title="Permalink to this term" href="#/bin/ls">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="/boot"><span class="term"><code class="filename">/boot</code></span><a class="headerlink" title="Permalink to this term" href="#/boot">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/boot/loader/entries/MACHINE-ID-KERNEL-VERSION.conf"><span class="term"><code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/boot/loader/entries/MACHINE-ID-KERNEL-VERSION.conf">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/dev"><span class="term"><code class="filename">/dev</code></span><a class="headerlink" title="Permalink to this term" href="#/dev">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/dev/console"><span class="term"><code class="filename">/dev/console</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/console">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/dev/full"><span class="term"><code class="filename">/dev/full</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/full">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/hw_random"><span class="term"><code class="filename">/dev/hw_random</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/hw_random">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="/dev/initctl"><span class="term"><code class="filename">/dev/initctl</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/initctl">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="/dev/mapper/"><span class="term"><code class="filename">/dev/mapper/</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/mapper/">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="/dev/mapper/home"><span class="term"><code class="filename">/dev/mapper/home</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/mapper/home">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/dev/mapper/srv"><span class="term"><code class="filename">/dev/mapper/srv</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/mapper/srv">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/dev/null"><span class="term"><code class="filename">/dev/null</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/null">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/dev/random"><span class="term"><code class="filename">/dev/random</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/random">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/sda"><span class="term"><code class="filename">/dev/sda</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/sda">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/dev/sda5"><span class="term"><code class="filename">/dev/sda5</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/sda5">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/urandom"><span class="term"><code class="filename">/dev/urandom</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/urandom">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/watchdog"><span class="term"><code class="filename">/dev/watchdog</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/watchdog">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="/dev/zero"><span class="term"><code class="filename">/dev/zero</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/zero">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/etc/"><span class="term"><code class="filename">/etc/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/etc/adjtime"><span class="term"><code class="filename">/etc/adjtime</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/adjtime">¶</a></dt><dd><p><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="/etc/binfmt.d/"><span class="term"><code class="filename">/etc/binfmt.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/binfmt.d/">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/etc/binfmt.d/*.conf"><span class="term"><code class="filename">/etc/binfmt.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/binfmt.d/*.conf">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/etc/crypttab"><span class="term"><code class="filename">/etc/crypttab</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/crypttab">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>, <a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/etc/fstab"><span class="term"><code class="filename">/etc/fstab</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/fstab">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>, <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>, <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="/etc/hostname"><span class="term"><code class="filename">/etc/hostname</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/hostname">¶</a></dt><dd><p><a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="/etc/hosts"><span class="term"><code class="filename">/etc/hosts</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/hosts">¶</a></dt><dd><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a></p></dd><dt id="/etc/kernel/cmdline"><span class="term"><code class="filename">/etc/kernel/cmdline</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/kernel/cmdline">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/etc/kernel/install.d/"><span class="term"><code class="filename">/etc/kernel/install.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/kernel/install.d/">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/etc/kernel/install.d/*.install"><span class="term"><code class="filename">/etc/kernel/install.d/*.install</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/kernel/install.d/*.install">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/etc/locale.conf"><span class="term"><code class="filename">/etc/locale.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/locale.conf">¶</a></dt><dd><p><a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/etc/localtime"><span class="term"><code class="filename">/etc/localtime</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/localtime">¶</a></dt><dd><p><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="/etc/machine-id"><span class="term"><code class="filename">/etc/machine-id</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/machine-id">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/etc/machine-info"><span class="term"><code class="filename">/etc/machine-info</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/machine-info">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="/etc/modules-load.d/program.conf"><span class="term"><code class="filename">/etc/modules-load.d/<em class="replaceable"><code>program</code></em>.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/modules-load.d/program.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/etc/modules-load.d/*.conf"><span class="term"><code class="filename">/etc/modules-load.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/modules-load.d/*.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/etc/nsswitch.conf"><span class="term"><code class="filename">/etc/nsswitch.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/nsswitch.conf">¶</a></dt><dd><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a></p></dd><dt id="/etc/os-release"><span class="term"><code class="filename">/etc/os-release</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/os-release">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/etc/resolv.conf"><span class="term"><code class="filename">/etc/resolv.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/resolv.conf">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="/etc/sysctl.d/"><span class="term"><code class="filename">/etc/sysctl.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/sysctl.d/">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/sysctl.d/*.conf"><span class="term"><code class="filename">/etc/sysctl.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/sysctl.d/*.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/systemd/bootchart.conf"><span class="term"><code class="filename">/etc/systemd/bootchart.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/bootchart.conf">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/etc/systemd/logind.conf"><span class="term"><code class="filename">/etc/systemd/logind.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/logind.conf">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/network"><span class="term"><code class="filename">/etc/systemd/network</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/network">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="/etc/systemd/resolved.conf"><span class="term"><code class="filename">/etc/systemd/resolved.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/resolved.conf">¶</a></dt><dd><p><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/sleep.conf"><span class="term"><code class="filename">/etc/systemd/sleep.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/sleep.conf">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/etc/systemd/system/"><span class="term"><code class="filename">/etc/systemd/system/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/etc/systemd/system-preset/"><span class="term"><code class="filename">/etc/systemd/system-preset/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system-preset/">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/system-preset/*.preset"><span class="term"><code class="filename">/etc/systemd/system-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/system-preset/00-lennart.preset"><span class="term"><code class="filename">/etc/systemd/system-preset/00-lennart.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system-preset/00-lennart.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/system.conf"><span class="term"><code class="filename">/etc/systemd/system.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system.conf">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/user/"><span class="term"><code class="filename">/etc/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/etc/systemd/user-preset/*.preset"><span class="term"><code class="filename">/etc/systemd/user-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/user-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/user.conf"><span class="term"><code class="filename">/etc/systemd/user.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/user.conf">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="/etc/tmpfiles.d"><span class="term"><code class="filename">/etc/tmpfiles.d</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/tmpfiles.d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/etc/tmpfiles.d/*.conf"><span class="term"><code class="filename">/etc/tmpfiles.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/tmpfiles.d/*.conf">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/etc/udev/hwdb.bin"><span class="term"><code class="filename">/etc/udev/hwdb.bin</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/hwdb.bin">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="/etc/udev/hwdb.d"><span class="term"><code class="filename">/etc/udev/hwdb.d</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/hwdb.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/etc/udev/rules.d"><span class="term"><code class="filename">/etc/udev/rules.d</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/rules.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/etc/udev/udev.conf"><span class="term"><code class="filename">/etc/udev/udev.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/udev.conf">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="/etc/vconsole.conf"><span class="term"><code class="filename">/etc/vconsole.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/vconsole.conf">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="/home"><span class="term"><code class="filename">/home</code></span><a class="headerlink" title="Permalink to this term" href="#/home">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/home/lennart"><span class="term"><code class="filename">/home/lennart</code></span><a class="headerlink" title="Permalink to this term" href="#/home/lennart">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a></p></dd><dt id="/lib"><span class="term"><code class="filename">/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/lib">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="/proc"><span class="term"><code class="filename">/proc</code></span><a class="headerlink" title="Permalink to this term" href="#/proc">¶</a></dt><dd><p><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/proc/cmdline"><span class="term"><code class="filename">/proc/cmdline</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/cmdline">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/proc/devices"><span class="term"><code class="filename">/proc/devices</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/devices">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/proc/self/fd"><span class="term"><code class="filename">/proc/self/fd</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/self/fd">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a></p></dd><dt id="/proc/self/mountinfo"><span class="term"><code class="filename">/proc/self/mountinfo</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/self/mountinfo">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="/proc/self/sessionid"><span class="term"><code class="filename">/proc/self/sessionid</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/self/sessionid">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="/proc/sys"><span class="term"><code class="filename">/proc/sys</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/proc/sys/kernel/domainname"><span class="term"><code class="filename">/proc/sys/kernel/domainname</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/kernel/domainname">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/proc/sys/kernel/random/boot_id"><span class="term"><code class="filename">/proc/sys/kernel/random/boot_id</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/kernel/random/boot_id">¶</a></dt><dd><p><a href="sd_id128_get_machine.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_machine</span>(3)</span></a></p></dd><dt id="/proc/sys/net/ipv4/conf/enp3s0.200/forwarding"><span class="term"><code class="filename">/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/net/ipv4/conf/enp3s0.200/forwarding">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/proc/sys/net/ipv4/tcp_keepalive_time"><span class="term"><code class="filename">/proc/sys/net/ipv4/tcp_keepalive_time</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/net/ipv4/tcp_keepalive_time">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="/proc/sys/net/ipv6/bindv6only"><span class="term"><code class="filename">/proc/sys/net/ipv6/bindv6only</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/net/ipv6/bindv6only">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="/run/"><span class="term"><code class="filename">/run/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/binfmt.d/*.conf"><span class="term"><code class="filename">/run/binfmt.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/binfmt.d/*.conf">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/run/foobar.pid"><span class="term"><code class="filename">/run/foobar.pid</code></span><a class="headerlink" title="Permalink to this term" href="#/run/foobar.pid">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a></p></dd><dt id="/run/log"><span class="term"><code class="filename">/run/log</code></span><a class="headerlink" title="Permalink to this term" href="#/run/log">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="/run/log/journal"><span class="term"><code class="filename">/run/log/journal</code></span><a class="headerlink" title="Permalink to this term" href="#/run/log/journal">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/run/modules-load.d/*.conf"><span class="term"><code class="filename">/run/modules-load.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/modules-load.d/*.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/run/nologin"><span class="term"><code class="filename">/run/nologin</code></span><a class="headerlink" title="Permalink to this term" href="#/run/nologin">¶</a></dt><dd><p><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a></p></dd><dt id="/run/sysctl.d/*.conf"><span class="term"><code class="filename">/run/sysctl.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/sysctl.d/*.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/run/systemd/journal/syslog"><span class="term"><code class="filename">/run/systemd/journal/syslog</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/journal/syslog">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/run/systemd/network"><span class="term"><code class="filename">/run/systemd/network</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/network">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="/run/systemd/notify"><span class="term"><code class="filename">/run/systemd/notify</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/notify">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/run/systemd/private"><span class="term"><code class="filename">/run/systemd/private</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/private">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/run/systemd/readahead/"><span class="term"><code class="filename">/run/systemd/readahead/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/readahead/">¶</a></dt><dd><p><a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a></p></dd><dt id="/run/systemd/resolve/resolv.conf"><span class="term"><code class="filename">/run/systemd/resolve/resolv.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/resolve/resolv.conf">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="/run/systemd/shutdownd"><span class="term"><code class="filename">/run/systemd/shutdownd</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/shutdownd">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/run/systemd/system/"><span class="term"><code class="filename">/run/systemd/system/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/system/">¶</a></dt><dd><p><a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/run/systemd/system-preset/*.preset"><span class="term"><code class="filename">/run/systemd/system-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/system-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/run/systemd/user/"><span class="term"><code class="filename">/run/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/run/systemd/user-preset/*.preset"><span class="term"><code class="filename">/run/systemd/user-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/user-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/run/tmpfiles.d"><span class="term"><code class="filename">/run/tmpfiles.d</code></span><a class="headerlink" title="Permalink to this term" href="#/run/tmpfiles.d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/run/tmpfiles.d/*.conf"><span class="term"><code class="filename">/run/tmpfiles.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/tmpfiles.d/*.conf">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/run/udev/hwdb.d"><span class="term"><code class="filename">/run/udev/hwdb.d</code></span><a class="headerlink" title="Permalink to this term" href="#/run/udev/hwdb.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/udev/rules.d"><span class="term"><code class="filename">/run/udev/rules.d</code></span><a class="headerlink" title="Permalink to this term" href="#/run/udev/rules.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/udev/static_node-tags/tag"><span class="term"><code class="filename">/run/udev/static_node-tags/<em class="replaceable"><code>tag</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/run/udev/static_node-tags/tag">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/user"><span class="term"><code class="filename">/run/user</code></span><a class="headerlink" title="Permalink to this term" href="#/run/user">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/run/user/$USER"><span class="term"><code class="filename">/run/user/$USER</code></span><a class="headerlink" title="Permalink to this term" href="#/run/user/%24USER">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="/sbin"><span class="term"><code class="filename">/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/sbin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/sbin/init"><span class="term"><code class="filename">/sbin/init</code></span><a class="headerlink" title="Permalink to this term" href="#/sbin/init">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="/srv"><span class="term"><code class="filename">/srv</code></span><a class="headerlink" title="Permalink to this term" href="#/srv">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/sys"><span class="term"><code class="filename">/sys</code></span><a class="headerlink" title="Permalink to this term" href="#/sys">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="/sys/fs/cgroup"><span class="term"><code class="filename">/sys/fs/cgroup</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/fs/cgroup">¶</a></dt><dd><p><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="/sys/fs/cgroup/systemd/"><span class="term"><code class="filename">/sys/fs/cgroup/systemd/</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/fs/cgroup/systemd/">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/sys/fs/selinux"><span class="term"><code class="filename">/sys/fs/selinux</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/fs/selinux">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/sys/power/disk"><span class="term"><code class="filename">/sys/power/disk</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/power/disk">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="/sys/power/state"><span class="term"><code class="filename">/sys/power/state</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/power/state">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/sysroot"><span class="term"><code class="filename">/sysroot</code></span><a class="headerlink" title="Permalink to this term" href="#/sysroot">¶</a></dt><dd><p><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a></p></dd><dt id="/sysroot/etc/fstab"><span class="term"><code class="filename">/sysroot/etc/fstab</code></span><a class="headerlink" title="Permalink to this term" href="#/sysroot/etc/fstab">¶</a></dt><dd><p><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a></p></dd><dt id="/system-update"><span class="term"><code class="filename">/system-update</code></span><a class="headerlink" title="Permalink to this term" href="#/system-update">¶</a></dt><dd><p><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="/tmp"><span class="term"><code class="filename">/tmp</code></span><a class="headerlink" title="Permalink to this term" href="#/tmp">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/tmp/var"><span class="term"><code class="filename">/tmp/var</code></span><a class="headerlink" title="Permalink to this term" href="#/tmp/var">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/upload"><span class="term"><code class="filename">/upload</code></span><a class="headerlink" title="Permalink to this term" href="#/upload">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="/usr"><span class="term"><code class="filename">/usr</code></span><a class="headerlink" title="Permalink to this term" href="#/usr">¶</a></dt><dd><p><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="/usr/bin"><span class="term"><code class="filename">/usr/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/bin/mount"><span class="term"><code class="filename">/usr/bin/mount</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin/mount">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="/usr/bin/umount"><span class="term"><code class="filename">/usr/bin/umount</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin/umount">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="/usr/lib/"><span class="term"><code class="filename">/usr/lib/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib/binfmt.d/*.conf"><span class="term"><code class="filename">/usr/lib/binfmt.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/binfmt.d/*.conf">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/usr/lib/kernel/install.d/"><span class="term"><code class="filename">/usr/lib/kernel/install.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/kernel/install.d/">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/usr/lib/kernel/install.d/*.install"><span class="term"><code class="filename">/usr/lib/kernel/install.d/*.install</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/kernel/install.d/*.install">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/usr/lib/modules-load.d/*.conf"><span class="term"><code class="filename">/usr/lib/modules-load.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/modules-load.d/*.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/usr/lib/sysctl.d/*.conf"><span class="term"><code class="filename">/usr/lib/sysctl.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/sysctl.d/*.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/network"><span class="term"><code class="filename">/usr/lib/systemd/network</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/network">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system"><span class="term"><code class="filename">/usr/lib/systemd/system</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-cryptsetup-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-cryptsetup-generator">¶</a></dt><dd><p><a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-efi-boot-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-efi-boot-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-efi-boot-generator">¶</a></dt><dd><p><a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-fstab-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-fstab-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-fstab-generator">¶</a></dt><dd><p><a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-getty-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-getty-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-getty-generator">¶</a></dt><dd><p><a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-gpt-auto-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-gpt-auto-generator">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-system-update-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-system-update-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-system-update-generator">¶</a></dt><dd><p><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-preset/*.preset"><span class="term"><code class="filename">/usr/lib/systemd/system-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-preset/50-gnome.preset"><span class="term"><code class="filename">/usr/lib/systemd/system-preset/50-gnome.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-preset/50-gnome.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-preset/99-default.preset"><span class="term"><code class="filename">/usr/lib/systemd/system-preset/99-default.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-preset/99-default.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-shutdown/"><span class="term"><code class="filename">/usr/lib/systemd/system-shutdown/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-shutdown/">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-sleep/"><span class="term"><code class="filename">/usr/lib/systemd/system-sleep/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-sleep/">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-activate"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-activate</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-activate">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-backlight"><span class="term"><code class="filename">/usr/lib/systemd/systemd-backlight</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-backlight">¶</a></dt><dd><p><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-binfmt"><span class="term"><code class="filename">/usr/lib/systemd/systemd-binfmt</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-binfmt">¶</a></dt><dd><p><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-bootchart"><span class="term"><code class="filename">/usr/lib/systemd/systemd-bootchart</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-bootchart">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-bus-proxyd"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-bus-proxyd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-bus-proxyd">¶</a></dt><dd><p><a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-cryptsetup"><span class="term"><code class="filename">/usr/lib/systemd/systemd-cryptsetup</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-cryptsetup">¶</a></dt><dd><p><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-fsck"><span class="term"><code class="filename">/usr/lib/systemd/systemd-fsck</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-fsck">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-hostnamed"><span class="term"><code class="filename">/usr/lib/systemd/systemd-hostnamed</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-hostnamed">¶</a></dt><dd><p><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-initctl"><span class="term"><code class="filename">/usr/lib/systemd/systemd-initctl</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-initctl">¶</a></dt><dd><p><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-journal-gatewayd"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-journal-gatewayd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-journal-gatewayd">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-journald"><span class="term"><code class="filename">/usr/lib/systemd/systemd-journald</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-journald">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-localed"><span class="term"><code class="filename">/usr/lib/systemd/systemd-localed</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-localed">¶</a></dt><dd><p><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-logind"><span class="term"><code class="filename">/usr/lib/systemd/systemd-logind</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-logind">¶</a></dt><dd><p><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-machined"><span class="term"><code class="filename">/usr/lib/systemd/systemd-machined</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-machined">¶</a></dt><dd><p><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-modules-load"><span class="term"><code class="filename">/usr/lib/systemd/systemd-modules-load</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-modules-load">¶</a></dt><dd><p><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-networkd"><span class="term"><code class="filename">/usr/lib/systemd/systemd-networkd</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-networkd">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-networkd-wait-online"><span class="term"><code class="filename">/usr/lib/systemd/systemd-networkd-wait-online</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-networkd-wait-online">¶</a></dt><dd><p><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-quotacheck"><span class="term"><code class="filename">/usr/lib/systemd/systemd-quotacheck</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-quotacheck">¶</a></dt><dd><p><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-random-seed"><span class="term"><code class="filename">/usr/lib/systemd/systemd-random-seed</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-random-seed">¶</a></dt><dd><p><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-readahead/systemd-readahead"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-readahead/systemd-readahead</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-readahead/systemd-readahead">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-remount-fs"><span class="term"><code class="filename">/usr/lib/systemd/systemd-remount-fs</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-remount-fs">¶</a></dt><dd><p><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-resolved"><span class="term"><code class="filename">/usr/lib/systemd/systemd-resolved</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-resolved">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-rfkill"><span class="term"><code class="filename">/usr/lib/systemd/systemd-rfkill</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-rfkill">¶</a></dt><dd><p><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-shutdown"><span class="term"><code class="filename">/usr/lib/systemd/systemd-shutdown</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-shutdown">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-shutdownd"><span class="term"><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-shutdownd">¶</a></dt><dd><p><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-sleep"><span class="term"><code class="filename">/usr/lib/systemd/systemd-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-sleep">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-sysctl"><span class="term"><code class="filename">/usr/lib/systemd/systemd-sysctl</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-sysctl">¶</a></dt><dd><p><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-timedated"><span class="term"><code class="filename">/usr/lib/systemd/systemd-timedated</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-timedated">¶</a></dt><dd><p><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-timesyncd"><span class="term"><code class="filename">/usr/lib/systemd/systemd-timesyncd</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-timesyncd">¶</a></dt><dd><p><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-udevd"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-udevd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-udevd">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-update-utmp"><span class="term"><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-update-utmp">¶</a></dt><dd><p><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-user-sessions"><span class="term"><code class="filename">/usr/lib/systemd/systemd-user-sessions</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-user-sessions">¶</a></dt><dd><p><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-vconsole-setup"><span class="term"><code class="filename">/usr/lib/systemd/systemd-vconsole-setup</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-vconsole-setup">¶</a></dt><dd><p><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/user/"><span class="term"><code class="filename">/usr/lib/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/user-preset/*.preset"><span class="term"><code class="filename">/usr/lib/systemd/user-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/user-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/tmpfiles.d"><span class="term"><code class="filename">/usr/lib/tmpfiles.d</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/tmpfiles.d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/usr/lib/tmpfiles.d/*.conf"><span class="term"><code class="filename">/usr/lib/tmpfiles.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/tmpfiles.d/*.conf">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/usr/lib/udev"><span class="term"><code class="filename">/usr/lib/udev</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/udev">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib/udev/hwdb.d"><span class="term"><code class="filename">/usr/lib/udev/hwdb.d</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/udev/hwdb.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib/udev/rules.d"><span class="term"><code class="filename">/usr/lib/udev/rules.d</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/udev/rules.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/local/bin"><span class="term"><code class="filename">/usr/local/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/local/bin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/local/lib/systemd/system"><span class="term"><code class="filename">/usr/local/lib/systemd/system</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/local/lib/systemd/system">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/usr/local/sbin"><span class="term"><code class="filename">/usr/local/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/local/sbin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/sbin"><span class="term"><code class="filename">/usr/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/sbin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/share/zoneinfo/"><span class="term"><code class="filename">/usr/share/zoneinfo/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/zoneinfo/">¶</a></dt><dd><p><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a></p></dd><dt id="/var"><span class="term"><code class="filename">/var</code></span><a class="headerlink" title="Permalink to this term" href="#/var">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/var/lib/dbus/machine-id"><span class="term"><code class="filename">/var/lib/dbus/machine-id</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/dbus/machine-id">¶</a></dt><dd><p><a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a></p></dd><dt id="/var/lib/systemd/backlight/"><span class="term"><code class="filename">/var/lib/systemd/backlight/</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/backlight/">¶</a></dt><dd><p><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a></p></dd><dt id="/var/lib/systemd/random-seed"><span class="term"><code class="filename">/var/lib/systemd/random-seed</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/random-seed">¶</a></dt><dd><p><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a></p></dd><dt id="/var/lib/systemd/rfkill/"><span class="term"><code class="filename">/var/lib/systemd/rfkill/</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/rfkill/">¶</a></dt><dd><p><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="/var/log/journal"><span class="term"><code class="filename">/var/log/journal</code></span><a class="headerlink" title="Permalink to this term" href="#/var/log/journal">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/var/log/journal/some.host/remote-some~host.journal"><span class="term"><code class="filename">/var/log/journal/some.host/remote-some~host.journal</code></span><a class="headerlink" title="Permalink to this term" href="#/var/log/journal/some.host/remote-some~host.journal">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="/var/run"><span class="term"><code class="filename">/var/run</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/var/run/dbus/system_bus_socket"><span class="term"><code class="filename">/var/run/dbus/system_bus_socket</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run/dbus/system_bus_socket">¶</a></dt><dd><p><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a></p></dd><dt id="/var/run/utmp"><span class="term"><code class="filename">/var/run/utmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run/utmp">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="/var/tmp"><span class="term"><code class="filename">/var/tmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/tmp">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="automount.automount"><span class="term"><code class="filename"><em class="replaceable"><code>automount</code></em>.automount</code></span><a class="headerlink" title="Permalink to this term" href="#automount.automount">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="basic.target"><span class="term"><code class="filename">basic.target</code></span><a class="headerlink" title="Permalink to this term" href="#basic.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="bluetooth.target"><span class="term"><code class="filename">bluetooth.target</code></span><a class="headerlink" title="Permalink to this term" href="#bluetooth.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="bootctl"><span class="term"><span class="command"><strong>bootctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#bootctl">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a></p></dd><dt id="busctl"><span class="term"><span class="command"><strong>busctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#busctl">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="cryptsetup.target"><span class="term"><code class="filename">cryptsetup.target</code></span><a class="headerlink" title="Permalink to this term" href="#cryptsetup.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="ctrl-alt-del.target"><span class="term"><code class="filename">ctrl-alt-del.target</code></span><a class="headerlink" title="Permalink to this term" href="#ctrl-alt-del.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="dbus.service"><span class="term"><code class="filename">dbus.service</code></span><a class="headerlink" title="Permalink to this term" href="#dbus.service">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="dbus.socket"><span class="term"><code class="filename">dbus.socket</code></span><a class="headerlink" title="Permalink to this term" href="#dbus.socket">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="default.target"><span class="term"><code class="filename">default.target</code></span><a class="headerlink" title="Permalink to this term" href="#default.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="device.device"><span class="term"><code class="filename"><em class="replaceable"><code>device</code></em>.device</code></span><a class="headerlink" title="Permalink to this term" href="#device.device">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="display-manager.service"><span class="term"><code class="filename">display-manager.service</code></span><a class="headerlink" title="Permalink to this term" href="#display-manager.service">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="emergency.target"><span class="term"><code class="filename">emergency.target</code></span><a class="headerlink" title="Permalink to this term" href="#emergency.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="exit.target"><span class="term"><code class="filename">exit.target</code></span><a class="headerlink" title="Permalink to this term" href="#exit.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="final.target"><span class="term"><code class="filename">final.target</code></span><a class="headerlink" title="Permalink to this term" href="#final.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="getty.target"><span class="term"><code class="filename">getty.target</code></span><a class="headerlink" title="Permalink to this term" href="#getty.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="graphical.target"><span class="term"><code class="filename">graphical.target</code></span><a class="headerlink" title="Permalink to this term" href="#graphical.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="halt"><span class="term"><span class="command"><strong>halt</strong></span></span><a class="headerlink" title="Permalink to this term" href="#halt">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="halt.target"><span class="term"><code class="filename">halt.target</code></span><a class="headerlink" title="Permalink to this term" href="#halt.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="hibernate.target"><span class="term"><code class="filename">hibernate.target</code></span><a class="headerlink" title="Permalink to this term" href="#hibernate.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="hostnamectl"><span class="term"><span class="command"><strong>hostnamectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#hostnamectl">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="hybrid-sleep.target"><span class="term"><code class="filename">hybrid-sleep.target</code></span><a class="headerlink" title="Permalink to this term" href="#hybrid-sleep.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="init"><span class="term"><span class="command"><strong>init</strong></span></span><a class="headerlink" title="Permalink to this term" href="#init">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="initrd-fs.target"><span class="term"><code class="filename">initrd-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#initrd-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="initrd-root-fs.target"><span class="term"><code class="filename">initrd-root-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#initrd-root-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="journalctl"><span class="term"><span class="command"><strong>journalctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#journalctl">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="kbrequest.target"><span class="term"><code class="filename">kbrequest.target</code></span><a class="headerlink" title="Permalink to this term" href="#kbrequest.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="kernel-install"><span class="term"><span class="command"><strong>kernel-install</strong></span></span><a class="headerlink" title="Permalink to this term" href="#kernel-install">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="kexec.target"><span class="term"><code class="filename">kexec.target</code></span><a class="headerlink" title="Permalink to this term" href="#kexec.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="link.link"><span class="term"><code class="filename"><em class="replaceable"><code>link</code></em>.link</code></span><a class="headerlink" title="Permalink to this term" href="#link.link">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="local-fs-pre.target"><span class="term"><code class="filename">local-fs-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#local-fs-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="local-fs.target"><span class="term"><code class="filename">local-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#local-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="localectl"><span class="term"><span class="command"><strong>localectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#localectl">¶</a></dt><dd><p><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a></p></dd><dt id="loginctl"><span class="term"><span class="command"><strong>loginctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#loginctl">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a></p></dd><dt id="machine.slice"><span class="term"><code class="filename">machine.slice</code></span><a class="headerlink" title="Permalink to this term" href="#machine.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="machinectl"><span class="term"><span class="command"><strong>machinectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#machinectl">¶</a></dt><dd><p><a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a></p></dd><dt id="mount.mount"><span class="term"><code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code></span><a class="headerlink" title="Permalink to this term" href="#mount.mount">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="multi-user.target"><span class="term"><code class="filename">multi-user.target</code></span><a class="headerlink" title="Permalink to this term" href="#multi-user.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="netdev.netdev"><span class="term"><code class="filename"><em class="replaceable"><code>netdev</code></em>.netdev</code></span><a class="headerlink" title="Permalink to this term" href="#netdev.netdev">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="network.network"><span class="term"><code class="filename"><em class="replaceable"><code>network</code></em>.network</code></span><a class="headerlink" title="Permalink to this term" href="#network.network">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="network-online.target"><span class="term"><code class="filename">network-online.target</code></span><a class="headerlink" title="Permalink to this term" href="#network-online.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="network-pre.target"><span class="term"><code class="filename">network-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#network-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="network.target"><span class="term"><code class="filename">network.target</code></span><a class="headerlink" title="Permalink to this term" href="#network.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="nss-lookup.target"><span class="term"><code class="filename">nss-lookup.target</code></span><a class="headerlink" title="Permalink to this term" href="#nss-lookup.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="nss-myhostname.la"><span class="term"><code class="filename">nss-myhostname.la</code></span><a class="headerlink" title="Permalink to this term" href="#nss-myhostname.la">¶</a></dt><dd><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a></p></dd><dt id="nss-user-lookup.target"><span class="term"><code class="filename">nss-user-lookup.target</code></span><a class="headerlink" title="Permalink to this term" href="#nss-user-lookup.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="pam_systemd.so"><span class="term"><code class="filename">pam_systemd.so</code></span><a class="headerlink" title="Permalink to this term" href="#pam_systemd.so">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="path.path"><span class="term"><code class="filename"><em class="replaceable"><code>path</code></em>.path</code></span><a class="headerlink" title="Permalink to this term" href="#path.path">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="paths.target"><span class="term"><code class="filename">paths.target</code></span><a class="headerlink" title="Permalink to this term" href="#paths.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="pkg-config"><span class="term"><span class="command"><strong>pkg-config</strong></span></span><a class="headerlink" title="Permalink to this term" href="#pkg-config">¶</a></dt><dd><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>, <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>, <a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a></p></dd><dt id="poweroff"><span class="term"><span class="command"><strong>poweroff</strong></span></span><a class="headerlink" title="Permalink to this term" href="#poweroff">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="poweroff.target"><span class="term"><code class="filename">poweroff.target</code></span><a class="headerlink" title="Permalink to this term" href="#poweroff.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="printer.target"><span class="term"><code class="filename">printer.target</code></span><a class="headerlink" title="Permalink to this term" href="#printer.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="reboot"><span class="term"><span class="command"><strong>reboot</strong></span></span><a class="headerlink" title="Permalink to this term" href="#reboot">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="reboot.target"><span class="term"><code class="filename">reboot.target</code></span><a class="headerlink" title="Permalink to this term" href="#reboot.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="remote-fs-pre.target"><span class="term"><code class="filename">remote-fs-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#remote-fs-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="remote-fs.target"><span class="term"><code class="filename">remote-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#remote-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="rescue.target"><span class="term"><code class="filename">rescue.target</code></span><a class="headerlink" title="Permalink to this term" href="#rescue.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="rpcbind.target"><span class="term"><code class="filename">rpcbind.target</code></span><a class="headerlink" title="Permalink to this term" href="#rpcbind.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel"><span class="term"><span class="command"><strong>runlevel</strong></span></span><a class="headerlink" title="Permalink to this term" href="#runlevel">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="runlevel2.target"><span class="term"><code class="filename">runlevel2.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel2.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel3.target"><span class="term"><code class="filename">runlevel3.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel3.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel4.target"><span class="term"><code class="filename">runlevel4.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel4.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel5.target"><span class="term"><code class="filename">runlevel5.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel5.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="scope.scope"><span class="term"><code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></span><a class="headerlink" title="Permalink to this term" href="#scope.scope">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.scope.html"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="service.service"><span class="term"><code class="filename"><em class="replaceable"><code>service</code></em>.service</code></span><a class="headerlink" title="Permalink to this term" href="#service.service">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="shutdown"><span class="term"><span class="command"><strong>shutdown</strong></span></span><a class="headerlink" title="Permalink to this term" href="#shutdown">¶</a></dt><dd><p><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="shutdown.target"><span class="term"><code class="filename">shutdown.target</code></span><a class="headerlink" title="Permalink to this term" href="#shutdown.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sigpwr.target"><span class="term"><code class="filename">sigpwr.target</code></span><a class="headerlink" title="Permalink to this term" href="#sigpwr.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sleep.target"><span class="term"><code class="filename">sleep.target</code></span><a class="headerlink" title="Permalink to this term" href="#sleep.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="slice.slice"><span class="term"><code class="filename"><em class="replaceable"><code>slice</code></em>.slice</code></span><a class="headerlink" title="Permalink to this term" href="#slice.slice">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.slice.html"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="smartcard.target"><span class="term"><code class="filename">smartcard.target</code></span><a class="headerlink" title="Permalink to this term" href="#smartcard.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="snapshot.snapshot"><span class="term"><code class="filename"><em class="replaceable"><code>snapshot</code></em>.snapshot</code></span><a class="headerlink" title="Permalink to this term" href="#snapshot.snapshot">¶</a></dt><dd><p><a href="systemd.snapshot.html"><span class="citerefentry"><span class="refentrytitle">systemd.snapshot</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="socket.socket"><span class="term"><code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code></span><a class="headerlink" title="Permalink to this term" href="#socket.socket">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="sockets.target"><span class="term"><code class="filename">sockets.target</code></span><a class="headerlink" title="Permalink to this term" href="#sockets.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sound.target"><span class="term"><code class="filename">sound.target</code></span><a class="headerlink" title="Permalink to this term" href="#sound.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="suspend.target"><span class="term"><code class="filename">suspend.target</code></span><a class="headerlink" title="Permalink to this term" href="#suspend.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="swap.swap"><span class="term"><code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code></span><a class="headerlink" title="Permalink to this term" href="#swap.swap">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="swap.target"><span class="term"><code class="filename">swap.target</code></span><a class="headerlink" title="Permalink to this term" href="#swap.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sysinit.target"><span class="term"><code class="filename">sysinit.target</code></span><a class="headerlink" title="Permalink to this term" href="#sysinit.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="syslog.socket"><span class="term"><code class="filename">syslog.socket</code></span><a class="headerlink" title="Permalink to this term" href="#syslog.socket">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="system-update.target"><span class="term"><code class="filename">system-update.target</code></span><a class="headerlink" title="Permalink to this term" href="#system-update.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="system.slice"><span class="term"><code class="filename">system.slice</code></span><a class="headerlink" title="Permalink to this term" href="#system.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="systemctl"><span class="term"><span class="command"><strong>systemctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemctl">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="systemd"><span class="term"><span class="command"><strong>systemd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd-analyze"><span class="term"><span class="command"><strong>systemd-analyze</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-analyze">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="systemd-ask-password"><span class="term"><span class="command"><strong>systemd-ask-password</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="systemd-ask-password-console.path"><span class="term"><code class="filename">systemd-ask-password-console.path</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-console.path">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-ask-password-console.service"><span class="term"><code class="filename">systemd-ask-password-console.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-console.service">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-ask-password-wall.path"><span class="term"><code class="filename">systemd-ask-password-wall.path</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-wall.path">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-ask-password-wall.service"><span class="term"><code class="filename">systemd-ask-password-wall.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-wall.service">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-backlight@.service"><span class="term"><code class="filename">systemd-backlight@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-backlight@.service">¶</a></dt><dd><p><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a></p></dd><dt id="systemd-binfmt.service"><span class="term"><code class="filename">systemd-binfmt.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-binfmt.service">¶</a></dt><dd><p><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a></p></dd><dt id="systemd-bus-proxyd.socket"><span class="term"><code class="filename">systemd-bus-proxyd.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-bus-proxyd.socket">¶</a></dt><dd><p><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a></p></dd><dt id="systemd-bus-proxyd@.service"><span class="term"><code class="filename">systemd-bus-proxyd@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-bus-proxyd@.service">¶</a></dt><dd><p><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a></p></dd><dt id="systemd-cat"><span class="term"><span class="command"><strong>systemd-cat</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-cat">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="systemd-cgls"><span class="term"><span class="command"><strong>systemd-cgls</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-cgls">¶</a></dt><dd><p><a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="systemd-cgtop"><span class="term"><span class="command"><strong>systemd-cgtop</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-cgtop">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="systemd-coredumpctl"><span class="term"><span class="command"><strong>systemd-coredumpctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-coredumpctl">¶</a></dt><dd><p><a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a></p></dd><dt id="systemd-cryptsetup@.service"><span class="term"><code class="filename">systemd-cryptsetup@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-cryptsetup@.service">¶</a></dt><dd><p><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a></p></dd><dt id="systemd-delta"><span class="term"><span class="command"><strong>systemd-delta</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-delta">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="systemd-detect-virt"><span class="term"><span class="command"><strong>systemd-detect-virt</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-detect-virt">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a></p></dd><dt id="systemd-fsck-root.service"><span class="term"><code class="filename">systemd-fsck-root.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-fsck-root.service">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="systemd-fsck@.service"><span class="term"><code class="filename">systemd-fsck@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-fsck@.service">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="systemd-halt.service"><span class="term"><code class="filename">systemd-halt.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-halt.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-hibernate.service"><span class="term"><code class="filename">systemd-hibernate.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-hibernate.service">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="systemd-hostnamed.service"><span class="term"><code class="filename">systemd-hostnamed.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-hostnamed.service">¶</a></dt><dd><p><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a></p></dd><dt id="systemd-hybrid-sleep.service"><span class="term"><code class="filename">systemd-hybrid-sleep.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-hybrid-sleep.service">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="systemd-inhibit"><span class="term"><span class="command"><strong>systemd-inhibit</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-inhibit">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="systemd-initctl.service"><span class="term"><code class="filename">systemd-initctl.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-initctl.service">¶</a></dt><dd><p><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="systemd-initctl.socket"><span class="term"><code class="filename">systemd-initctl.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-initctl.socket">¶</a></dt><dd><p><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="systemd-journal-gatewayd.service"><span class="term"><code class="filename">systemd-journal-gatewayd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journal-gatewayd.service">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="systemd-journal-gatewayd.socket"><span class="term"><code class="filename">systemd-journal-gatewayd.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journal-gatewayd.socket">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="systemd-journal-remote"><span class="term"><span class="command"><strong>systemd-journal-remote</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-journal-remote">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="systemd-journald-dev-log.socket"><span class="term"><code class="filename">systemd-journald-dev-log.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journald-dev-log.socket">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd-journald.service"><span class="term"><code class="filename">systemd-journald.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journald.service">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd-journald.socket"><span class="term"><code class="filename">systemd-journald.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journald.socket">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd-kexec.service"><span class="term"><code class="filename">systemd-kexec.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-kexec.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-localed.service"><span class="term"><code class="filename">systemd-localed.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-localed.service">¶</a></dt><dd><p><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a></p></dd><dt id="systemd-logind.service"><span class="term"><code class="filename">systemd-logind.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-logind.service">¶</a></dt><dd><p><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a></p></dd><dt id="systemd-machine-id-setup"><span class="term"><span class="command"><strong>systemd-machine-id-setup</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-machine-id-setup">¶</a></dt><dd><p><a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a></p></dd><dt id="systemd-machined.service"><span class="term"><code class="filename">systemd-machined.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-machined.service">¶</a></dt><dd><p><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a></p></dd><dt id="systemd-modules-load.service"><span class="term"><code class="filename">systemd-modules-load.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-modules-load.service">¶</a></dt><dd><p><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="systemd-networkd-wait-online.service"><span class="term"><code class="filename">systemd-networkd-wait-online.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-networkd-wait-online.service">¶</a></dt><dd><p><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a></p></dd><dt id="systemd-networkd.service"><span class="term"><code class="filename">systemd-networkd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-networkd.service">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a></p></dd><dt id="systemd-notify"><span class="term"><span class="command"><strong>systemd-notify</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-notify">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="systemd-nspawn"><span class="term"><span class="command"><strong>systemd-nspawn</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-nspawn">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="systemd-poweroff.service"><span class="term"><code class="filename">systemd-poweroff.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-poweroff.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-quotacheck.service"><span class="term"><code class="filename">systemd-quotacheck.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-quotacheck.service">¶</a></dt><dd><p><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a></p></dd><dt id="systemd-random-seed.service"><span class="term"><code class="filename">systemd-random-seed.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-random-seed.service">¶</a></dt><dd><p><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-collect.service"><span class="term"><code class="filename">systemd-readahead-collect.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-collect.service">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-done.service"><span class="term"><code class="filename">systemd-readahead-done.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-done.service">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-done.timer"><span class="term"><code class="filename">systemd-readahead-done.timer</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-done.timer">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-replay.service"><span class="term"><code class="filename">systemd-readahead-replay.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-replay.service">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-reboot.service"><span class="term"><code class="filename">systemd-reboot.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-reboot.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-remount-fs.service"><span class="term"><code class="filename">systemd-remount-fs.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-remount-fs.service">¶</a></dt><dd><p><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a></p></dd><dt id="systemd-resolved.service"><span class="term"><code class="filename">systemd-resolved.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-resolved.service">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="systemd-rfkill@.service"><span class="term"><code class="filename">systemd-rfkill@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-rfkill@.service">¶</a></dt><dd><p><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="systemd-run"><span class="term"><span class="command"><strong>systemd-run</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-run">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="systemd-shutdownd.service"><span class="term"><code class="filename">systemd-shutdownd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-shutdownd.service">¶</a></dt><dd><p><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a></p></dd><dt id="systemd-shutdownd.socket"><span class="term"><code class="filename">systemd-shutdownd.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-shutdownd.socket">¶</a></dt><dd><p><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a></p></dd><dt id="systemd-socket-proxyd"><span class="term"><span class="command"><strong>systemd-socket-proxyd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-socket-proxyd">¶</a></dt><dd><p><a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a></p></dd><dt id="systemd-suspend.service"><span class="term"><code class="filename">systemd-suspend.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-suspend.service">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="systemd-sysctl.service"><span class="term"><code class="filename">systemd-sysctl.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-sysctl.service">¶</a></dt><dd><p><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a></p></dd><dt id="systemd-timedated.service"><span class="term"><code class="filename">systemd-timedated.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-timedated.service">¶</a></dt><dd><p><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a></p></dd><dt id="systemd-timesyncd.service"><span class="term"><code class="filename">systemd-timesyncd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-timesyncd.service">¶</a></dt><dd><p><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles"><span class="term"><span class="command"><strong>systemd-tmpfiles</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-clean.service"><span class="term"><code class="filename">systemd-tmpfiles-clean.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-clean.service">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-clean.timer"><span class="term"><code class="filename">systemd-tmpfiles-clean.timer</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-clean.timer">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-setup-dev.service"><span class="term"><code class="filename">systemd-tmpfiles-setup-dev.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-setup-dev.service">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-setup.service"><span class="term"><code class="filename">systemd-tmpfiles-setup.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-setup.service">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tty-ask-password-agent"><span class="term"><span class="command"><strong>systemd-tty-ask-password-agent</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-tty-ask-password-agent">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="systemd-udevd-control.socket"><span class="term"><code class="filename">systemd-udevd-control.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-udevd-control.socket">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="systemd-udevd-kernel.socket"><span class="term"><code class="filename">systemd-udevd-kernel.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-udevd-kernel.socket">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="systemd-udevd.service"><span class="term"><code class="filename">systemd-udevd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-udevd.service">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="systemd-update-utmp-runlevel.service"><span class="term"><code class="filename">systemd-update-utmp-runlevel.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-update-utmp-runlevel.service">¶</a></dt><dd><p><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a></p></dd><dt id="systemd-update-utmp.service"><span class="term"><code class="filename">systemd-update-utmp.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-update-utmp.service">¶</a></dt><dd><p><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a></p></dd><dt id="systemd-user-sessions.service"><span class="term"><code class="filename">systemd-user-sessions.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-user-sessions.service">¶</a></dt><dd><p><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a></p></dd><dt id="systemd-vconsole-setup.service"><span class="term"><code class="filename">systemd-vconsole-setup.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-vconsole-setup.service">¶</a></dt><dd><p><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="target.target"><span class="term"><code class="filename"><em class="replaceable"><code>target</code></em>.target</code></span><a class="headerlink" title="Permalink to this term" href="#target.target">¶</a></dt><dd><p><a href="systemd.target.html"><span class="citerefentry"><span class="refentrytitle">systemd.target</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="telinit"><span class="term"><span class="command"><strong>telinit</strong></span></span><a class="headerlink" title="Permalink to this term" href="#telinit">¶</a></dt><dd><p><a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a></p></dd><dt id="time-sync.target"><span class="term"><code class="filename">time-sync.target</code></span><a class="headerlink" title="Permalink to this term" href="#time-sync.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="timedatectl"><span class="term"><span class="command"><strong>timedatectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#timedatectl">¶</a></dt><dd><p><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="timer.timer"><span class="term"><code class="filename"><em class="replaceable"><code>timer</code></em>.timer</code></span><a class="headerlink" title="Permalink to this term" href="#timer.timer">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="timers.target"><span class="term"><code class="filename">timers.target</code></span><a class="headerlink" title="Permalink to this term" href="#timers.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="udevadm"><span class="term"><span class="command"><strong>udevadm</strong></span></span><a class="headerlink" title="Permalink to this term" href="#udevadm">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="umount.target"><span class="term"><code class="filename">umount.target</code></span><a class="headerlink" title="Permalink to this term" href="#umount.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="user.slice"><span class="term"><code class="filename">user.slice</code></span><a class="headerlink" title="Permalink to this term" href="#user.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214184109360"></a><h2 id="Colophon">Colophon<a class="headerlink" title="Permalink to this headline" href="#Colophon">¶</a></h2><p><a name="colophon"></a>This index contains 1535 entries in 14 sections,
-referring to 170 individual manual pages.
+ systemd-networkd.</p><div class="variablelist"><a name="network-directives"></a><dl class="variablelist"><dt id="Address="><span class="term"><code class="varname">Address=</code></span><a class="headerlink" title="Permalink to this term" href="#Address=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Alias="><span class="term"><code class="varname">Alias=</code></span><a class="headerlink" title="Permalink to this term" href="#Alias=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Architecture="><span class="term"><code class="varname">Architecture=</code></span><a class="headerlink" title="Permalink to this term" href="#Architecture=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="BitsPerSecond="><span class="term"><code class="varname">BitsPerSecond=</code></span><a class="headerlink" title="Permalink to this term" href="#BitsPerSecond=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Bond="><span class="term"><code class="varname">Bond=</code></span><a class="headerlink" title="Permalink to this term" href="#Bond=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Bridge="><span class="term"><code class="varname">Bridge=</code></span><a class="headerlink" title="Permalink to this term" href="#Bridge=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Broadcast="><span class="term"><code class="varname">Broadcast=</code></span><a class="headerlink" title="Permalink to this term" href="#Broadcast=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="CriticalConnection="><span class="term"><code class="varname">CriticalConnection=</code></span><a class="headerlink" title="Permalink to this term" href="#CriticalConnection=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="DHCP="><span class="term"><code class="varname">DHCP=</code></span><a class="headerlink" title="Permalink to this term" href="#DHCP=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="DHCPServer="><span class="term"><code class="varname">DHCPServer=</code></span><a class="headerlink" title="Permalink to this term" href="#DHCPServer=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="DNS="><span class="term"><code class="varname">DNS=</code></span><a class="headerlink" title="Permalink to this term" href="#DNS=">¶</a></dt><dd><p><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Destination="><span class="term"><code class="varname">Destination=</code></span><a class="headerlink" title="Permalink to this term" href="#Destination=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="DiscoverPathMTU="><span class="term"><code class="varname">DiscoverPathMTU=</code></span><a class="headerlink" title="Permalink to this term" href="#DiscoverPathMTU=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Driver="><span class="term"><code class="varname">Driver=</code></span><a class="headerlink" title="Permalink to this term" href="#Driver=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Duplex="><span class="term"><code class="varname">Duplex=</code></span><a class="headerlink" title="Permalink to this term" href="#Duplex=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="Gateway="><span class="term"><code class="varname">Gateway=</code></span><a class="headerlink" title="Permalink to this term" href="#Gateway=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Group="><span class="term"><code class="varname">Group=</code></span><a class="headerlink" title="Permalink to this term" href="#Group=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Host="><span class="term"><code class="varname">Host=</code></span><a class="headerlink" title="Permalink to this term" href="#Host=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="IPv4LL="><span class="term"><code class="varname">IPv4LL=</code></span><a class="headerlink" title="Permalink to this term" href="#IPv4LL=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Id="><span class="term"><code class="varname">Id=</code></span><a class="headerlink" title="Permalink to this term" href="#Id=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="KernelCommandLine="><span class="term"><code class="varname">KernelCommandLine=</code></span><a class="headerlink" title="Permalink to this term" href="#KernelCommandLine=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Kind="><span class="term"><code class="varname">Kind=</code></span><a class="headerlink" title="Permalink to this term" href="#Kind=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Label="><span class="term"><code class="varname">Label=</code></span><a class="headerlink" title="Permalink to this term" href="#Label=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Local="><span class="term"><code class="varname">Local=</code></span><a class="headerlink" title="Permalink to this term" href="#Local=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="MACAddress="><span class="term"><code class="varname">MACAddress=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddress=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="MACAddressPolicy="><span class="term"><code class="varname">MACAddressPolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddressPolicy=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="MACVLAN="><span class="term"><code class="varname">MACVLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#MACVLAN=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="MTUBytes="><span class="term"><code class="varname">MTUBytes=</code></span><a class="headerlink" title="Permalink to this term" href="#MTUBytes=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="MacLearning="><span class="term"><code class="varname">MacLearning=</code></span><a class="headerlink" title="Permalink to this term" href="#MacLearning=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Mode="><span class="term"><code class="varname">Mode=</code></span><a class="headerlink" title="Permalink to this term" href="#Mode=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="MultiQueue="><span class="term"><code class="varname">MultiQueue=</code></span><a class="headerlink" title="Permalink to this term" href="#MultiQueue=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Name="><span class="term"><code class="varname">Name=</code></span><a class="headerlink" title="Permalink to this term" href="#Name=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="NamePolicy="><span class="term"><code class="varname">NamePolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#NamePolicy=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="OneQueue="><span class="term"><code class="varname">OneQueue=</code></span><a class="headerlink" title="Permalink to this term" href="#OneQueue=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="PacketInfo="><span class="term"><code class="varname">PacketInfo=</code></span><a class="headerlink" title="Permalink to this term" href="#PacketInfo=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Path="><span class="term"><code class="varname">Path=</code></span><a class="headerlink" title="Permalink to this term" href="#Path=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Remote="><span class="term"><code class="varname">Remote=</code></span><a class="headerlink" title="Permalink to this term" href="#Remote=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="SendHostname="><span class="term"><code class="varname">SendHostname=</code></span><a class="headerlink" title="Permalink to this term" href="#SendHostname=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="TOS="><span class="term"><code class="varname">TOS=</code></span><a class="headerlink" title="Permalink to this term" href="#TOS=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="TTL="><span class="term"><code class="varname">TTL=</code></span><a class="headerlink" title="Permalink to this term" href="#TTL=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="Tunnel="><span class="term"><code class="varname">Tunnel=</code></span><a class="headerlink" title="Permalink to this term" href="#Tunnel=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Type="><span class="term"><code class="varname">Type=</code></span><a class="headerlink" title="Permalink to this term" href="#Type=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseDNS="><span class="term"><code class="varname">UseDNS=</code></span><a class="headerlink" title="Permalink to this term" href="#UseDNS=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseHostname="><span class="term"><code class="varname">UseHostname=</code></span><a class="headerlink" title="Permalink to this term" href="#UseHostname=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseMTU="><span class="term"><code class="varname">UseMTU=</code></span><a class="headerlink" title="Permalink to this term" href="#UseMTU=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="UseRoutes="><span class="term"><code class="varname">UseRoutes=</code></span><a class="headerlink" title="Permalink to this term" href="#UseRoutes=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="User="><span class="term"><code class="varname">User=</code></span><a class="headerlink" title="Permalink to this term" href="#User=">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="VLAN="><span class="term"><code class="varname">VLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#VLAN=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="VXLAN="><span class="term"><code class="varname">VXLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#VXLAN=">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="Virtualization="><span class="term"><code class="varname">Virtualization=</code></span><a class="headerlink" title="Permalink to this term" href="#Virtualization=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="WakeOnLan="><span class="term"><code class="varname">WakeOnLan=</code></span><a class="headerlink" title="Permalink to this term" href="#WakeOnLan=">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181957344"></a><h2 id="Journal fields">Journal fields<a class="headerlink" title="Permalink to this headline" href="#Journal%20fields">¶</a></h2><p>Fields in the journal events with a well known meaning.</p><div class="variablelist"><a name="journal-directives"></a><dl class="variablelist"><dt id="CODE_FILE="><span class="term"><code class="varname">CODE_FILE=</code></span><a class="headerlink" title="Permalink to this term" href="#CODE_FILE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="CODE_FUNC="><span class="term"><code class="varname">CODE_FUNC=</code></span><a class="headerlink" title="Permalink to this term" href="#CODE_FUNC=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="CODE_LINE="><span class="term"><code class="varname">CODE_LINE=</code></span><a class="headerlink" title="Permalink to this term" href="#CODE_LINE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="COREDUMP_UNIT="><span class="term"><code class="varname">COREDUMP_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#COREDUMP_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="COREDUMP_USER_UNIT="><span class="term"><code class="varname">COREDUMP_USER_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#COREDUMP_USER_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="ERRNO="><span class="term"><code class="varname">ERRNO=</code></span><a class="headerlink" title="Permalink to this term" href="#ERRNO=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="MESSAGE="><span class="term"><code class="varname">MESSAGE=</code></span><a class="headerlink" title="Permalink to this term" href="#MESSAGE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="MESSAGE_ID="><span class="term"><code class="varname">MESSAGE_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#MESSAGE_ID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_AUDIT_LOGINUID="><span class="term"><code class="varname">OBJECT_AUDIT_LOGINUID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_AUDIT_LOGINUID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_AUDIT_SESSION="><span class="term"><code class="varname">OBJECT_AUDIT_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_AUDIT_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_CMDLINE="><span class="term"><code class="varname">OBJECT_CMDLINE=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_CMDLINE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_COMM="><span class="term"><code class="varname">OBJECT_COMM=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_COMM=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_EXE="><span class="term"><code class="varname">OBJECT_EXE=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_EXE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_GID="><span class="term"><code class="varname">OBJECT_GID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_GID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_PID="><span class="term"><code class="varname">OBJECT_PID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_PID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_CGROUP="><span class="term"><code class="varname">OBJECT_SYSTEMD_CGROUP=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_CGROUP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_OWNER_UID="><span class="term"><code class="varname">OBJECT_SYSTEMD_OWNER_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_OWNER_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_SESSION="><span class="term"><code class="varname">OBJECT_SYSTEMD_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_UNIT="><span class="term"><code class="varname">OBJECT_SYSTEMD_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_SYSTEMD_USER_UNIT="><span class="term"><code class="varname">OBJECT_SYSTEMD_USER_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_SYSTEMD_USER_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="OBJECT_UID="><span class="term"><code class="varname">OBJECT_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#OBJECT_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="PRIORITY="><span class="term"><code class="varname">PRIORITY=</code></span><a class="headerlink" title="Permalink to this term" href="#PRIORITY=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="SYSLOG_FACILITY="><span class="term"><code class="varname">SYSLOG_FACILITY=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSLOG_FACILITY=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="SYSLOG_IDENTIFIER="><span class="term"><code class="varname">SYSLOG_IDENTIFIER=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSLOG_IDENTIFIER=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="SYSLOG_PID="><span class="term"><code class="varname">SYSLOG_PID=</code></span><a class="headerlink" title="Permalink to this term" href="#SYSLOG_PID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_AUDIT_LOGINUID="><span class="term"><code class="varname">_AUDIT_LOGINUID=</code></span><a class="headerlink" title="Permalink to this term" href="#_AUDIT_LOGINUID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_AUDIT_SESSION="><span class="term"><code class="varname">_AUDIT_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#_AUDIT_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_BOOT_ID="><span class="term"><code class="varname">_BOOT_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#_BOOT_ID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_CAP_EFFECTIVE="><span class="term"><code class="varname">_CAP_EFFECTIVE=</code></span><a class="headerlink" title="Permalink to this term" href="#_CAP_EFFECTIVE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_CMDLINE="><span class="term"><code class="varname">_CMDLINE=</code></span><a class="headerlink" title="Permalink to this term" href="#_CMDLINE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_COMM="><span class="term"><code class="varname">_COMM=</code></span><a class="headerlink" title="Permalink to this term" href="#_COMM=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_EXE="><span class="term"><code class="varname">_EXE=</code></span><a class="headerlink" title="Permalink to this term" href="#_EXE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_GID="><span class="term"><code class="varname">_GID=</code></span><a class="headerlink" title="Permalink to this term" href="#_GID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_HOSTNAME="><span class="term"><code class="varname">_HOSTNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#_HOSTNAME=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_KERNEL_DEVICE="><span class="term"><code class="varname">_KERNEL_DEVICE=</code></span><a class="headerlink" title="Permalink to this term" href="#_KERNEL_DEVICE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_KERNEL_SUBSYSTEM="><span class="term"><code class="varname">_KERNEL_SUBSYSTEM=</code></span><a class="headerlink" title="Permalink to this term" href="#_KERNEL_SUBSYSTEM=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_MACHINE_ID="><span class="term"><code class="varname">_MACHINE_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#_MACHINE_ID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_PID="><span class="term"><code class="varname">_PID=</code></span><a class="headerlink" title="Permalink to this term" href="#_PID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SELINUX_CONTEXT="><span class="term"><code class="varname">_SELINUX_CONTEXT=</code></span><a class="headerlink" title="Permalink to this term" href="#_SELINUX_CONTEXT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SOURCE_REALTIME_TIMESTAMP="><span class="term"><code class="varname">_SOURCE_REALTIME_TIMESTAMP=</code></span><a class="headerlink" title="Permalink to this term" href="#_SOURCE_REALTIME_TIMESTAMP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_CGROUP="><span class="term"><code class="varname">_SYSTEMD_CGROUP=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_CGROUP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_OWNER_UID="><span class="term"><code class="varname">_SYSTEMD_OWNER_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_OWNER_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_SESSION="><span class="term"><code class="varname">_SYSTEMD_SESSION=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_SESSION=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_SLICE="><span class="term"><code class="varname">_SYSTEMD_SLICE=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_SLICE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_UNIT="><span class="term"><code class="varname">_SYSTEMD_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_SYSTEMD_USER_UNIT="><span class="term"><code class="varname">_SYSTEMD_USER_UNIT=</code></span><a class="headerlink" title="Permalink to this term" href="#_SYSTEMD_USER_UNIT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_TRANSPORT="><span class="term"><code class="varname">_TRANSPORT=</code></span><a class="headerlink" title="Permalink to this term" href="#_TRANSPORT=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UDEV_DEVLINK="><span class="term"><code class="varname">_UDEV_DEVLINK=</code></span><a class="headerlink" title="Permalink to this term" href="#_UDEV_DEVLINK=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UDEV_DEVNODE="><span class="term"><code class="varname">_UDEV_DEVNODE=</code></span><a class="headerlink" title="Permalink to this term" href="#_UDEV_DEVNODE=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UDEV_SYSNAME="><span class="term"><code class="varname">_UDEV_SYSNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#_UDEV_SYSNAME=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="_UID="><span class="term"><code class="varname">_UID=</code></span><a class="headerlink" title="Permalink to this term" href="#_UID=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="__CURSOR="><span class="term"><code class="varname">__CURSOR=</code></span><a class="headerlink" title="Permalink to this term" href="#__CURSOR=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="__MONOTONIC_TIMESTAMP="><span class="term"><code class="varname">__MONOTONIC_TIMESTAMP=</code></span><a class="headerlink" title="Permalink to this term" href="#__MONOTONIC_TIMESTAMP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="__REALTIME_TIMESTAMP="><span class="term"><code class="varname">__REALTIME_TIMESTAMP=</code></span><a class="headerlink" title="Permalink to this term" href="#__REALTIME_TIMESTAMP=">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181869120"></a><h2 id="PAM configuration directives">PAM configuration directives<a class="headerlink" title="Permalink to this headline" href="#PAM%20configuration%20directives">¶</a></h2><p>Directives for configuring PAM behaviour.</p><div class="variablelist"><a name="pam-directives"></a><dl class="variablelist"><dt id="class="><span class="term"><code class="option">class=</code></span><a class="headerlink" title="Permalink to this term" href="#class=">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="debug"><span class="term"><code class="varname">debug</code></span><a class="headerlink" title="Permalink to this term" href="#debug">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="type="><span class="term"><code class="option">type=</code></span><a class="headerlink" title="Permalink to this term" href="#type=">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181862528"></a><h2 id="/etc/crypttab and
+ /etc/fstab options"><code class="filename">/etc/crypttab</code> and
+ <code class="filename">/etc/fstab</code> options<a class="headerlink" title="Permalink to this headline" href="#/etc/crypttab%20and%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/etc/fstab%20options">¶</a></h2><p>Options which influence mounted filesystems and
+ encrypted volumes.</p><div class="variablelist"><a name="fstab-options"></a><dl class="variablelist"><dt id="auto"><span class="term"><code class="constant">auto</code></span><a class="headerlink" title="Permalink to this term" href="#auto">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="cipher="><span class="term"><code class="option">cipher=</code></span><a class="headerlink" title="Permalink to this term" href="#cipher=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="discard"><span class="term"><code class="option">discard</code></span><a class="headerlink" title="Permalink to this term" href="#discard">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="fail"><span class="term"><code class="option">fail</code></span><a class="headerlink" title="Permalink to this term" href="#fail">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="hash="><span class="term"><code class="option">hash=</code></span><a class="headerlink" title="Permalink to this term" href="#hash=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="key-slot="><span class="term"><code class="option">key-slot=</code></span><a class="headerlink" title="Permalink to this term" href="#key-slot=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="keyfile-offset="><span class="term"><code class="option">keyfile-offset=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-offset=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="keyfile-size="><span class="term"><code class="option">keyfile-size=</code></span><a class="headerlink" title="Permalink to this term" href="#keyfile-size=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="luks"><span class="term"><code class="option">luks</code></span><a class="headerlink" title="Permalink to this term" href="#luks">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="noauto"><span class="term"><code class="option">noauto</code></span><a class="headerlink" title="Permalink to this term" href="#noauto">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="nofail"><span class="term"><code class="option">nofail</code></span><a class="headerlink" title="Permalink to this term" href="#nofail">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="plain"><span class="term"><code class="option">plain</code></span><a class="headerlink" title="Permalink to this term" href="#plain">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="read-only"><span class="term"><code class="option">read-only</code></span><a class="headerlink" title="Permalink to this term" href="#read-only">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="readonly"><span class="term"><code class="option">readonly</code></span><a class="headerlink" title="Permalink to this term" href="#readonly">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="size="><span class="term"><code class="option">size=</code></span><a class="headerlink" title="Permalink to this term" href="#size=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="swap"><span class="term"><code class="option">swap</code></span><a class="headerlink" title="Permalink to this term" href="#swap">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt"><span class="term"><code class="option">tcrypt</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt-hidden"><span class="term"><code class="option">tcrypt-hidden</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-hidden">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt-keyfile="><span class="term"><code class="option">tcrypt-keyfile=</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-keyfile=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tcrypt-system"><span class="term"><code class="option">tcrypt-system</code></span><a class="headerlink" title="Permalink to this term" href="#tcrypt-system">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="timeout="><span class="term"><code class="option">timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#timeout=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tmp"><span class="term"><code class="option">tmp</code></span><a class="headerlink" title="Permalink to this term" href="#tmp">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="tries="><span class="term"><code class="option">tries=</code></span><a class="headerlink" title="Permalink to this term" href="#tries=">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="verify"><span class="term"><code class="option">verify</code></span><a class="headerlink" title="Permalink to this term" href="#verify">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="x-initrd.mount"><span class="term"><code class="option">x-initrd.mount</code></span><a class="headerlink" title="Permalink to this term" href="#x-initrd.mount">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="x-systemd.automount"><span class="term"><code class="option">x-systemd.automount</code></span><a class="headerlink" title="Permalink to this term" href="#x-systemd.automount">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="x-systemd.device-timeout="><span class="term"><code class="option">x-systemd.device-timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#x-systemd.device-timeout=">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181815200"></a><h2 id="System manager directives">System manager directives<a class="headerlink" title="Permalink to this headline" href="#System%20manager%20directives">¶</a></h2><p>Directives for configuring the behaviour of the
+ systemd process.</p><div class="variablelist"><a name="systemd-directives"></a><dl class="variablelist"><dt id="CPUAffinity="><span class="term"><code class="varname">CPUAffinity=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAffinity=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="CapabilityBoundingSet="><span class="term"><code class="varname">CapabilityBoundingSet=</code></span><a class="headerlink" title="Permalink to this term" href="#CapabilityBoundingSet=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="CrashChVT="><span class="term"><code class="varname">CrashChVT=</code></span><a class="headerlink" title="Permalink to this term" href="#CrashChVT=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="CrashShell="><span class="term"><code class="varname">CrashShell=</code></span><a class="headerlink" title="Permalink to this term" href="#CrashShell=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultBlockIOAccounting="><span class="term"><code class="varname">DefaultBlockIOAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultBlockIOAccounting=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultCPUAccounting="><span class="term"><code class="varname">DefaultCPUAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultCPUAccounting=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultEnvironment="><span class="term"><code class="varname">DefaultEnvironment=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultEnvironment=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitAS="><span class="term"><code class="varname">DefaultLimitAS=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitAS=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitCORE="><span class="term"><code class="varname">DefaultLimitCORE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitCORE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitCPU="><span class="term"><code class="varname">DefaultLimitCPU=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitCPU=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitDATA="><span class="term"><code class="varname">DefaultLimitDATA=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitDATA=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitFSIZE="><span class="term"><code class="varname">DefaultLimitFSIZE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitFSIZE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitLOCKS="><span class="term"><code class="varname">DefaultLimitLOCKS=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitLOCKS=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitMEMLOCK="><span class="term"><code class="varname">DefaultLimitMEMLOCK=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitMEMLOCK=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitMSGQUEUE="><span class="term"><code class="varname">DefaultLimitMSGQUEUE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitMSGQUEUE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitNICE="><span class="term"><code class="varname">DefaultLimitNICE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitNICE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitNOFILE="><span class="term"><code class="varname">DefaultLimitNOFILE=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitNOFILE=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitNPROC="><span class="term"><code class="varname">DefaultLimitNPROC=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitNPROC=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitRSS="><span class="term"><code class="varname">DefaultLimitRSS=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitRSS=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitRTPRIO="><span class="term"><code class="varname">DefaultLimitRTPRIO=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitRTPRIO=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitRTTIME="><span class="term"><code class="varname">DefaultLimitRTTIME=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitRTTIME=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitSIGPENDING="><span class="term"><code class="varname">DefaultLimitSIGPENDING=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitSIGPENDING=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultLimitSTACK="><span class="term"><code class="varname">DefaultLimitSTACK=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultLimitSTACK=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultMemoryAccounting="><span class="term"><code class="varname">DefaultMemoryAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultMemoryAccounting=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultRestartSec="><span class="term"><code class="varname">DefaultRestartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultRestartSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStandardError="><span class="term"><code class="varname">DefaultStandardError=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStandardError=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStandardOutput="><span class="term"><code class="varname">DefaultStandardOutput=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStandardOutput=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStartLimitBurst="><span class="term"><code class="varname">DefaultStartLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStartLimitBurst=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultStartLimitInterval="><span class="term"><code class="varname">DefaultStartLimitInterval=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultStartLimitInterval=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultTimeoutStartSec="><span class="term"><code class="varname">DefaultTimeoutStartSec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultTimeoutStartSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultTimeoutStopSec="><span class="term"><code class="varname">DefaultTimeoutStopSec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultTimeoutStopSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DefaultTimerAccuracySec="><span class="term"><code class="varname">DefaultTimerAccuracySec=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultTimerAccuracySec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="DumpCore="><span class="term"><code class="varname">DumpCore=</code></span><a class="headerlink" title="Permalink to this term" href="#DumpCore=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="HibernateMode="><span class="term"><code class="varname">HibernateMode=</code></span><a class="headerlink" title="Permalink to this term" href="#HibernateMode=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="HibernateState="><span class="term"><code class="varname">HibernateState=</code></span><a class="headerlink" title="Permalink to this term" href="#HibernateState=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="HybridSleepMode="><span class="term"><code class="varname">HybridSleepMode=</code></span><a class="headerlink" title="Permalink to this term" href="#HybridSleepMode=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="HybridSleepState="><span class="term"><code class="varname">HybridSleepState=</code></span><a class="headerlink" title="Permalink to this term" href="#HybridSleepState=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="JoinControllers="><span class="term"><code class="varname">JoinControllers=</code></span><a class="headerlink" title="Permalink to this term" href="#JoinControllers=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogColor="><span class="term"><code class="varname">LogColor=</code></span><a class="headerlink" title="Permalink to this term" href="#LogColor=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogLevel="><span class="term"><code class="varname">LogLevel=</code></span><a class="headerlink" title="Permalink to this term" href="#LogLevel=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogLocation="><span class="term"><code class="varname">LogLocation=</code></span><a class="headerlink" title="Permalink to this term" href="#LogLocation=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="LogTarget="><span class="term"><code class="varname">LogTarget=</code></span><a class="headerlink" title="Permalink to this term" href="#LogTarget=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="RuntimeWatchdogSec="><span class="term"><code class="varname">RuntimeWatchdogSec=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeWatchdogSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="ShowStatus="><span class="term"><code class="varname">ShowStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#ShowStatus=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="ShutdownWatchdogSec="><span class="term"><code class="varname">ShutdownWatchdogSec=</code></span><a class="headerlink" title="Permalink to this term" href="#ShutdownWatchdogSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="SuspendMode="><span class="term"><code class="varname">SuspendMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendMode=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="SuspendState="><span class="term"><code class="varname">SuspendState=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendState=">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="SystemCallArchitectures="><span class="term"><code class="varname">SystemCallArchitectures=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemCallArchitectures=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="TimerSlackNSec="><span class="term"><code class="varname">TimerSlackNSec=</code></span><a class="headerlink" title="Permalink to this term" href="#TimerSlackNSec=">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181734896"></a><h2 id="bootchart.conf directives">bootchart.conf directives<a class="headerlink" title="Permalink to this headline" href="#bootchart.conf%20directives">¶</a></h2><p>Directives for configuring the behaviour of the
+ systemd-bootchart process.</p><div class="variablelist"><a name="bootchart-directives"></a><dl class="variablelist"><dt id="ControlGroup="><span class="term"><code class="varname">ControlGroup=</code></span><a class="headerlink" title="Permalink to this term" href="#ControlGroup=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Filter="><span class="term"><code class="varname">Filter=</code></span><a class="headerlink" title="Permalink to this term" href="#Filter=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Frequency="><span class="term"><code class="varname">Frequency=</code></span><a class="headerlink" title="Permalink to this term" href="#Frequency=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Init="><span class="term"><code class="varname">Init=</code></span><a class="headerlink" title="Permalink to this term" href="#Init=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Output="><span class="term"><code class="varname">Output=</code></span><a class="headerlink" title="Permalink to this term" href="#Output=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="PlotEntropyGraph="><span class="term"><code class="varname">PlotEntropyGraph=</code></span><a class="headerlink" title="Permalink to this term" href="#PlotEntropyGraph=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="PlotMemoryUsage="><span class="term"><code class="varname">PlotMemoryUsage=</code></span><a class="headerlink" title="Permalink to this term" href="#PlotMemoryUsage=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Relative="><span class="term"><code class="varname">Relative=</code></span><a class="headerlink" title="Permalink to this term" href="#Relative=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="Samples="><span class="term"><code class="varname">Samples=</code></span><a class="headerlink" title="Permalink to this term" href="#Samples=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="ScaleX="><span class="term"><code class="varname">ScaleX=</code></span><a class="headerlink" title="Permalink to this term" href="#ScaleX=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="ScaleY="><span class="term"><code class="varname">ScaleY=</code></span><a class="headerlink" title="Permalink to this term" href="#ScaleY=">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181715456"></a><h2 id="command-line options">command-line options<a class="headerlink" title="Permalink to this headline" href="#command-line%20options">¶</a></h2><p>Command-line options accepted by programs in the
+ systemd suite.</p><div class="variablelist"><a name="options"></a><dl class="variablelist"><dt id="--accept"><span class="term"><code class="option">--accept</code></span><a class="headerlink" title="Permalink to this term" href="#--accept">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="--accept-cached"><span class="term"><code class="option">--accept-cached</code></span><a class="headerlink" title="Permalink to this term" href="#--accept-cached">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--acquired"><span class="term"><code class="option">--acquired</code></span><a class="headerlink" title="Permalink to this term" href="#--acquired">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--action="><span class="term"><code class="option">--action=</code></span><a class="headerlink" title="Permalink to this term" href="#--action=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--activatable"><span class="term"><code class="option">--activatable</code></span><a class="headerlink" title="Permalink to this term" href="#--activatable">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--address="><span class="term"><code class="option">--address=</code></span><a class="headerlink" title="Permalink to this term" href="#--address=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a></p></dd><dt id="--adjust-system-clock"><span class="term"><code class="option">--adjust-system-clock</code></span><a class="headerlink" title="Permalink to this term" href="#--adjust-system-clock">¶</a></dt><dd><p><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--after"><span class="term"><code class="option">--after</code></span><a class="headerlink" title="Permalink to this term" href="#--after">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--after-cursor="><span class="term"><code class="option">--after-cursor=</code></span><a class="headerlink" title="Permalink to this term" href="#--after-cursor=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--all"><span class="term"><code class="option">--all</code></span><a class="headerlink" title="Permalink to this term" href="#--all">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="--attr-match="><span class="term"><code class="option">--attr-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--attr-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--attr-nomatch="><span class="term"><code class="option">--attr-nomatch=</code></span><a class="headerlink" title="Permalink to this term" href="#--attr-nomatch=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--attribute-walk"><span class="term"><code class="option">--attribute-walk</code></span><a class="headerlink" title="Permalink to this term" href="#--attribute-walk">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--batch"><span class="term"><code class="option">--batch</code></span><a class="headerlink" title="Permalink to this term" href="#--batch">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--before"><span class="term"><code class="option">--before</code></span><a class="headerlink" title="Permalink to this term" href="#--before">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--bind-ro="><span class="term"><code class="option">--bind-ro=</code></span><a class="headerlink" title="Permalink to this term" href="#--bind-ro=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--bind="><span class="term"><code class="option">--bind=</code></span><a class="headerlink" title="Permalink to this term" href="#--bind=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--boot"><span class="term"><code class="option">--boot</code></span><a class="headerlink" title="Permalink to this term" href="#--boot">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--boot="><span class="term"><code class="option">--boot=</code></span><a class="headerlink" title="Permalink to this term" href="#--boot=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--booted"><span class="term"><code class="option">--booted</code></span><a class="headerlink" title="Permalink to this term" href="#--booted">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--capability="><span class="term"><code class="option">--capability=</code></span><a class="headerlink" title="Permalink to this term" href="#--capability=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--catalog"><span class="term"><code class="option">--catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--cert="><span class="term"><code class="option">--cert=</code></span><a class="headerlink" title="Permalink to this term" href="#--cert=">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="--children-max="><span class="term"><code class="option">--children-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--children-max=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--clean"><span class="term"><code class="option">--clean</code></span><a class="headerlink" title="Permalink to this term" href="#--clean">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--cleanup-db"><span class="term"><code class="option">--cleanup-db</code></span><a class="headerlink" title="Permalink to this term" href="#--cleanup-db">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--cmdline"><span class="term"><code class="option">--cmdline</code></span><a class="headerlink" title="Permalink to this term" href="#--cmdline">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--compress"><span class="term"><code class="option">--compress</code></span><a class="headerlink" title="Permalink to this term" href="#--compress">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--confirm-spawn"><span class="term"><code class="option">--confirm-spawn</code></span><a class="headerlink" title="Permalink to this term" href="#--confirm-spawn">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--console"><span class="term"><code class="option">--console</code></span><a class="headerlink" title="Permalink to this term" href="#--console">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--container"><span class="term"><code class="option">--container</code></span><a class="headerlink" title="Permalink to this term" href="#--container">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a></p></dd><dt id="--control-group"><span class="term"><code class="option">--control-group</code></span><a class="headerlink" title="Permalink to this term" href="#--control-group">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--crash-shell"><span class="term"><code class="option">--crash-shell</code></span><a class="headerlink" title="Permalink to this term" href="#--crash-shell">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--create"><span class="term"><code class="option">--create</code></span><a class="headerlink" title="Permalink to this term" href="#--create">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--cursor="><span class="term"><code class="option">--cursor=</code></span><a class="headerlink" title="Permalink to this term" href="#--cursor=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--daemon"><span class="term"><code class="option">--daemon</code></span><a class="headerlink" title="Permalink to this term" href="#--daemon">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--default-standard-error="><span class="term"><code class="option">--default-standard-error=</code></span><a class="headerlink" title="Permalink to this term" href="#--default-standard-error=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--default-standard-output="><span class="term"><code class="option">--default-standard-output=</code></span><a class="headerlink" title="Permalink to this term" href="#--default-standard-output=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--delay="><span class="term"><code class="option">--delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--delay=">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--depth="><span class="term"><code class="option">--depth=</code></span><a class="headerlink" title="Permalink to this term" href="#--depth=">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--description="><span class="term"><code class="option">--description=</code></span><a class="headerlink" title="Permalink to this term" href="#--description=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--device-id-of-file="><span class="term"><code class="option">--device-id-of-file=</code></span><a class="headerlink" title="Permalink to this term" href="#--device-id-of-file=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--diff="><span class="term"><code class="option">--diff=</code></span><a class="headerlink" title="Permalink to this term" href="#--diff=">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="--directory="><span class="term"><code class="option">--directory=</code></span><a class="headerlink" title="Permalink to this term" href="#--directory=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--disk-usage"><span class="term"><code class="option">--disk-usage</code></span><a class="headerlink" title="Permalink to this term" href="#--disk-usage">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--dmesg"><span class="term"><code class="option">--dmesg</code></span><a class="headerlink" title="Permalink to this term" href="#--dmesg">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--drop-capability="><span class="term"><code class="option">--drop-capability=</code></span><a class="headerlink" title="Permalink to this term" href="#--drop-capability=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--dry-run"><span class="term"><code class="option">--dry-run</code></span><a class="headerlink" title="Permalink to this term" href="#--dry-run">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--dump-catalog"><span class="term"><code class="option">--dump-catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--dump-configuration-items"><span class="term"><code class="option">--dump-configuration-items</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-configuration-items">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--dump-core"><span class="term"><code class="option">--dump-core</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-core">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--entropy"><span class="term"><code class="option">--entropy</code></span><a class="headerlink" title="Permalink to this term" href="#--entropy">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--exclude-prefix="><span class="term"><code class="option">--exclude-prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--exclude-prefix=">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--exec-delay="><span class="term"><code class="option">--exec-delay=</code></span><a class="headerlink" title="Permalink to this term" href="#--exec-delay=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="--exit"><span class="term"><code class="option">--exit</code></span><a class="headerlink" title="Permalink to this term" href="#--exit">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--exit-if-exists="><span class="term"><code class="option">--exit-if-exists=</code></span><a class="headerlink" title="Permalink to this term" href="#--exit-if-exists=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--export"><span class="term"><code class="option">--export</code></span><a class="headerlink" title="Permalink to this term" href="#--export">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--export-db"><span class="term"><code class="option">--export-db</code></span><a class="headerlink" title="Permalink to this term" href="#--export-db">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--export-prefix="><span class="term"><code class="option">--export-prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--export-prefix=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--field="><span class="term"><code class="option">--field=</code></span><a class="headerlink" title="Permalink to this term" href="#--field=">¶</a></dt><dd><p><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--file-size-max="><span class="term"><code class="option">--file-size-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--file-size-max=">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="--file="><span class="term"><code class="option">--file=</code></span><a class="headerlink" title="Permalink to this term" href="#--file=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--files-max="><span class="term"><code class="option">--files-max=</code></span><a class="headerlink" title="Permalink to this term" href="#--files-max=">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="--follow"><span class="term"><code class="option">--follow</code></span><a class="headerlink" title="Permalink to this term" href="#--follow">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--force"><span class="term"><code class="option">--force</code></span><a class="headerlink" title="Permalink to this term" href="#--force">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--freq"><span class="term"><code class="option">--freq</code></span><a class="headerlink" title="Permalink to this term" href="#--freq">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--from-pattern="><span class="term"><code class="option">--from-pattern=</code></span><a class="headerlink" title="Permalink to this term" href="#--from-pattern=">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--full"><span class="term"><code class="option">--full</code></span><a class="headerlink" title="Permalink to this term" href="#--full">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="--fuzz="><span class="term"><code class="option">--fuzz=</code></span><a class="headerlink" title="Permalink to this term" href="#--fuzz=">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--getter="><span class="term"><code class="option">--getter=</code></span><a class="headerlink" title="Permalink to this term" href="#--getter=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--gid="><span class="term"><code class="option">--gid=</code></span><a class="headerlink" title="Permalink to this term" href="#--gid=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--global"><span class="term"><code class="option">--global</code></span><a class="headerlink" title="Permalink to this term" href="#--global">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--halt"><span class="term"><code class="option">--halt</code></span><a class="headerlink" title="Permalink to this term" href="#--halt">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="--header"><span class="term"><code class="option">--header</code></span><a class="headerlink" title="Permalink to this term" href="#--header">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a>, <a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>, <a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--host="><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#--host=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--icon="><span class="term"><code class="option">--icon=</code></span><a class="headerlink" title="Permalink to this term" href="#--icon=">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--identifier="><span class="term"><code class="option">--identifier=</code></span><a class="headerlink" title="Permalink to this term" href="#--identifier=">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="--ignore-inhibitors"><span class="term"><code class="option">--ignore-inhibitors</code></span><a class="headerlink" title="Permalink to this term" href="#--ignore-inhibitors">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--image="><span class="term"><code class="option">--image=</code></span><a class="headerlink" title="Permalink to this term" href="#--image=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--init"><span class="term"><code class="option">--init</code></span><a class="headerlink" title="Permalink to this term" href="#--init">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--interface="><span class="term"><code class="option">--interface=</code></span><a class="headerlink" title="Permalink to this term" href="#--interface=">¶</a></dt><dd><p><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a></p></dd><dt id="--interval="><span class="term"><code class="option">--interval=</code></span><a class="headerlink" title="Permalink to this term" href="#--interval=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--iterations="><span class="term"><code class="option">--iterations=</code></span><a class="headerlink" title="Permalink to this term" href="#--iterations=">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="--job-mode="><span class="term"><code class="option">--job-mode=</code></span><a class="headerlink" title="Permalink to this term" href="#--job-mode=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--keep-unit"><span class="term"><code class="option">--keep-unit</code></span><a class="headerlink" title="Permalink to this term" href="#--keep-unit">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--kernel"><span class="term"><code class="option">--kernel</code></span><a class="headerlink" title="Permalink to this term" href="#--kernel">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--key="><span class="term"><code class="option">--key=</code></span><a class="headerlink" title="Permalink to this term" href="#--key=">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="--kill-who="><span class="term"><code class="option">--kill-who=</code></span><a class="headerlink" title="Permalink to this term" href="#--kill-who=">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--level-prefix="><span class="term"><code class="option">--level-prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--level-prefix=">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="--lines="><span class="term"><code class="option">--lines=</code></span><a class="headerlink" title="Permalink to this term" href="#--lines=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--link-journal="><span class="term"><code class="option">--link-journal=</code></span><a class="headerlink" title="Permalink to this term" href="#--link-journal=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--list"><span class="term"><code class="option">--list</code></span><a class="headerlink" title="Permalink to this term" href="#--list">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--list-boots"><span class="term"><code class="option">--list-boots</code></span><a class="headerlink" title="Permalink to this term" href="#--list-boots">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--list-catalog"><span class="term"><code class="option">--list-catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--list-catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--listen-http="><span class="term"><code class="option">--listen-http=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen-http=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--listen-https="><span class="term"><code class="option">--listen-https=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen-https=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--listen-raw="><span class="term"><code class="option">--listen-raw=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen-raw=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--listen="><span class="term"><code class="option">--listen=</code></span><a class="headerlink" title="Permalink to this term" href="#--listen=">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="--log-color="><span class="term"><code class="option">--log-color=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-color=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--log-level="><span class="term"><code class="option">--log-level=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-level=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--log-location="><span class="term"><code class="option">--log-location=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-location=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--log-priority="><span class="term"><code class="option">--log-priority=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-priority=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--log-target="><span class="term"><code class="option">--log-target=</code></span><a class="headerlink" title="Permalink to this term" href="#--log-target=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--machine="><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#--machine=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--match="><span class="term"><code class="option">--match=</code></span><a class="headerlink" title="Permalink to this term" href="#--match=">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--merge"><span class="term"><code class="option">--merge</code></span><a class="headerlink" title="Permalink to this term" href="#--merge">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--mode="><span class="term"><code class="option">--mode=</code></span><a class="headerlink" title="Permalink to this term" href="#--mode=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--multiple"><span class="term"><code class="option">--multiple</code></span><a class="headerlink" title="Permalink to this term" href="#--multiple">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--name="><span class="term"><code class="option">--name=</code></span><a class="headerlink" title="Permalink to this term" href="#--name=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--network-bridge="><span class="term"><code class="option">--network-bridge=</code></span><a class="headerlink" title="Permalink to this term" href="#--network-bridge=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--network-interface="><span class="term"><code class="option">--network-interface=</code></span><a class="headerlink" title="Permalink to this term" href="#--network-interface=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--network-macvlan="><span class="term"><code class="option">--network-macvlan=</code></span><a class="headerlink" title="Permalink to this term" href="#--network-macvlan=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--network-veth"><span class="term"><code class="option">--network-veth</code></span><a class="headerlink" title="Permalink to this term" href="#--network-veth">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--new-id128"><span class="term"><code class="option">--new-id128</code></span><a class="headerlink" title="Permalink to this term" href="#--new-id128">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--nice="><span class="term"><code class="option">--nice=</code></span><a class="headerlink" title="Permalink to this term" href="#--nice=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--no-block"><span class="term"><code class="option">--no-block</code></span><a class="headerlink" title="Permalink to this term" href="#--no-block">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--no-compress"><span class="term"><code class="option">--no-compress</code></span><a class="headerlink" title="Permalink to this term" href="#--no-compress">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--no-convert"><span class="term"><code class="option">--no-convert</code></span><a class="headerlink" title="Permalink to this term" href="#--no-convert">¶</a></dt><dd><p><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a></p></dd><dt id="--no-filter"><span class="term"><code class="option">--no-filter</code></span><a class="headerlink" title="Permalink to this term" href="#--no-filter">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--no-full"><span class="term"><code class="option">--no-full</code></span><a class="headerlink" title="Permalink to this term" href="#--no-full">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--no-legend"><span class="term"><code class="option">--no-legend</code></span><a class="headerlink" title="Permalink to this term" href="#--no-legend">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="--no-reload"><span class="term"><code class="option">--no-reload</code></span><a class="headerlink" title="Permalink to this term" href="#--no-reload">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--no-seal"><span class="term"><code class="option">--no-seal</code></span><a class="headerlink" title="Permalink to this term" href="#--no-seal">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--no-tail"><span class="term"><code class="option">--no-tail</code></span><a class="headerlink" title="Permalink to this term" href="#--no-tail">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--no-tty"><span class="term"><code class="option">--no-tty</code></span><a class="headerlink" title="Permalink to this term" href="#--no-tty">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="--no-wall"><span class="term"><code class="option">--no-wall</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wall">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a></p></dd><dt id="--no-wtmp"><span class="term"><code class="option">--no-wtmp</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wtmp">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="--order"><span class="term"><code class="option">--order</code></span><a class="headerlink" title="Permalink to this term" href="#--order">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--output"><span class="term"><code class="option">--output</code></span><a class="headerlink" title="Permalink to this term" href="#--output">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--output="><span class="term"><code class="option">--output=</code></span><a class="headerlink" title="Permalink to this term" href="#--output=">¶</a></dt><dd><p><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--pager-end"><span class="term"><code class="option">--pager-end</code></span><a class="headerlink" title="Permalink to this term" href="#--pager-end">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--parent-match="><span class="term"><code class="option">--parent-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--parent-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--path="><span class="term"><code class="option">--path=</code></span><a class="headerlink" title="Permalink to this term" href="#--path=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--personality="><span class="term"><code class="option">--personality=</code></span><a class="headerlink" title="Permalink to this term" href="#--personality=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--pid="><span class="term"><code class="option">--pid=</code></span><a class="headerlink" title="Permalink to this term" href="#--pid=">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--plain"><span class="term"><code class="option">--plain</code></span><a class="headerlink" title="Permalink to this term" href="#--plain">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--plymouth"><span class="term"><code class="option">--plymouth</code></span><a class="headerlink" title="Permalink to this term" href="#--plymouth">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--poweroff"><span class="term"><code class="option">--poweroff</code></span><a class="headerlink" title="Permalink to this term" href="#--poweroff">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="--prefix="><span class="term"><code class="option">--prefix=</code></span><a class="headerlink" title="Permalink to this term" href="#--prefix=">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--preset-mode="><span class="term"><code class="option">--preset-mode=</code></span><a class="headerlink" title="Permalink to this term" href="#--preset-mode=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--pretty"><span class="term"><code class="option">--pretty</code></span><a class="headerlink" title="Permalink to this term" href="#--pretty">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="--priority="><span class="term"><code class="option">--priority=</code></span><a class="headerlink" title="Permalink to this term" href="#--priority=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="--private-network"><span class="term"><code class="option">--private-network</code></span><a class="headerlink" title="Permalink to this term" href="#--private-network">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--privileged"><span class="term"><code class="option">--privileged</code></span><a class="headerlink" title="Permalink to this term" href="#--privileged">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a></p></dd><dt id="--property"><span class="term"><code class="option">--property</code></span><a class="headerlink" title="Permalink to this term" href="#--property">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--property-match="><span class="term"><code class="option">--property-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--property-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--property="><span class="term"><code class="option">--property=</code></span><a class="headerlink" title="Permalink to this term" href="#--property=">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--pss"><span class="term"><code class="option">--pss</code></span><a class="headerlink" title="Permalink to this term" href="#--pss">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--query"><span class="term"><code class="option">--query</code></span><a class="headerlink" title="Permalink to this term" href="#--query">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--query="><span class="term"><code class="option">--query=</code></span><a class="headerlink" title="Permalink to this term" href="#--query=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--quiet"><span class="term"><code class="option">--quiet</code></span><a class="headerlink" title="Permalink to this term" href="#--quiet">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--read-only"><span class="term"><code class="option">--read-only</code></span><a class="headerlink" title="Permalink to this term" href="#--read-only">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--readahead="><span class="term"><code class="option">--readahead=</code></span><a class="headerlink" title="Permalink to this term" href="#--readahead=">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--ready"><span class="term"><code class="option">--ready</code></span><a class="headerlink" title="Permalink to this term" href="#--ready">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--reboot"><span class="term"><code class="option">--reboot</code></span><a class="headerlink" title="Permalink to this term" href="#--reboot">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="--recursive"><span class="term"><code class="option">--recursive</code></span><a class="headerlink" title="Permalink to this term" href="#--recursive">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--register="><span class="term"><code class="option">--register=</code></span><a class="headerlink" title="Permalink to this term" href="#--register=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--rel"><span class="term"><code class="option">--rel</code></span><a class="headerlink" title="Permalink to this term" href="#--rel">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--reload"><span class="term"><code class="option">--reload</code></span><a class="headerlink" title="Permalink to this term" href="#--reload">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--remain-after-exit"><span class="term"><code class="option">--remain-after-exit</code></span><a class="headerlink" title="Permalink to this term" href="#--remain-after-exit">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--remove"><span class="term"><code class="option">--remove</code></span><a class="headerlink" title="Permalink to this term" href="#--remove">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="--require"><span class="term"><code class="option">--require</code></span><a class="headerlink" title="Permalink to this term" href="#--require">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--resolve-names="><span class="term"><code class="option">--resolve-names=</code></span><a class="headerlink" title="Permalink to this term" href="#--resolve-names=">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--reverse"><span class="term"><code class="option">--reverse</code></span><a class="headerlink" title="Permalink to this term" href="#--reverse">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--root"><span class="term"><code class="option">--root</code></span><a class="headerlink" title="Permalink to this term" href="#--root">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--root="><span class="term"><code class="option">--root=</code></span><a class="headerlink" title="Permalink to this term" href="#--root=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--runtime"><span class="term"><code class="option">--runtime</code></span><a class="headerlink" title="Permalink to this term" href="#--runtime">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--sample"><span class="term"><code class="option">--sample</code></span><a class="headerlink" title="Permalink to this term" href="#--sample">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--scale-x"><span class="term"><code class="option">--scale-x</code></span><a class="headerlink" title="Permalink to this term" href="#--scale-x">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--scale-y"><span class="term"><code class="option">--scale-y</code></span><a class="headerlink" title="Permalink to this term" href="#--scale-y">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="--scope"><span class="term"><code class="option">--scope</code></span><a class="headerlink" title="Permalink to this term" href="#--scope">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--seal"><span class="term"><code class="option">--seal</code></span><a class="headerlink" title="Permalink to this term" href="#--seal">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--selinux-apifs-context="><span class="term"><code class="option">--selinux-apifs-context=</code></span><a class="headerlink" title="Permalink to this term" href="#--selinux-apifs-context=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--selinux-context="><span class="term"><code class="option">--selinux-context=</code></span><a class="headerlink" title="Permalink to this term" href="#--selinux-context=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--send-sighup"><span class="term"><code class="option">--send-sighup</code></span><a class="headerlink" title="Permalink to this term" href="#--send-sighup">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--service-type="><span class="term"><code class="option">--service-type=</code></span><a class="headerlink" title="Permalink to this term" href="#--service-type=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--setenv="><span class="term"><code class="option">--setenv=</code></span><a class="headerlink" title="Permalink to this term" href="#--setenv=">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--setup-keys"><span class="term"><code class="option">--setup-keys</code></span><a class="headerlink" title="Permalink to this term" href="#--setup-keys">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--share-system"><span class="term"><code class="option">--share-system</code></span><a class="headerlink" title="Permalink to this term" href="#--share-system">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--show-cursor"><span class="term"><code class="option">--show-cursor</code></span><a class="headerlink" title="Permalink to this term" href="#--show-cursor">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--show-machine"><span class="term"><code class="option">--show-machine</code></span><a class="headerlink" title="Permalink to this term" href="#--show-machine">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--show-status="><span class="term"><code class="option">--show-status=</code></span><a class="headerlink" title="Permalink to this term" href="#--show-status=">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--show-types"><span class="term"><code class="option">--show-types</code></span><a class="headerlink" title="Permalink to this term" href="#--show-types">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--signal="><span class="term"><code class="option">--signal=</code></span><a class="headerlink" title="Permalink to this term" href="#--signal=">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--since="><span class="term"><code class="option">--since=</code></span><a class="headerlink" title="Permalink to this term" href="#--since=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--slice="><span class="term"><code class="option">--slice=</code></span><a class="headerlink" title="Permalink to this term" href="#--slice=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--start-exec-queue"><span class="term"><code class="option">--start-exec-queue</code></span><a class="headerlink" title="Permalink to this term" href="#--start-exec-queue">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--state="><span class="term"><code class="option">--state=</code></span><a class="headerlink" title="Permalink to this term" href="#--state=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="--static"><span class="term"><code class="option">--static</code></span><a class="headerlink" title="Permalink to this term" href="#--static">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="--status="><span class="term"><code class="option">--status=</code></span><a class="headerlink" title="Permalink to this term" href="#--status=">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="--stop-exec-queue"><span class="term"><code class="option">--stop-exec-queue</code></span><a class="headerlink" title="Permalink to this term" href="#--stop-exec-queue">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--subsystem-match="><span class="term"><code class="option">--subsystem-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--subsystem-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--subsystem-nomatch="><span class="term"><code class="option">--subsystem-nomatch=</code></span><a class="headerlink" title="Permalink to this term" href="#--subsystem-nomatch=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--suffix="><span class="term"><code class="option">--suffix=</code></span><a class="headerlink" title="Permalink to this term" href="#--suffix=">¶</a></dt><dd><p><a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a></p></dd><dt id="--sysname-match="><span class="term"><code class="option">--sysname-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--sysname-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--system"><span class="term"><code class="option">--system</code></span><a class="headerlink" title="Permalink to this term" href="#--system">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--tag-match="><span class="term"><code class="option">--tag-match=</code></span><a class="headerlink" title="Permalink to this term" href="#--tag-match=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--test"><span class="term"><code class="option">--test</code></span><a class="headerlink" title="Permalink to this term" href="#--test">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="--test="><span class="term"><code class="option">--test=</code></span><a class="headerlink" title="Permalink to this term" href="#--test=">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--timeout="><span class="term"><code class="option">--timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#--timeout=">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--tmpfs="><span class="term"><code class="option">--tmpfs=</code></span><a class="headerlink" title="Permalink to this term" href="#--tmpfs=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--to-pattern="><span class="term"><code class="option">--to-pattern=</code></span><a class="headerlink" title="Permalink to this term" href="#--to-pattern=">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="--transient"><span class="term"><code class="option">--transient</code></span><a class="headerlink" title="Permalink to this term" href="#--transient">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="--type="><span class="term"><code class="option">--type=</code></span><a class="headerlink" title="Permalink to this term" href="#--type=">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--udev"><span class="term"><code class="option">--udev</code></span><a class="headerlink" title="Permalink to this term" href="#--udev">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--uid="><span class="term"><code class="option">--uid=</code></span><a class="headerlink" title="Permalink to this term" href="#--uid=">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--unique"><span class="term"><code class="option">--unique</code></span><a class="headerlink" title="Permalink to this term" href="#--unique">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="--unit="><span class="term"><code class="option">--unit=</code></span><a class="headerlink" title="Permalink to this term" href="#--unit=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--until="><span class="term"><code class="option">--until=</code></span><a class="headerlink" title="Permalink to this term" href="#--until=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--update"><span class="term"><code class="option">--update</code></span><a class="headerlink" title="Permalink to this term" href="#--update">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--update-catalog"><span class="term"><code class="option">--update-catalog</code></span><a class="headerlink" title="Permalink to this term" href="#--update-catalog">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--url="><span class="term"><code class="option">--url=</code></span><a class="headerlink" title="Permalink to this term" href="#--url=">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="--user"><span class="term"><code class="option">--user</code></span><a class="headerlink" title="Permalink to this term" href="#--user">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="--user-unit="><span class="term"><code class="option">--user-unit=</code></span><a class="headerlink" title="Permalink to this term" href="#--user-unit=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--user="><span class="term"><code class="option">--user=</code></span><a class="headerlink" title="Permalink to this term" href="#--user=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--uuid="><span class="term"><code class="option">--uuid=</code></span><a class="headerlink" title="Permalink to this term" href="#--uuid=">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="--verbose"><span class="term"><code class="option">--verbose</code></span><a class="headerlink" title="Permalink to this term" href="#--verbose">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--verify"><span class="term"><code class="option">--verify</code></span><a class="headerlink" title="Permalink to this term" href="#--verify">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--verify-key="><span class="term"><code class="option">--verify-key=</code></span><a class="headerlink" title="Permalink to this term" href="#--verify-key=">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a>, <a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>, <a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="--vm"><span class="term"><code class="option">--vm</code></span><a class="headerlink" title="Permalink to this term" href="#--vm">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a></p></dd><dt id="--wall"><span class="term"><code class="option">--wall</code></span><a class="headerlink" title="Permalink to this term" href="#--wall">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--watch"><span class="term"><code class="option">--watch</code></span><a class="headerlink" title="Permalink to this term" href="#--watch">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="--what="><span class="term"><code class="option">--what=</code></span><a class="headerlink" title="Permalink to this term" href="#--what=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--who="><span class="term"><code class="option">--who=</code></span><a class="headerlink" title="Permalink to this term" href="#--who=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--why="><span class="term"><code class="option">--why=</code></span><a class="headerlink" title="Permalink to this term" href="#--why=">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="--wtmp-only"><span class="term"><code class="option">--wtmp-only</code></span><a class="headerlink" title="Permalink to this term" href="#--wtmp-only">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="-1"><span class="term"><code class="constant">-1</code></span><a class="headerlink" title="Permalink to this term" href="#-1">¶</a></dt><dd><p><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a></p></dd><dt id="-A"><span class="term"><code class="option">-A</code></span><a class="headerlink" title="Permalink to this term" href="#-A">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-C"><span class="term"><code class="option">-C</code></span><a class="headerlink" title="Permalink to this term" href="#-C">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="-D"><span class="term"><code class="option">-D</code></span><a class="headerlink" title="Permalink to this term" href="#-D">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-E"><span class="term"><code class="option">-E</code></span><a class="headerlink" title="Permalink to this term" href="#-E">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-F"><span class="term"><code class="option">-F</code></span><a class="headerlink" title="Permalink to this term" href="#-F">¶</a></dt><dd><p><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="-H"><span class="term"><code class="option">-H</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="-L"><span class="term"><code class="option">-L</code></span><a class="headerlink" title="Permalink to this term" href="#-L">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-M"><span class="term"><code class="option">-M</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="-N"><span class="term"><code class="option">-N</code></span><a class="headerlink" title="Permalink to this term" href="#-N">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-P"><span class="term"><code class="option">-P</code></span><a class="headerlink" title="Permalink to this term" href="#-P">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-R"><span class="term"><code class="option">-R</code></span><a class="headerlink" title="Permalink to this term" href="#-R">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-S"><span class="term"><code class="option">-S</code></span><a class="headerlink" title="Permalink to this term" href="#-S">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-Z"><span class="term"><code class="option">-Z</code></span><a class="headerlink" title="Permalink to this term" href="#-Z">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-a"><span class="term"><code class="option">-a</code></span><a class="headerlink" title="Permalink to this term" href="#-a">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-b"><span class="term"><code class="option">-b</code></span><a class="headerlink" title="Permalink to this term" href="#-b">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-c"><span class="term"><code class="option">-c</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-d"><span class="term"><code class="option">-d</code></span><a class="headerlink" title="Permalink to this term" href="#-d">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-e"><span class="term"><code class="option">-e</code></span><a class="headerlink" title="Permalink to this term" href="#-e">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-f"><span class="term"><code class="option">-f</code></span><a class="headerlink" title="Permalink to this term" href="#-f">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="-g"><span class="term"><code class="option">-g</code></span><a class="headerlink" title="Permalink to this term" href="#-g">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-h"><span class="term"><code class="option">-h</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a>, <a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a>, <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a>, <a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a>, <a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a>, <a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a>, <a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a>, <a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-i"><span class="term"><code class="option">-i</code></span><a class="headerlink" title="Permalink to this term" href="#-i">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-j"><span class="term"><code class="option">-j</code></span><a class="headerlink" title="Permalink to this term" href="#-j">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="-k"><span class="term"><code class="option">-k</code></span><a class="headerlink" title="Permalink to this term" href="#-k">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-l"><span class="term"><code class="option">-l</code></span><a class="headerlink" title="Permalink to this term" href="#-l">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-m"><span class="term"><code class="option">-m</code></span><a class="headerlink" title="Permalink to this term" href="#-m">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-n"><span class="term"><code class="option">-n</code></span><a class="headerlink" title="Permalink to this term" href="#-n">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-o"><span class="term"><code class="option">-o</code></span><a class="headerlink" title="Permalink to this term" href="#-o">¶</a></dt><dd><p><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="-p"><span class="term"><code class="option">-p</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a>, <a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-q"><span class="term"><code class="option">-q</code></span><a class="headerlink" title="Permalink to this term" href="#-q">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-r"><span class="term"><code class="option">-r</code></span><a class="headerlink" title="Permalink to this term" href="#-r">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-s"><span class="term"><code class="option">-s</code></span><a class="headerlink" title="Permalink to this term" href="#-s">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-t"><span class="term"><code class="option">-t</code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a>, <a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-u"><span class="term"><code class="option">-u</code></span><a class="headerlink" title="Permalink to this term" href="#-u">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-v"><span class="term"><code class="option">-v</code></span><a class="headerlink" title="Permalink to this term" href="#-v">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-w"><span class="term"><code class="option">-w</code></span><a class="headerlink" title="Permalink to this term" href="#-w">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="-x"><span class="term"><code class="option">-x</code></span><a class="headerlink" title="Permalink to this term" href="#-x">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="-y"><span class="term"><code class="option">-y</code></span><a class="headerlink" title="Permalink to this term" href="#-y">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="auto"><span class="term"><code class="constant">auto</code></span><a class="headerlink" title="Permalink to this term" href="#auto">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="cat"><span class="term"><code class="option">cat</code></span><a class="headerlink" title="Permalink to this term" href="#cat">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="closed"><span class="term"><code class="option">closed</code></span><a class="headerlink" title="Permalink to this term" href="#closed">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="driver"><span class="term"><code class="option">driver</code></span><a class="headerlink" title="Permalink to this term" href="#driver">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="export"><span class="term"><code class="option">export</code></span><a class="headerlink" title="Permalink to this term" href="#export">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="hibernate"><span class="term"><code class="option">hibernate</code></span><a class="headerlink" title="Permalink to this term" href="#hibernate">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="hybrid-sleep"><span class="term"><code class="option">hybrid-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#hybrid-sleep">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="journal"><span class="term"><code class="option">journal</code></span><a class="headerlink" title="Permalink to this term" href="#journal">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="json"><span class="term"><code class="option">json</code></span><a class="headerlink" title="Permalink to this term" href="#json">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="json-pretty"><span class="term"><code class="option">json-pretty</code></span><a class="headerlink" title="Permalink to this term" href="#json-pretty">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="json-sse"><span class="term"><code class="option">json-sse</code></span><a class="headerlink" title="Permalink to this term" href="#json-sse">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="kernel"><span class="term"><code class="option">kernel</code></span><a class="headerlink" title="Permalink to this term" href="#kernel">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="short"><span class="term"><code class="option">short</code></span><a class="headerlink" title="Permalink to this term" href="#short">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="short-iso"><span class="term"><code class="option">short-iso</code></span><a class="headerlink" title="Permalink to this term" href="#short-iso">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="short-monotonic"><span class="term"><code class="option">short-monotonic</code></span><a class="headerlink" title="Permalink to this term" href="#short-monotonic">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="short-precise"><span class="term"><code class="option">short-precise</code></span><a class="headerlink" title="Permalink to this term" href="#short-precise">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="stdout"><span class="term"><code class="option">stdout</code></span><a class="headerlink" title="Permalink to this term" href="#stdout">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="strict"><span class="term"><code class="option">strict</code></span><a class="headerlink" title="Permalink to this term" href="#strict">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="suspend"><span class="term"><code class="option">suspend</code></span><a class="headerlink" title="Permalink to this term" href="#suspend">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="syslog"><span class="term"><code class="option">syslog</code></span><a class="headerlink" title="Permalink to this term" href="#syslog">¶</a></dt><dd><p><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="verbose"><span class="term"><code class="option">verbose</code></span><a class="headerlink" title="Permalink to this term" href="#verbose">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214181001584"></a><h2 id="Constants">Constants<a class="headerlink" title="Permalink to this headline" href="#Constants">¶</a></h2><p>Various constant used and/or defined by systemd.</p><div class="variablelist"><a name="constants"></a><dl class="variablelist"><dt id="-0"><span class="term"><code class="constant">-0</code></span><a class="headerlink" title="Permalink to this term" href="#-0">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="-1"><span class="term"><code class="constant">-1</code></span><a class="headerlink" title="Permalink to this term" href="#-1">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>, <a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="-ECHILD"><span class="term"><code class="constant">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="-ENODATA"><span class="term"><code class="constant">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p><a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a></p></dd><dt id="-ENXIO"><span class="term"><code class="constant">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="0"><span class="term"><code class="constant">0</code></span><a class="headerlink" title="Permalink to this term" href="#0">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="1"><span class="term"><code class="constant">1</code></span><a class="headerlink" title="Permalink to this term" href="#1">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="2"><span class="term"><code class="constant">2</code></span><a class="headerlink" title="Permalink to this term" href="#2">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="AF_INET"><span class="term"><code class="constant">AF_INET</code></span><a class="headerlink" title="Permalink to this term" href="#AF_INET">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="AF_INET6"><span class="term"><code class="constant">AF_INET6</code></span><a class="headerlink" title="Permalink to this term" href="#AF_INET6">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="AF_NETLINK"><span class="term"><code class="constant">AF_NETLINK</code></span><a class="headerlink" title="Permalink to this term" href="#AF_NETLINK">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="AF_UNIX"><span class="term"><code class="constant">AF_UNIX</code></span><a class="headerlink" title="Permalink to this term" href="#AF_UNIX">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="AF_UNSPEC"><span class="term"><code class="constant">AF_UNSPEC</code></span><a class="headerlink" title="Permalink to this term" href="#AF_UNSPEC">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a></p></dd><dt id="CAP_DAC_OVERRIDE"><span class="term"><code class="constant">CAP_DAC_OVERRIDE</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_DAC_OVERRIDE">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CAP_MKNOD"><span class="term"><code class="constant">CAP_MKNOD</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_MKNOD">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CAP_SYS_ADMIN"><span class="term"><code class="constant">CAP_SYS_ADMIN</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_SYS_ADMIN">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CAP_SYS_PTRACE"><span class="term"><code class="constant">CAP_SYS_PTRACE</code></span><a class="headerlink" title="Permalink to this term" href="#CAP_SYS_PTRACE">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="CLOCK_BOOTTIME_ALARM"><span class="term"><code class="constant">CLOCK_BOOTTIME_ALARM</code></span><a class="headerlink" title="Permalink to this term" href="#CLOCK_BOOTTIME_ALARM">¶</a></dt><dd><p><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="CLOCK_MONOTONIC"><span class="term"><code class="constant">CLOCK_MONOTONIC</code></span><a class="headerlink" title="Permalink to this term" href="#CLOCK_MONOTONIC">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="CLOCK_REALTIME"><span class="term"><code class="constant">CLOCK_REALTIME</code></span><a class="headerlink" title="Permalink to this term" href="#CLOCK_REALTIME">¶</a></dt><dd><p><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a></p></dd><dt id="EACCES"><span class="term"><code class="constant">EACCES</code></span><a class="headerlink" title="Permalink to this term" href="#EACCES">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="EPERM"><span class="term"><code class="constant">EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#EPERM">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="EUCLEAN"><span class="term"><code class="constant">EUCLEAN</code></span><a class="headerlink" title="Permalink to this term" href="#EUCLEAN">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="LOG_ALERT"><span class="term"><code class="constant">LOG_ALERT</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_ALERT">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_CRIT"><span class="term"><code class="constant">LOG_CRIT</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_CRIT">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_DEBUG"><span class="term"><code class="constant">LOG_DEBUG</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_DEBUG">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_EMERG"><span class="term"><code class="constant">LOG_EMERG</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_EMERG">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_ERR"><span class="term"><code class="constant">LOG_ERR</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_ERR">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_INFO"><span class="term"><code class="constant">LOG_INFO</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_INFO">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_NOTICE"><span class="term"><code class="constant">LOG_NOTICE</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_NOTICE">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="LOG_WARNING"><span class="term"><code class="constant">LOG_WARNING</code></span><a class="headerlink" title="Permalink to this term" href="#LOG_WARNING">¶</a></dt><dd><p><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="NUL"><span class="term"><code class="constant">NUL</code></span><a class="headerlink" title="Permalink to this term" href="#NUL">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a>, <a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="NULL"><span class="term"><code class="constant">NULL</code></span><a class="headerlink" title="Permalink to this term" href="#NULL">¶</a></dt><dd><p><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a>, <a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>, <a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a>, <a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>, <a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a></p></dd><dt id="O_NONBLOCK"><span class="term"><code class="constant">O_NONBLOCK</code></span><a class="headerlink" title="Permalink to this term" href="#O_NONBLOCK">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="POLLIN"><span class="term"><code class="constant">POLLIN</code></span><a class="headerlink" title="Permalink to this term" href="#POLLIN">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a></p></dd><dt id="POLLOUT"><span class="term"><code class="constant">POLLOUT</code></span><a class="headerlink" title="Permalink to this term" href="#POLLOUT">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_AUDIT_LOGIN_UID"><span class="term"><code class="constant">SD_BUS_CREDS_AUDIT_LOGIN_UID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_AUDIT_LOGIN_UID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_AUDIT_SESSION_ID"><span class="term"><code class="constant">SD_BUS_CREDS_AUDIT_SESSION_ID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_AUDIT_SESSION_ID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_BOUNDING_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_BOUNDING_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_BOUNDING_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_CGROUP"><span class="term"><code class="constant">SD_BUS_CREDS_CGROUP</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_CGROUP">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_CMDLINE"><span class="term"><code class="constant">SD_BUS_CREDS_CMDLINE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_CMDLINE">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_COMM"><span class="term"><code class="constant">SD_BUS_CREDS_COMM</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_COMM">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_EFFECTIVE_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_EFFECTIVE_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_EFFECTIVE_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_EXE"><span class="term"><code class="constant">SD_BUS_CREDS_EXE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_EXE">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_GID"><span class="term"><code class="constant">SD_BUS_CREDS_GID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_GID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_INHERITABLE_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_INHERITABLE_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_INHERITABLE_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_OWNER_UID"><span class="term"><code class="constant">SD_BUS_CREDS_OWNER_UID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_OWNER_UID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_PERMITTED_CAPS"><span class="term"><code class="constant">SD_BUS_CREDS_PERMITTED_CAPS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_PERMITTED_CAPS">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_PID"><span class="term"><code class="constant">SD_BUS_CREDS_PID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_PID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_PID_STARTTIME"><span class="term"><code class="constant">SD_BUS_CREDS_PID_STARTTIME</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_PID_STARTTIME">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_SELINUX_CONTEXT"><span class="term"><code class="constant">SD_BUS_CREDS_SELINUX_CONTEXT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_SELINUX_CONTEXT">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_SESSION"><span class="term"><code class="constant">SD_BUS_CREDS_SESSION</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_SESSION">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_SLICE"><span class="term"><code class="constant">SD_BUS_CREDS_SLICE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_SLICE">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_TID"><span class="term"><code class="constant">SD_BUS_CREDS_TID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_TID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_TID_COMM"><span class="term"><code class="constant">SD_BUS_CREDS_TID_COMM</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_TID_COMM">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_UID"><span class="term"><code class="constant">SD_BUS_CREDS_UID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_UID">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_UNIQUE_NAME"><span class="term"><code class="constant">SD_BUS_CREDS_UNIQUE_NAME</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_UNIQUE_NAME">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_UNIT"><span class="term"><code class="constant">SD_BUS_CREDS_UNIT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_UNIT">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_USER_UNIT"><span class="term"><code class="constant">SD_BUS_CREDS_USER_UNIT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_USER_UNIT">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_CREDS_WELL_KNOWN_NAMES"><span class="term"><code class="constant">SD_BUS_CREDS_WELL_KNOWN_NAMES</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_CREDS_WELL_KNOWN_NAMES">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_ACCESS_DENIED"><span class="term"><code class="constant">SD_BUS_ERROR_ACCESS_DENIED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_ACCESS_DENIED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_ADDRESS_IN_USE"><span class="term"><code class="constant">SD_BUS_ERROR_ADDRESS_IN_USE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_ADDRESS_IN_USE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_AUTH_FAILED"><span class="term"><code class="constant">SD_BUS_ERROR_AUTH_FAILED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_AUTH_FAILED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_BAD_ADDRESS"><span class="term"><code class="constant">SD_BUS_ERROR_BAD_ADDRESS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_BAD_ADDRESS">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_DISCONNECTED"><span class="term"><code class="constant">SD_BUS_ERROR_DISCONNECTED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_DISCONNECTED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_FAILED"><span class="term"><code class="constant">SD_BUS_ERROR_FAILED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_FAILED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_FILE_EXISTS"><span class="term"><code class="constant">SD_BUS_ERROR_FILE_EXISTS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_FILE_EXISTS">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_FILE_NOT_FOUND"><span class="term"><code class="constant">SD_BUS_ERROR_FILE_NOT_FOUND</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_FILE_NOT_FOUND">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_INCONSISTENT_MESSAGE"><span class="term"><code class="constant">SD_BUS_ERROR_INCONSISTENT_MESSAGE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_INCONSISTENT_MESSAGE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_INVALID_ARGS"><span class="term"><code class="constant">SD_BUS_ERROR_INVALID_ARGS</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_INVALID_ARGS">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_INVALID_SIGNATURE"><span class="term"><code class="constant">SD_BUS_ERROR_INVALID_SIGNATURE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_INVALID_SIGNATURE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_IO_ERROR"><span class="term"><code class="constant">SD_BUS_ERROR_IO_ERROR</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_IO_ERROR">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_LIMITS_EXCEEDED"><span class="term"><code class="constant">SD_BUS_ERROR_LIMITS_EXCEEDED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_LIMITS_EXCEEDED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_MAKE_CONST(name, message)"><span class="term"><code class="constant">SD_BUS_ERROR_MAKE_CONST(<em class="replaceable"><code>name</code></em>, <em class="replaceable"><code>message</code></em>)</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_MAKE_CONST(name,%20message)">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_MATCH_RULE_INVALID"><span class="term"><code class="constant">SD_BUS_ERROR_MATCH_RULE_INVALID</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_MATCH_RULE_INVALID">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_MATCH_RULE_NOT_FOUND"><span class="term"><code class="constant">SD_BUS_ERROR_MATCH_RULE_NOT_FOUND</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_MATCH_RULE_NOT_FOUND">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NAME_HAS_NO_OWNER"><span class="term"><code class="constant">SD_BUS_ERROR_NAME_HAS_NO_OWNER</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NAME_HAS_NO_OWNER">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NOT_SUPPORTED"><span class="term"><code class="constant">SD_BUS_ERROR_NOT_SUPPORTED</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NOT_SUPPORTED">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_MEMORY"><span class="term"><code class="constant">SD_BUS_ERROR_NO_MEMORY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_MEMORY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_NETWORK"><span class="term"><code class="constant">SD_BUS_ERROR_NO_NETWORK</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_NETWORK">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_REPLY"><span class="term"><code class="constant">SD_BUS_ERROR_NO_REPLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_REPLY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NO_SERVER"><span class="term"><code class="constant">SD_BUS_ERROR_NO_SERVER</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NO_SERVER">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_NULL"><span class="term"><code class="constant">SD_BUS_ERROR_NULL</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_NULL">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_PROPERTY_READ_ONLY"><span class="term"><code class="constant">SD_BUS_ERROR_PROPERTY_READ_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_PROPERTY_READ_ONLY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_SERVICE_UNKNOWN"><span class="term"><code class="constant">SD_BUS_ERROR_SERVICE_UNKNOWN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_SERVICE_UNKNOWN">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_TIMEOUT"><span class="term"><code class="constant">SD_BUS_ERROR_TIMEOUT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_TIMEOUT">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN"><span class="term"><code class="constant">SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_INTERFACE"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_INTERFACE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_INTERFACE">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_METHOD"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_METHOD</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_METHOD">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_OBJECT"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_OBJECT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_OBJECT">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_ERROR_UNKNOWN_PROPERTY"><span class="term"><code class="constant">SD_BUS_ERROR_UNKNOWN_PROPERTY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_ERROR_UNKNOWN_PROPERTY">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_ARRAY"><span class="term"><code class="constant">SD_BUS_TYPE_ARRAY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_ARRAY">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_BOOLEAN"><span class="term"><code class="constant">SD_BUS_TYPE_BOOLEAN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_BOOLEAN">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_BYTE"><span class="term"><code class="constant">SD_BUS_TYPE_BYTE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_BYTE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_DICT_ENTRY_BEGIN"><span class="term"><code class="constant">SD_BUS_TYPE_DICT_ENTRY_BEGIN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_DICT_ENTRY_BEGIN">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_DICT_ENTRY_END"><span class="term"><code class="constant">SD_BUS_TYPE_DICT_ENTRY_END</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_DICT_ENTRY_END">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_DOUBLE"><span class="term"><code class="constant">SD_BUS_TYPE_DOUBLE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_DOUBLE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_INT16"><span class="term"><code class="constant">SD_BUS_TYPE_INT16</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_INT16">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_INT32"><span class="term"><code class="constant">SD_BUS_TYPE_INT32</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_INT32">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_INT64"><span class="term"><code class="constant">SD_BUS_TYPE_INT64</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_INT64">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_OBJECT_PATH"><span class="term"><code class="constant">SD_BUS_TYPE_OBJECT_PATH</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_OBJECT_PATH">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_SIGNATURE"><span class="term"><code class="constant">SD_BUS_TYPE_SIGNATURE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_SIGNATURE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_STRING"><span class="term"><code class="constant">SD_BUS_TYPE_STRING</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_STRING">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_STRUCT_BEGIN"><span class="term"><code class="constant">SD_BUS_TYPE_STRUCT_BEGIN</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_STRUCT_BEGIN">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_STRUCT_END"><span class="term"><code class="constant">SD_BUS_TYPE_STRUCT_END</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_STRUCT_END">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UINT16"><span class="term"><code class="constant">SD_BUS_TYPE_UINT16</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UINT16">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UINT32"><span class="term"><code class="constant">SD_BUS_TYPE_UINT32</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UINT32">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UINT64"><span class="term"><code class="constant">SD_BUS_TYPE_UINT64</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UINT64">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_UNIX_FD"><span class="term"><code class="constant">SD_BUS_TYPE_UNIX_FD</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_UNIX_FD">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a></p></dd><dt id="SD_BUS_TYPE_VARIANT"><span class="term"><code class="constant">SD_BUS_TYPE_VARIANT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_TYPE_VARIANT">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_APPEND"><span class="term"><code class="constant">SD_JOURNAL_APPEND</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_APPEND">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_CURRENT_USER"><span class="term"><code class="constant">SD_JOURNAL_CURRENT_USER</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_CURRENT_USER">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_INVALIDATE"><span class="term"><code class="constant">SD_JOURNAL_INVALIDATE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_INVALIDATE">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_LOCAL_ONLY"><span class="term"><code class="constant">SD_JOURNAL_LOCAL_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_LOCAL_ONLY">¶</a></dt><dd><p><a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a>, <a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_NOP"><span class="term"><code class="constant">SD_JOURNAL_NOP</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_NOP">¶</a></dt><dd><p><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_RUNTIME_ONLY"><span class="term"><code class="constant">SD_JOURNAL_RUNTIME_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_RUNTIME_ONLY">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_SYSTEM"><span class="term"><code class="constant">SD_JOURNAL_SYSTEM</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_SYSTEM">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_JOURNAL_SYSTEM_ONLY"><span class="term"><code class="constant">SD_JOURNAL_SYSTEM_ONLY</code></span><a class="headerlink" title="Permalink to this term" href="#SD_JOURNAL_SYSTEM_ONLY">¶</a></dt><dd><p><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a></p></dd><dt id="SD_WARNING"><span class="term"><code class="constant">SD_WARNING</code></span><a class="headerlink" title="Permalink to this term" href="#SD_WARNING">¶</a></dt><dd><p><a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a></p></dd><dt id="SIGABRT"><span class="term"><code class="constant">SIGABRT</code></span><a class="headerlink" title="Permalink to this term" href="#SIGABRT">¶</a></dt><dd><p><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SIGHUP"><span class="term"><code class="constant">SIGHUP</code></span><a class="headerlink" title="Permalink to this term" href="#SIGHUP">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SIGINT"><span class="term"><code class="constant">SIGINT</code></span><a class="headerlink" title="Permalink to this term" href="#SIGINT">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="SIGKILL"><span class="term"><code class="constant">SIGKILL</code></span><a class="headerlink" title="Permalink to this term" href="#SIGKILL">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="SIGPIPE"><span class="term"><code class="constant">SIGPIPE</code></span><a class="headerlink" title="Permalink to this term" href="#SIGPIPE">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a></p></dd><dt id="SIGPWR"><span class="term"><code class="constant">SIGPWR</code></span><a class="headerlink" title="Permalink to this term" href="#SIGPWR">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+0"><span class="term"><code class="constant">SIGRTMIN+0</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+0">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+1"><span class="term"><code class="constant">SIGRTMIN+1</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+1">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+13"><span class="term"><code class="constant">SIGRTMIN+13</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+13">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+14"><span class="term"><code class="constant">SIGRTMIN+14</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+14">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+15"><span class="term"><code class="constant">SIGRTMIN+15</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+15">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+16"><span class="term"><code class="constant">SIGRTMIN+16</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+16">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+2"><span class="term"><code class="constant">SIGRTMIN+2</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+2">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+20"><span class="term"><code class="constant">SIGRTMIN+20</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+20">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+21"><span class="term"><code class="constant">SIGRTMIN+21</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+21">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+22"><span class="term"><code class="constant">SIGRTMIN+22</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+22">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+23"><span class="term"><code class="constant">SIGRTMIN+23</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+23">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+24"><span class="term"><code class="constant">SIGRTMIN+24</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+24">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+26"><span class="term"><code class="constant">SIGRTMIN+26</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+26">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+27"><span class="term"><code class="constant">SIGRTMIN+27</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+27">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+28"><span class="term"><code class="constant">SIGRTMIN+28</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+28">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+29"><span class="term"><code class="constant">SIGRTMIN+29</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+29">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+3"><span class="term"><code class="constant">SIGRTMIN+3</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+3">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+4"><span class="term"><code class="constant">SIGRTMIN+4</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+4">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+5"><span class="term"><code class="constant">SIGRTMIN+5</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+5">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGRTMIN+6"><span class="term"><code class="constant">SIGRTMIN+6</code></span><a class="headerlink" title="Permalink to this term" href="#SIGRTMIN+6">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGSTOP"><span class="term"><code class="constant">SIGSTOP</code></span><a class="headerlink" title="Permalink to this term" href="#SIGSTOP">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="SIGSYS"><span class="term"><code class="constant">SIGSYS</code></span><a class="headerlink" title="Permalink to this term" href="#SIGSYS">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="SIGTERM"><span class="term"><code class="constant">SIGTERM</code></span><a class="headerlink" title="Permalink to this term" href="#SIGTERM">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="SIGUSR1"><span class="term"><code class="constant">SIGUSR1</code></span><a class="headerlink" title="Permalink to this term" href="#SIGUSR1">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGUSR2"><span class="term"><code class="constant">SIGUSR2</code></span><a class="headerlink" title="Permalink to this term" href="#SIGUSR2">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIGWINCH"><span class="term"><code class="constant">SIGWINCH</code></span><a class="headerlink" title="Permalink to this term" href="#SIGWINCH">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="SIG_DFL"><span class="term"><code class="constant">SIG_DFL</code></span><a class="headerlink" title="Permalink to this term" href="#SIG_DFL">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a></p></dd><dt id="SOCK_DGRAM"><span class="term"><code class="constant">SOCK_DGRAM</code></span><a class="headerlink" title="Permalink to this term" href="#SOCK_DGRAM">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SOCK_SEQPACKET"><span class="term"><code class="constant">SOCK_SEQPACKET</code></span><a class="headerlink" title="Permalink to this term" href="#SOCK_SEQPACKET">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="SOCK_STREAM"><span class="term"><code class="constant">SOCK_STREAM</code></span><a class="headerlink" title="Permalink to this term" href="#SOCK_STREAM">¶</a></dt><dd><p><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="_SD_BUS_CREDS_ALL"><span class="term"><code class="constant">_SD_BUS_CREDS_ALL</code></span><a class="headerlink" title="Permalink to this term" href="#_SD_BUS_CREDS_ALL">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a></p></dd><dt id="all"><span class="term"><code class="constant">all</code></span><a class="headerlink" title="Permalink to this term" href="#all">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="application/event-stream"><span class="term"><code class="constant">application/event-stream</code></span><a class="headerlink" title="Permalink to this term" href="#application/event-stream">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="application/json"><span class="term"><code class="constant">application/json</code></span><a class="headerlink" title="Permalink to this term" href="#application/json">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="application/vnd.fdo.journal"><span class="term"><code class="constant">application/vnd.fdo.journal</code></span><a class="headerlink" title="Permalink to this term" href="#application/vnd.fdo.journal">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="arm"><span class="term"><code class="constant">arm</code></span><a class="headerlink" title="Permalink to this term" href="#arm">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="auto"><span class="term"><code class="constant">auto</code></span><a class="headerlink" title="Permalink to this term" href="#auto">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="early"><span class="term"><code class="constant">early</code></span><a class="headerlink" title="Permalink to this term" href="#early">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="false"><span class="term"><code class="constant">false</code></span><a class="headerlink" title="Permalink to this term" href="#false">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="late"><span class="term"><code class="constant">late</code></span><a class="headerlink" title="Permalink to this term" href="#late">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="libsystemd"><span class="term"><code class="constant">libsystemd</code></span><a class="headerlink" title="Permalink to this term" href="#libsystemd">¶</a></dt><dd><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>, <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>, <a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a>, <a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a>, <a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a>, <a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a>, <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a>, <a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a>, <a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="sd_journal_add_match.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_match</span>(3)</span></a>, <a href="sd_journal_get_catalog.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog</span>(3)</span></a>, <a href="sd_journal_get_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cursor</span>(3)</span></a>, <a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data</span>(3)</span></a>, <a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a>, <a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a>, <a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a>, <a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a>, <a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a>, <a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a>, <a href="sd_journal_query_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_query_unique</span>(3)</span></a>, <a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a>, <a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a>, <a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>, <a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a>, <a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>, <a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>, <a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a>, <a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a>, <a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a>, <a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a></p></dd><dt id="libsystemd-bus"><span class="term"><code class="constant">libsystemd-bus</code></span><a class="headerlink" title="Permalink to this term" href="#libsystemd-bus">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a></p></dd><dt id="m"><span class="term"><code class="constant">m</code></span><a class="headerlink" title="Permalink to this term" href="#m">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="name"><span class="term"><code class="constant">name</code></span><a class="headerlink" title="Permalink to this term" href="#name">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="native"><span class="term"><code class="constant">native</code></span><a class="headerlink" title="Permalink to this term" href="#native">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="never"><span class="term"><code class="constant">never</code></span><a class="headerlink" title="Permalink to this term" href="#never">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="path"><span class="term"><code class="constant">path</code></span><a class="headerlink" title="Permalink to this term" href="#path">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="property"><span class="term"><code class="constant">property</code></span><a class="headerlink" title="Permalink to this term" href="#property">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="r"><span class="term"><code class="constant">r</code></span><a class="headerlink" title="Permalink to this term" href="#r">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="simple"><span class="term"><code class="constant">simple</code></span><a class="headerlink" title="Permalink to this term" href="#simple">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="symlink"><span class="term"><code class="constant">symlink</code></span><a class="headerlink" title="Permalink to this term" href="#symlink">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="text/plain"><span class="term"><code class="constant">text/plain</code></span><a class="headerlink" title="Permalink to this term" href="#text/plain">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="true"><span class="term"><code class="constant">true</code></span><a class="headerlink" title="Permalink to this term" href="#true">¶</a></dt><dd><p><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a></p></dd><dt id="w"><span class="term"><code class="constant">w</code></span><a class="headerlink" title="Permalink to this term" href="#w">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="x32"><span class="term"><code class="constant">x32</code></span><a class="headerlink" title="Permalink to this term" href="#x32">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="x86"><span class="term"><code class="constant">x86</code></span><a class="headerlink" title="Permalink to this term" href="#x86">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="x86-64"><span class="term"><code class="constant">x86-64</code></span><a class="headerlink" title="Permalink to this term" href="#x86-64">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="~"><span class="term"><code class="constant">~</code></span><a class="headerlink" title="Permalink to this term" href="#~">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214180569680"></a><h2 id="Miscellaneous options and directives">Miscellaneous options and directives<a class="headerlink" title="Permalink to this headline" href="#Miscellaneous%20options%20and%20directives">¶</a></h2><p>Other configuration elements which don't fit in
+ any of the above groups.</p><div class="variablelist"><a name="miscellaneous"></a><dl class="variablelist"><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code></span><a class="headerlink" title="Permalink to this term" href="#%24LISTEN_FDS">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="-EADDRINUSE"><span class="term"><code class="varname">-EADDRINUSE</code></span><a class="headerlink" title="Permalink to this term" href="#-EADDRINUSE">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-EALREADY"><span class="term"><code class="varname">-EALREADY</code></span><a class="headerlink" title="Permalink to this term" href="#-EALREADY">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-ECHILD"><span class="term"><code class="constant">-ECHILD</code></span><a class="headerlink" title="Permalink to this term" href="#-ECHILD">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="-EEXIST"><span class="term"><code class="varname">-EEXIST</code></span><a class="headerlink" title="Permalink to this term" href="#-EEXIST">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a>, <a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="-EMFILE"><span class="term"><code class="varname">-EMFILE</code></span><a class="headerlink" title="Permalink to this term" href="#-EMFILE">¶</a></dt><dd><p><a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a></p></dd><dt id="-ENODATA"><span class="term"><code class="constant">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a>, <a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a></p></dd><dt id="-ENOENT"><span class="term"><code class="varname">-ENOENT</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOENT">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a></p></dd><dt id="-ENOMEM"><span class="term"><code class="varname">-ENOMEM</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOMEM">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a>, <a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>, <a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a>, <a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a></p></dd><dt id="-ENOTCONN"><span class="term"><code class="varname">-ENOTCONN</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTCONN">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-ENOTSUP"><span class="term"><code class="varname">-ENOTSUP</code></span><a class="headerlink" title="Permalink to this term" href="#-ENOTSUP">¶</a></dt><dd><p><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="-ENXIO"><span class="term"><code class="constant">-ENXIO</code></span><a class="headerlink" title="Permalink to this term" href="#-ENXIO">¶</a></dt><dd><p><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a></p></dd><dt id="-EPERM"><span class="term"><code class="varname">-EPERM</code></span><a class="headerlink" title="Permalink to this term" href="#-EPERM">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a></p></dd><dt id="-ESRCH"><span class="term"><code class="varname">-ESRCH</code></span><a class="headerlink" title="Permalink to this term" href="#-ESRCH">¶</a></dt><dd><p><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="-ESTALE"><span class="term"><code class="varname">-ESTALE</code></span><a class="headerlink" title="Permalink to this term" href="#-ESTALE">¶</a></dt><dd><p><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a>, <a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a>, <a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a>, <a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a>, <a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a>, <a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a></p></dd><dt id="ANSI_COLOR="><span class="term"><code class="varname">ANSI_COLOR=</code></span><a class="headerlink" title="Permalink to this term" href="#ANSI_COLOR=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="BUG_REPORT_URL="><span class="term"><code class="varname">BUG_REPORT_URL=</code></span><a class="headerlink" title="Permalink to this term" href="#BUG_REPORT_URL=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="BUILD_ID="><span class="term"><code class="varname">BUILD_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#BUILD_ID=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="C"><span class="term"><code class="varname">C</code></span><a class="headerlink" title="Permalink to this term" href="#C">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="CHASSIS="><span class="term"><code class="varname">CHASSIS=</code></span><a class="headerlink" title="Permalink to this term" href="#CHASSIS=">¶</a></dt><dd><p><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="CPE_NAME="><span class="term"><code class="varname">CPE_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#CPE_NAME=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="Compress="><span class="term"><code class="varname">Compress=</code></span><a class="headerlink" title="Permalink to this term" href="#Compress=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a>, <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="D"><span class="term"><code class="varname">D</code></span><a class="headerlink" title="Permalink to this term" href="#D">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="ExternalSizeMax="><span class="term"><code class="varname">ExternalSizeMax=</code></span><a class="headerlink" title="Permalink to this term" href="#ExternalSizeMax=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="F"><span class="term"><code class="varname">F</code></span><a class="headerlink" title="Permalink to this term" href="#F">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="FONT="><span class="term"><code class="varname">FONT=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="FONT_MAP="><span class="term"><code class="varname">FONT_MAP=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT_MAP=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="FONT_UNIMAP="><span class="term"><code class="varname">FONT_UNIMAP=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT_UNIMAP=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="ForwardToConsole="><span class="term"><code class="varname">ForwardToConsole=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToConsole=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="ForwardToKMsg="><span class="term"><code class="varname">ForwardToKMsg=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToKMsg=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="ForwardToSyslog="><span class="term"><code class="varname">ForwardToSyslog=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToSyslog=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="ForwardToWall="><span class="term"><code class="varname">ForwardToWall=</code></span><a class="headerlink" title="Permalink to this term" href="#ForwardToWall=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="HOME_URL="><span class="term"><code class="varname">HOME_URL=</code></span><a class="headerlink" title="Permalink to this term" href="#HOME_URL=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="HandleHibernateKey="><span class="term"><code class="varname">HandleHibernateKey=</code></span><a class="headerlink" title="Permalink to this term" href="#HandleHibernateKey=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HandleLidSwitch="><span class="term"><code class="varname">HandleLidSwitch=</code></span><a class="headerlink" title="Permalink to this term" href="#HandleLidSwitch=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HandlePowerKey="><span class="term"><code class="varname">HandlePowerKey=</code></span><a class="headerlink" title="Permalink to this term" href="#HandlePowerKey=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HandleSuspendKey="><span class="term"><code class="varname">HandleSuspendKey=</code></span><a class="headerlink" title="Permalink to this term" href="#HandleSuspendKey=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="HibernateKeyIgnoreInhibited="><span class="term"><code class="varname">HibernateKeyIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#HibernateKeyIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="ICON_NAME="><span class="term"><code class="varname">ICON_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#ICON_NAME=">¶</a></dt><dd><p><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="ID="><span class="term"><code class="varname">ID=</code></span><a class="headerlink" title="Permalink to this term" href="#ID=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="ID_LIKE="><span class="term"><code class="varname">ID_LIKE=</code></span><a class="headerlink" title="Permalink to this term" href="#ID_LIKE=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="IdleAction="><span class="term"><code class="varname">IdleAction=</code></span><a class="headerlink" title="Permalink to this term" href="#IdleAction=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="IdleActionSec="><span class="term"><code class="varname">IdleActionSec=</code></span><a class="headerlink" title="Permalink to this term" href="#IdleActionSec=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="InhibitDelayMaxSec="><span class="term"><code class="varname">InhibitDelayMaxSec=</code></span><a class="headerlink" title="Permalink to this term" href="#InhibitDelayMaxSec=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="JournalSizeMax="><span class="term"><code class="varname">JournalSizeMax=</code></span><a class="headerlink" title="Permalink to this term" href="#JournalSizeMax=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="KEYMAP="><span class="term"><code class="varname">KEYMAP=</code></span><a class="headerlink" title="Permalink to this term" href="#KEYMAP=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="KEYMAP_TOGGLE="><span class="term"><code class="varname">KEYMAP_TOGGLE=</code></span><a class="headerlink" title="Permalink to this term" href="#KEYMAP_TOGGLE=">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="KeepFree="><span class="term"><code class="varname">KeepFree=</code></span><a class="headerlink" title="Permalink to this term" href="#KeepFree=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="KillExcludeUsers="><span class="term"><code class="varname">KillExcludeUsers=</code></span><a class="headerlink" title="Permalink to this term" href="#KillExcludeUsers=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="KillOnlyUsers="><span class="term"><code class="varname">KillOnlyUsers=</code></span><a class="headerlink" title="Permalink to this term" href="#KillOnlyUsers=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="KillUserProcesses="><span class="term"><code class="varname">KillUserProcesses=</code></span><a class="headerlink" title="Permalink to this term" href="#KillUserProcesses=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="L"><span class="term"><code class="varname">L</code></span><a class="headerlink" title="Permalink to this term" href="#L">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="L+"><span class="term"><code class="varname">L+</code></span><a class="headerlink" title="Permalink to this term" href="#L+">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="LidSwitchIgnoreInhibited="><span class="term"><code class="varname">LidSwitchIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#LidSwitchIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="MaxFileSec="><span class="term"><code class="varname">MaxFileSec=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxFileSec=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelConsole="><span class="term"><code class="varname">MaxLevelConsole=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelConsole=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelKMsg="><span class="term"><code class="varname">MaxLevelKMsg=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelKMsg=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelStore="><span class="term"><code class="varname">MaxLevelStore=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelStore=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelSyslog="><span class="term"><code class="varname">MaxLevelSyslog=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelSyslog=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxLevelWall="><span class="term"><code class="varname">MaxLevelWall=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxLevelWall=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxRetentionSec="><span class="term"><code class="varname">MaxRetentionSec=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxRetentionSec=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="MaxUse="><span class="term"><code class="varname">MaxUse=</code></span><a class="headerlink" title="Permalink to this term" href="#MaxUse=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="NAME="><span class="term"><code class="varname">NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#NAME=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="NAutoVTs="><span class="term"><code class="varname">NAutoVTs=</code></span><a class="headerlink" title="Permalink to this term" href="#NAutoVTs=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="PRETTY_HOSTNAME="><span class="term"><code class="varname">PRETTY_HOSTNAME=</code></span><a class="headerlink" title="Permalink to this term" href="#PRETTY_HOSTNAME=">¶</a></dt><dd><p><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="PRETTY_NAME="><span class="term"><code class="varname">PRETTY_NAME=</code></span><a class="headerlink" title="Permalink to this term" href="#PRETTY_NAME=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="PowerKeyIgnoreInhibited="><span class="term"><code class="varname">PowerKeyIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#PowerKeyIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="ProcessSizeMax="><span class="term"><code class="varname">ProcessSizeMax=</code></span><a class="headerlink" title="Permalink to this term" href="#ProcessSizeMax=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="R"><span class="term"><code class="varname">R</code></span><a class="headerlink" title="Permalink to this term" href="#R">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="RateLimitBurst="><span class="term"><code class="varname">RateLimitBurst=</code></span><a class="headerlink" title="Permalink to this term" href="#RateLimitBurst=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RateLimitInterval="><span class="term"><code class="varname">RateLimitInterval=</code></span><a class="headerlink" title="Permalink to this term" href="#RateLimitInterval=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RemoveIPC="><span class="term"><code class="varname">RemoveIPC=</code></span><a class="headerlink" title="Permalink to this term" href="#RemoveIPC=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="ReserveVT="><span class="term"><code class="varname">ReserveVT=</code></span><a class="headerlink" title="Permalink to this term" href="#ReserveVT=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="RuntimeDirectorySize="><span class="term"><code class="varname">RuntimeDirectorySize=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeDirectorySize=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="RuntimeKeepFree="><span class="term"><code class="varname">RuntimeKeepFree=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeKeepFree=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RuntimeMaxFileSize="><span class="term"><code class="varname">RuntimeMaxFileSize=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeMaxFileSize=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="RuntimeMaxUse="><span class="term"><code class="varname">RuntimeMaxUse=</code></span><a class="headerlink" title="Permalink to this term" href="#RuntimeMaxUse=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SD_BUS_NAME_ALLOW_REPLACEMENT"><span class="term"><code class="varname">SD_BUS_NAME_ALLOW_REPLACEMENT</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_NAME_ALLOW_REPLACEMENT">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="SD_BUS_NAME_QUEUE"><span class="term"><code class="varname">SD_BUS_NAME_QUEUE</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_NAME_QUEUE">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="SD_BUS_NAME_REPLACE_EXISTING"><span class="term"><code class="varname">SD_BUS_NAME_REPLACE_EXISTING</code></span><a class="headerlink" title="Permalink to this term" href="#SD_BUS_NAME_REPLACE_EXISTING">¶</a></dt><dd><p><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a></p></dd><dt id="SUPPORT_URL="><span class="term"><code class="varname">SUPPORT_URL=</code></span><a class="headerlink" title="Permalink to this term" href="#SUPPORT_URL=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="Seal="><span class="term"><code class="varname">Seal=</code></span><a class="headerlink" title="Permalink to this term" href="#Seal=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SplitMode="><span class="term"><code class="varname">SplitMode=</code></span><a class="headerlink" title="Permalink to this term" href="#SplitMode=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="Storage="><span class="term"><code class="varname">Storage=</code></span><a class="headerlink" title="Permalink to this term" href="#Storage=">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a>, <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SuspendKeyIgnoreInhibited="><span class="term"><code class="varname">SuspendKeyIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="#SuspendKeyIgnoreInhibited=">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="SyncIntervalSec="><span class="term"><code class="varname">SyncIntervalSec=</code></span><a class="headerlink" title="Permalink to this term" href="#SyncIntervalSec=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SystemKeepFree="><span class="term"><code class="varname">SystemKeepFree=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemKeepFree=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SystemMaxFileSize="><span class="term"><code class="varname">SystemMaxFileSize=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemMaxFileSize=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="SystemMaxUse="><span class="term"><code class="varname">SystemMaxUse=</code></span><a class="headerlink" title="Permalink to this term" href="#SystemMaxUse=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="TTYPath="><span class="term"><code class="varname">TTYPath=</code></span><a class="headerlink" title="Permalink to this term" href="#TTYPath=">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a></p></dd><dt id="VERSION="><span class="term"><code class="varname">VERSION=</code></span><a class="headerlink" title="Permalink to this term" href="#VERSION=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="VERSION_ID="><span class="term"><code class="varname">VERSION_ID=</code></span><a class="headerlink" title="Permalink to this term" href="#VERSION_ID=">¶</a></dt><dd><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a></p></dd><dt id="X"><span class="term"><code class="varname">X</code></span><a class="headerlink" title="Permalink to this term" href="#X">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="Z"><span class="term"><code class="varname">Z</code></span><a class="headerlink" title="Permalink to this term" href="#Z">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="b"><span class="term"><code class="varname">b</code></span><a class="headerlink" title="Permalink to this term" href="#b">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="b+"><span class="term"><code class="varname">b+</code></span><a class="headerlink" title="Permalink to this term" href="#b+">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="c"><span class="term"><code class="varname">c</code></span><a class="headerlink" title="Permalink to this term" href="#c">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="c+"><span class="term"><code class="varname">c+</code></span><a class="headerlink" title="Permalink to this term" href="#c+">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="d"><span class="term"><code class="varname">d</code></span><a class="headerlink" title="Permalink to this term" href="#d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="equivalent"><span class="term"><code class="varname">equivalent</code></span><a class="headerlink" title="Permalink to this term" href="#equivalent">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="extended"><span class="term"><code class="varname">extended</code></span><a class="headerlink" title="Permalink to this term" href="#extended">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="f"><span class="term"><code class="varname">f</code></span><a class="headerlink" title="Permalink to this term" href="#f">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="g"><span class="term"><code class="varname">g</code></span><a class="headerlink" title="Permalink to this term" href="#g">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="h"><span class="term"><code class="varname">h</code></span><a class="headerlink" title="Permalink to this term" href="#h">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="m"><span class="term"><code class="constant">m</code></span><a class="headerlink" title="Permalink to this term" href="#m">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="masked"><span class="term"><code class="varname">masked</code></span><a class="headerlink" title="Permalink to this term" href="#masked">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="min"><span class="term"><code class="varname">min</code></span><a class="headerlink" title="Permalink to this term" href="#min">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="ms"><span class="term"><code class="varname">ms</code></span><a class="headerlink" title="Permalink to this term" href="#ms">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="overridden"><span class="term"><code class="varname">overridden</code></span><a class="headerlink" title="Permalink to this term" href="#overridden">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="p"><span class="term"><code class="varname">p</code></span><a class="headerlink" title="Permalink to this term" href="#p">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="p+"><span class="term"><code class="varname">p+</code></span><a class="headerlink" title="Permalink to this term" href="#p+">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="r"><span class="term"><code class="constant">r</code></span><a class="headerlink" title="Permalink to this term" href="#r">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="redirected"><span class="term"><code class="varname">redirected</code></span><a class="headerlink" title="Permalink to this term" href="#redirected">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="s"><span class="term"><code class="varname">s</code></span><a class="headerlink" title="Permalink to this term" href="#s">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="u"><span class="term"><code class="varname">u</code></span><a class="headerlink" title="Permalink to this term" href="#u">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="udev_log"><span class="term"><code class="varname">udev_log</code></span><a class="headerlink" title="Permalink to this term" href="#udev_log">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="unchanged"><span class="term"><code class="varname">unchanged</code></span><a class="headerlink" title="Permalink to this term" href="#unchanged">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="us"><span class="term"><code class="varname">us</code></span><a class="headerlink" title="Permalink to this term" href="#us">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="w"><span class="term"><code class="constant">w</code></span><a class="headerlink" title="Permalink to this term" href="#w">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="x"><span class="term"><code class="varname">x</code></span><a class="headerlink" title="Permalink to this term" href="#x">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="z"><span class="term"><code class="varname">z</code></span><a class="headerlink" title="Permalink to this term" href="#z">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214180336896"></a><h2 id="Files and directories">Files and directories<a class="headerlink" title="Permalink to this headline" href="#Files%20and%20directories">¶</a></h2><p>Paths and file names referred to in the
+ documentation.</p><div class="variablelist"><a name="filenames"></a><dl class="variablelist"><dt id="/"><span class="term"><code class="filename">/</code></span><a class="headerlink" title="Permalink to this term" href="#/">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="$HOME/.config/systemd/user/"><span class="term"><code class="filename">$HOME/.config/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#%24HOME/.config/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="$XDG_CONFIG_HOME/systemd/user/"><span class="term"><code class="filename">$XDG_CONFIG_HOME/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#%24XDG_CONFIG_HOME/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="-.slice"><span class="term"><code class="filename">-.slice</code></span><a class="headerlink" title="Permalink to this term" href="#-.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="/.readahead"><span class="term"><code class="filename">/.readahead</code></span><a class="headerlink" title="Permalink to this term" href="#/.readahead">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="/bin"><span class="term"><code class="filename">/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/bin">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/bin/ls"><span class="term"><code class="filename">/bin/ls</code></span><a class="headerlink" title="Permalink to this term" href="#/bin/ls">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="/boot"><span class="term"><code class="filename">/boot</code></span><a class="headerlink" title="Permalink to this term" href="#/boot">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/boot/loader/entries/MACHINE-ID-KERNEL-VERSION.conf"><span class="term"><code class="filename">/boot/loader/entries/<em class="replaceable"><code>MACHINE-ID</code></em>-<em class="replaceable"><code>KERNEL-VERSION</code></em>.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/boot/loader/entries/MACHINE-ID-KERNEL-VERSION.conf">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/dev"><span class="term"><code class="filename">/dev</code></span><a class="headerlink" title="Permalink to this term" href="#/dev">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/dev/console"><span class="term"><code class="filename">/dev/console</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/console">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a>, <a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/dev/full"><span class="term"><code class="filename">/dev/full</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/full">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/hw_random"><span class="term"><code class="filename">/dev/hw_random</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/hw_random">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="/dev/initctl"><span class="term"><code class="filename">/dev/initctl</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/initctl">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="/dev/mapper/"><span class="term"><code class="filename">/dev/mapper/</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/mapper/">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a></p></dd><dt id="/dev/mapper/home"><span class="term"><code class="filename">/dev/mapper/home</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/mapper/home">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/dev/mapper/srv"><span class="term"><code class="filename">/dev/mapper/srv</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/mapper/srv">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/dev/net/tun"><span class="term"><code class="filename">/dev/net/tun</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/net/tun">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="/dev/null"><span class="term"><code class="filename">/dev/null</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/null">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/dev/random"><span class="term"><code class="filename">/dev/random</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/random">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/sda"><span class="term"><code class="filename">/dev/sda</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/sda">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/dev/sda5"><span class="term"><code class="filename">/dev/sda5</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/sda5">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/shm"><span class="term"><code class="filename">/dev/shm</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/shm">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/dev/urandom"><span class="term"><code class="filename">/dev/urandom</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/urandom">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/dev/watchdog"><span class="term"><code class="filename">/dev/watchdog</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/watchdog">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="/dev/zero"><span class="term"><code class="filename">/dev/zero</code></span><a class="headerlink" title="Permalink to this term" href="#/dev/zero">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/etc"><span class="term"><code class="filename">/etc</code></span><a class="headerlink" title="Permalink to this term" href="#/etc">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a>, <a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/etc/.updated"><span class="term"><code class="filename">/etc/.updated</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/.updated">¶</a></dt><dd><p><a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a></p></dd><dt id="/etc/adjtime"><span class="term"><code class="filename">/etc/adjtime</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/adjtime">¶</a></dt><dd><p><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="/etc/binfmt.d/"><span class="term"><code class="filename">/etc/binfmt.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/binfmt.d/">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/etc/binfmt.d/*.conf"><span class="term"><code class="filename">/etc/binfmt.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/binfmt.d/*.conf">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/etc/crypttab"><span class="term"><code class="filename">/etc/crypttab</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/crypttab">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>, <a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/etc/fstab"><span class="term"><code class="filename">/etc/fstab</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/fstab">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a>, <a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a>, <a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a></p></dd><dt id="/etc/group"><span class="term"><code class="filename">/etc/group</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/group">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="/etc/hostname"><span class="term"><code class="filename">/etc/hostname</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/hostname">¶</a></dt><dd><p><a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a>, <a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="/etc/hosts"><span class="term"><code class="filename">/etc/hosts</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/hosts">¶</a></dt><dd><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a></p></dd><dt id="/etc/kernel/cmdline"><span class="term"><code class="filename">/etc/kernel/cmdline</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/kernel/cmdline">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/etc/kernel/install.d/"><span class="term"><code class="filename">/etc/kernel/install.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/kernel/install.d/">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/etc/kernel/install.d/*.install"><span class="term"><code class="filename">/etc/kernel/install.d/*.install</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/kernel/install.d/*.install">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/etc/locale.conf"><span class="term"><code class="filename">/etc/locale.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/locale.conf">¶</a></dt><dd><p><a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/etc/localtime"><span class="term"><code class="filename">/etc/localtime</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/localtime">¶</a></dt><dd><p><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a>, <a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="/etc/machine-id"><span class="term"><code class="filename">/etc/machine-id</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/machine-id">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>, <a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/etc/machine-info"><span class="term"><code class="filename">/etc/machine-info</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/machine-info">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a>, <a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a></p></dd><dt id="/etc/modules-load.d/program.conf"><span class="term"><code class="filename">/etc/modules-load.d/<em class="replaceable"><code>program</code></em>.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/modules-load.d/program.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/etc/modules-load.d/*.conf"><span class="term"><code class="filename">/etc/modules-load.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/modules-load.d/*.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/etc/modules-load.d/bridge.conf"><span class="term"><code class="filename">/etc/modules-load.d/bridge.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/modules-load.d/bridge.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/nsswitch.conf"><span class="term"><code class="filename">/etc/nsswitch.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/nsswitch.conf">¶</a></dt><dd><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a></p></dd><dt id="/etc/os-release"><span class="term"><code class="filename">/etc/os-release</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/os-release">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/etc/passwd"><span class="term"><code class="filename">/etc/passwd</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/passwd">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="/etc/resolv.conf"><span class="term"><code class="filename">/etc/resolv.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/resolv.conf">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="/etc/sysctl.d/"><span class="term"><code class="filename">/etc/sysctl.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/sysctl.d/">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/sysctl.d/*.conf"><span class="term"><code class="filename">/etc/sysctl.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/sysctl.d/*.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/sysctl.d/bridge.conf"><span class="term"><code class="filename">/etc/sysctl.d/bridge.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/sysctl.d/bridge.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/sysctl.d/domain-name.conf"><span class="term"><code class="filename">/etc/sysctl.d/domain-name.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/sysctl.d/domain-name.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/systemd/bootchart.conf"><span class="term"><code class="filename">/etc/systemd/bootchart.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/bootchart.conf">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="/etc/systemd/coredump.conf"><span class="term"><code class="filename">/etc/systemd/coredump.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/coredump.conf">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/journald.conf"><span class="term"><code class="filename">/etc/systemd/journald.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/journald.conf">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/etc/systemd/logind.conf"><span class="term"><code class="filename">/etc/systemd/logind.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/logind.conf">¶</a></dt><dd><p><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/network"><span class="term"><code class="filename">/etc/systemd/network</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/network">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="/etc/systemd/resolved.conf"><span class="term"><code class="filename">/etc/systemd/resolved.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/resolved.conf">¶</a></dt><dd><p><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/sleep.conf"><span class="term"><code class="filename">/etc/systemd/sleep.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/sleep.conf">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/etc/systemd/system/"><span class="term"><code class="filename">/etc/systemd/system/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/etc/systemd/system-preset/"><span class="term"><code class="filename">/etc/systemd/system-preset/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system-preset/">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/system-preset/*.preset"><span class="term"><code class="filename">/etc/systemd/system-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/system-preset/00-lennart.preset"><span class="term"><code class="filename">/etc/systemd/system-preset/00-lennart.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system-preset/00-lennart.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/system.conf"><span class="term"><code class="filename">/etc/systemd/system.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/system.conf">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="/etc/systemd/user/"><span class="term"><code class="filename">/etc/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/etc/systemd/user-preset/*.preset"><span class="term"><code class="filename">/etc/systemd/user-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/user-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/etc/systemd/user.conf"><span class="term"><code class="filename">/etc/systemd/user.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/systemd/user.conf">¶</a></dt><dd><p><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a></p></dd><dt id="/etc/tmpfiles.d"><span class="term"><code class="filename">/etc/tmpfiles.d</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/tmpfiles.d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/etc/tmpfiles.d/*.conf"><span class="term"><code class="filename">/etc/tmpfiles.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/tmpfiles.d/*.conf">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/etc/udev/hwdb.bin"><span class="term"><code class="filename">/etc/udev/hwdb.bin</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/hwdb.bin">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="/etc/udev/hwdb.d"><span class="term"><code class="filename">/etc/udev/hwdb.d</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/hwdb.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/etc/udev/rules.d"><span class="term"><code class="filename">/etc/udev/rules.d</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/rules.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/etc/udev/rules.d/99-bridge.conf"><span class="term"><code class="filename">/etc/udev/rules.d/99-bridge.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/rules.d/99-bridge.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/etc/udev/udev.conf"><span class="term"><code class="filename">/etc/udev/udev.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/udev/udev.conf">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="/etc/vconsole.conf"><span class="term"><code class="filename">/etc/vconsole.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/etc/vconsole.conf">¶</a></dt><dd><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a></p></dd><dt id="/home"><span class="term"><code class="filename">/home</code></span><a class="headerlink" title="Permalink to this term" href="#/home">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/home/lennart"><span class="term"><code class="filename">/home/lennart</code></span><a class="headerlink" title="Permalink to this term" href="#/home/lennart">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a></p></dd><dt id="/lib"><span class="term"><code class="filename">/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/lib">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="/lib64"><span class="term"><code class="filename">/lib64</code></span><a class="headerlink" title="Permalink to this term" href="#/lib64">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/proc"><span class="term"><code class="filename">/proc</code></span><a class="headerlink" title="Permalink to this term" href="#/proc">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a>, <a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/proc/cmdline"><span class="term"><code class="filename">/proc/cmdline</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/cmdline">¶</a></dt><dd><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>, <a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/proc/devices"><span class="term"><code class="filename">/proc/devices</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/devices">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a></p></dd><dt id="/proc/self/fd"><span class="term"><code class="filename">/proc/self/fd</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/self/fd">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a></p></dd><dt id="/proc/self/mountinfo"><span class="term"><code class="filename">/proc/self/mountinfo</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/self/mountinfo">¶</a></dt><dd><p><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a></p></dd><dt id="/proc/self/sessionid"><span class="term"><code class="filename">/proc/self/sessionid</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/self/sessionid">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="/proc/sys"><span class="term"><code class="filename">/proc/sys</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/proc/sys/kernel/domainname"><span class="term"><code class="filename">/proc/sys/kernel/domainname</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/kernel/domainname">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/proc/sys/kernel/random/boot_id"><span class="term"><code class="filename">/proc/sys/kernel/random/boot_id</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/kernel/random/boot_id">¶</a></dt><dd><p><a href="sd_id128_get_machine.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_machine</span>(3)</span></a></p></dd><dt id="/proc/sys/net/ipv4/conf/enp3s0.200/forwarding"><span class="term"><code class="filename">/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/net/ipv4/conf/enp3s0.200/forwarding">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/proc/sys/net/ipv4/tcp_keepalive_time"><span class="term"><code class="filename">/proc/sys/net/ipv4/tcp_keepalive_time</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/net/ipv4/tcp_keepalive_time">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="/proc/sys/net/ipv6/bindv6only"><span class="term"><code class="filename">/proc/sys/net/ipv6/bindv6only</code></span><a class="headerlink" title="Permalink to this term" href="#/proc/sys/net/ipv6/bindv6only">¶</a></dt><dd><p><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a></p></dd><dt id="/root"><span class="term"><code class="filename">/root</code></span><a class="headerlink" title="Permalink to this term" href="#/root">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/run"><span class="term"><code class="filename">/run</code></span><a class="headerlink" title="Permalink to this term" href="#/run">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/binfmt.d/*.conf"><span class="term"><code class="filename">/run/binfmt.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/binfmt.d/*.conf">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/run/foobar.pid"><span class="term"><code class="filename">/run/foobar.pid</code></span><a class="headerlink" title="Permalink to this term" href="#/run/foobar.pid">¶</a></dt><dd><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a></p></dd><dt id="/run/log"><span class="term"><code class="filename">/run/log</code></span><a class="headerlink" title="Permalink to this term" href="#/run/log">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a>, <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="/run/log/journal"><span class="term"><code class="filename">/run/log/journal</code></span><a class="headerlink" title="Permalink to this term" href="#/run/log/journal">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/run/modules-load.d/*.conf"><span class="term"><code class="filename">/run/modules-load.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/modules-load.d/*.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/run/nologin"><span class="term"><code class="filename">/run/nologin</code></span><a class="headerlink" title="Permalink to this term" href="#/run/nologin">¶</a></dt><dd><p><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a>, <a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a></p></dd><dt id="/run/sysctl.d/*.conf"><span class="term"><code class="filename">/run/sysctl.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/sysctl.d/*.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/run/systemd/journal/syslog"><span class="term"><code class="filename">/run/systemd/journal/syslog</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/journal/syslog">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/run/systemd/network"><span class="term"><code class="filename">/run/systemd/network</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/network">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="/run/systemd/notify"><span class="term"><code class="filename">/run/systemd/notify</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/notify">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/run/systemd/private"><span class="term"><code class="filename">/run/systemd/private</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/private">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/run/systemd/readahead/"><span class="term"><code class="filename">/run/systemd/readahead/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/readahead/">¶</a></dt><dd><p><a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a></p></dd><dt id="/run/systemd/resolve/resolv.conf"><span class="term"><code class="filename">/run/systemd/resolve/resolv.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/resolve/resolv.conf">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="/run/systemd/shutdownd"><span class="term"><code class="filename">/run/systemd/shutdownd</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/shutdownd">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/run/systemd/system/"><span class="term"><code class="filename">/run/systemd/system/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/system/">¶</a></dt><dd><p><a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/run/systemd/system-preset/*.preset"><span class="term"><code class="filename">/run/systemd/system-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/system-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/run/systemd/user/"><span class="term"><code class="filename">/run/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/run/systemd/user-preset/*.preset"><span class="term"><code class="filename">/run/systemd/user-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/user-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/run/tmpfiles.d"><span class="term"><code class="filename">/run/tmpfiles.d</code></span><a class="headerlink" title="Permalink to this term" href="#/run/tmpfiles.d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/run/tmpfiles.d/*.conf"><span class="term"><code class="filename">/run/tmpfiles.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/run/tmpfiles.d/*.conf">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/run/udev/hwdb.d"><span class="term"><code class="filename">/run/udev/hwdb.d</code></span><a class="headerlink" title="Permalink to this term" href="#/run/udev/hwdb.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/udev/rules.d"><span class="term"><code class="filename">/run/udev/rules.d</code></span><a class="headerlink" title="Permalink to this term" href="#/run/udev/rules.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/udev/static_node-tags/tag"><span class="term"><code class="filename">/run/udev/static_node-tags/<em class="replaceable"><code>tag</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#/run/udev/static_node-tags/tag">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/run/user"><span class="term"><code class="filename">/run/user</code></span><a class="headerlink" title="Permalink to this term" href="#/run/user">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/run/user/$USER"><span class="term"><code class="filename">/run/user/$USER</code></span><a class="headerlink" title="Permalink to this term" href="#/run/user/%24USER">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="/sbin"><span class="term"><code class="filename">/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/sbin">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/sbin/fsck."><span class="term"><code class="filename">/sbin/fsck.</code></span><a class="headerlink" title="Permalink to this term" href="#/sbin/fsck.">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="/sbin/init"><span class="term"><code class="filename">/sbin/init</code></span><a class="headerlink" title="Permalink to this term" href="#/sbin/init">¶</a></dt><dd><p><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a></p></dd><dt id="/sbin/login"><span class="term"><code class="filename">/sbin/login</code></span><a class="headerlink" title="Permalink to this term" href="#/sbin/login">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="/srv"><span class="term"><code class="filename">/srv</code></span><a class="headerlink" title="Permalink to this term" href="#/srv">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/sys"><span class="term"><code class="filename">/sys</code></span><a class="headerlink" title="Permalink to this term" href="#/sys">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>, <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>, <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>, <a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>, <a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="/sys/fs/cgroup"><span class="term"><code class="filename">/sys/fs/cgroup</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/fs/cgroup">¶</a></dt><dd><p><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, <a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="/sys/fs/cgroup/systemd/"><span class="term"><code class="filename">/sys/fs/cgroup/systemd/</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/fs/cgroup/systemd/">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/sys/fs/selinux"><span class="term"><code class="filename">/sys/fs/selinux</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/fs/selinux">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/sys/power/disk"><span class="term"><code class="filename">/sys/power/disk</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/power/disk">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a></p></dd><dt id="/sys/power/state"><span class="term"><code class="filename">/sys/power/state</code></span><a class="headerlink" title="Permalink to this term" href="#/sys/power/state">¶</a></dt><dd><p><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a>, <a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/sysroot"><span class="term"><code class="filename">/sysroot</code></span><a class="headerlink" title="Permalink to this term" href="#/sysroot">¶</a></dt><dd><p><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a></p></dd><dt id="/sysroot/etc/fstab"><span class="term"><code class="filename">/sysroot/etc/fstab</code></span><a class="headerlink" title="Permalink to this term" href="#/sysroot/etc/fstab">¶</a></dt><dd><p><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a></p></dd><dt id="/system-update"><span class="term"><code class="filename">/system-update</code></span><a class="headerlink" title="Permalink to this term" href="#/system-update">¶</a></dt><dd><p><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a>, <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="/tmp"><span class="term"><code class="filename">/tmp</code></span><a class="headerlink" title="Permalink to this term" href="#/tmp">¶</a></dt><dd><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a>, <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/tmp/var"><span class="term"><code class="filename">/tmp/var</code></span><a class="headerlink" title="Permalink to this term" href="#/tmp/var">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/upload"><span class="term"><code class="filename">/upload</code></span><a class="headerlink" title="Permalink to this term" href="#/upload">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="/usr"><span class="term"><code class="filename">/usr</code></span><a class="headerlink" title="Permalink to this term" href="#/usr">¶</a></dt><dd><p><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a>, <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a>, <a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/usr/bin"><span class="term"><code class="filename">/usr/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/bin/mount"><span class="term"><code class="filename">/usr/bin/mount</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin/mount">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="/usr/bin/umount"><span class="term"><code class="filename">/usr/bin/umount</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/bin/umount">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="/usr/include"><span class="term"><code class="filename">/usr/include</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/include">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/usr/lib"><span class="term"><code class="filename">/usr/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a>, <a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a>, <a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a>, <a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>, <a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a>, <a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib/binfmt.d/*.conf"><span class="term"><code class="filename">/usr/lib/binfmt.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/binfmt.d/*.conf">¶</a></dt><dd><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a></p></dd><dt id="/usr/lib/kernel/install.d/"><span class="term"><code class="filename">/usr/lib/kernel/install.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/kernel/install.d/">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/usr/lib/kernel/install.d/*.install"><span class="term"><code class="filename">/usr/lib/kernel/install.d/*.install</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/kernel/install.d/*.install">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="/usr/lib/modules-load.d/*.conf"><span class="term"><code class="filename">/usr/lib/modules-load.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/modules-load.d/*.conf">¶</a></dt><dd><p><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a></p></dd><dt id="/usr/lib/os-release"><span class="term"><code class="filename">/usr/lib/os-release</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/os-release">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a>, <a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/usr/lib/sysctl.d/*.conf"><span class="term"><code class="filename">/usr/lib/sysctl.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/sysctl.d/*.conf">¶</a></dt><dd><p><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/network"><span class="term"><code class="filename">/usr/lib/systemd/network</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/network">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a>, <a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>, <a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>, <a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system"><span class="term"><code class="filename">/usr/lib/systemd/system</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-cryptsetup-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-cryptsetup-generator">¶</a></dt><dd><p><a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-debug-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-debug-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-debug-generator">¶</a></dt><dd><p><a href="systemd-debug-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-debug-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-efi-boot-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-efi-boot-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-efi-boot-generator">¶</a></dt><dd><p><a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-fstab-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-fstab-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-fstab-generator">¶</a></dt><dd><p><a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-getty-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-getty-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-getty-generator">¶</a></dt><dd><p><a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-gpt-auto-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-gpt-auto-generator">¶</a></dt><dd><p><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-generators/systemd-system-update-generator"><span class="term"><code class="filename">/usr/lib/systemd/system-generators/systemd-system-update-generator</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-generators/systemd-system-update-generator">¶</a></dt><dd><p><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-preset/*.preset"><span class="term"><code class="filename">/usr/lib/systemd/system-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-preset/50-gnome.preset"><span class="term"><code class="filename">/usr/lib/systemd/system-preset/50-gnome.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-preset/50-gnome.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-preset/99-default.preset"><span class="term"><code class="filename">/usr/lib/systemd/system-preset/99-default.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-preset/99-default.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/system-shutdown/"><span class="term"><code class="filename">/usr/lib/systemd/system-shutdown/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-shutdown/">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/system-sleep/"><span class="term"><code class="filename">/usr/lib/systemd/system-sleep/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/system-sleep/">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-activate"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-activate</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-activate">¶</a></dt><dd><p><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-backlight"><span class="term"><code class="filename">/usr/lib/systemd/systemd-backlight</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-backlight">¶</a></dt><dd><p><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-binfmt"><span class="term"><code class="filename">/usr/lib/systemd/systemd-binfmt</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-binfmt">¶</a></dt><dd><p><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-bootchart"><span class="term"><code class="filename">/usr/lib/systemd/systemd-bootchart</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-bootchart">¶</a></dt><dd><p><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-bus-proxyd"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-bus-proxyd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-bus-proxyd">¶</a></dt><dd><p><a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-cryptsetup"><span class="term"><code class="filename">/usr/lib/systemd/systemd-cryptsetup</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-cryptsetup">¶</a></dt><dd><p><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-fsck"><span class="term"><code class="filename">/usr/lib/systemd/systemd-fsck</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-fsck">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-hostnamed"><span class="term"><code class="filename">/usr/lib/systemd/systemd-hostnamed</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-hostnamed">¶</a></dt><dd><p><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-initctl"><span class="term"><code class="filename">/usr/lib/systemd/systemd-initctl</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-initctl">¶</a></dt><dd><p><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-journal-gatewayd"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-journal-gatewayd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-journal-gatewayd">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-journald"><span class="term"><code class="filename">/usr/lib/systemd/systemd-journald</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-journald">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-localed"><span class="term"><code class="filename">/usr/lib/systemd/systemd-localed</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-localed">¶</a></dt><dd><p><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-logind"><span class="term"><code class="filename">/usr/lib/systemd/systemd-logind</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-logind">¶</a></dt><dd><p><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-machined"><span class="term"><code class="filename">/usr/lib/systemd/systemd-machined</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-machined">¶</a></dt><dd><p><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-modules-load"><span class="term"><code class="filename">/usr/lib/systemd/systemd-modules-load</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-modules-load">¶</a></dt><dd><p><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-networkd"><span class="term"><code class="filename">/usr/lib/systemd/systemd-networkd</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-networkd">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-networkd-wait-online"><span class="term"><code class="filename">/usr/lib/systemd/systemd-networkd-wait-online</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-networkd-wait-online">¶</a></dt><dd><p><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-quotacheck"><span class="term"><code class="filename">/usr/lib/systemd/systemd-quotacheck</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-quotacheck">¶</a></dt><dd><p><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-random-seed"><span class="term"><code class="filename">/usr/lib/systemd/systemd-random-seed</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-random-seed">¶</a></dt><dd><p><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-readahead/systemd-readahead"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-readahead/systemd-readahead</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-readahead/systemd-readahead">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-remount-fs"><span class="term"><code class="filename">/usr/lib/systemd/systemd-remount-fs</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-remount-fs">¶</a></dt><dd><p><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-resolved"><span class="term"><code class="filename">/usr/lib/systemd/systemd-resolved</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-resolved">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-rfkill"><span class="term"><code class="filename">/usr/lib/systemd/systemd-rfkill</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-rfkill">¶</a></dt><dd><p><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-shutdown"><span class="term"><code class="filename">/usr/lib/systemd/systemd-shutdown</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-shutdown">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-shutdownd"><span class="term"><code class="filename">/usr/lib/systemd/systemd-shutdownd</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-shutdownd">¶</a></dt><dd><p><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-sleep"><span class="term"><code class="filename">/usr/lib/systemd/systemd-sleep</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-sleep">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-sysctl"><span class="term"><code class="filename">/usr/lib/systemd/systemd-sysctl</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-sysctl">¶</a></dt><dd><p><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-timedated"><span class="term"><code class="filename">/usr/lib/systemd/systemd-timedated</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-timedated">¶</a></dt><dd><p><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-timesyncd"><span class="term"><code class="filename">/usr/lib/systemd/systemd-timesyncd</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-timesyncd">¶</a></dt><dd><p><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-udevd"><span class="term"><span class="command"><strong>/usr/lib/systemd/systemd-udevd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-udevd">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-update-done"><span class="term"><code class="filename">/usr/lib/systemd/systemd-update-done</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-update-done">¶</a></dt><dd><p><a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-update-utmp"><span class="term"><code class="filename">/usr/lib/systemd/systemd-update-utmp</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-update-utmp">¶</a></dt><dd><p><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-user-sessions"><span class="term"><code class="filename">/usr/lib/systemd/systemd-user-sessions</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-user-sessions">¶</a></dt><dd><p><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/systemd-vconsole-setup"><span class="term"><code class="filename">/usr/lib/systemd/systemd-vconsole-setup</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/systemd-vconsole-setup">¶</a></dt><dd><p><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="/usr/lib/systemd/user/"><span class="term"><code class="filename">/usr/lib/systemd/user/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/user/">¶</a></dt><dd><p><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="/usr/lib/systemd/user-preset/*.preset"><span class="term"><code class="filename">/usr/lib/systemd/user-preset/*.preset</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/systemd/user-preset/*.preset">¶</a></dt><dd><p><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a></p></dd><dt id="/usr/lib/sysusers.d/"><span class="term"><code class="filename">/usr/lib/sysusers.d/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/sysusers.d/">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="/usr/lib/sysusers.d/*.conf"><span class="term"><code class="filename">/usr/lib/sysusers.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/sysusers.d/*.conf">¶</a></dt><dd><p><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a></p></dd><dt id="/usr/lib/tmpfiles.d"><span class="term"><code class="filename">/usr/lib/tmpfiles.d</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/tmpfiles.d">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/usr/lib/tmpfiles.d/*.conf"><span class="term"><code class="filename">/usr/lib/tmpfiles.d/*.conf</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/tmpfiles.d/*.conf">¶</a></dt><dd><p><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/usr/lib/udev"><span class="term"><code class="filename">/usr/lib/udev</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/udev">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib/udev/hwdb.d"><span class="term"><code class="filename">/usr/lib/udev/hwdb.d</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/udev/hwdb.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib/udev/rules.d"><span class="term"><code class="filename">/usr/lib/udev/rules.d</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib/udev/rules.d">¶</a></dt><dd><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a></p></dd><dt id="/usr/lib64"><span class="term"><code class="filename">/usr/lib64</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/lib64">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/usr/local/bin"><span class="term"><code class="filename">/usr/local/bin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/local/bin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/local/lib/systemd/system"><span class="term"><code class="filename">/usr/local/lib/systemd/system</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/local/lib/systemd/system">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="/usr/local/sbin"><span class="term"><code class="filename">/usr/local/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/local/sbin">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/sbin"><span class="term"><code class="filename">/usr/sbin</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/sbin">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a></p></dd><dt id="/usr/share"><span class="term"><code class="filename">/usr/share</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/usr/share/doc"><span class="term"><code class="filename">/usr/share/doc</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/doc">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/usr/share/factory"><span class="term"><code class="filename">/usr/share/factory</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/factory">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/usr/share/factory/etc"><span class="term"><code class="filename">/usr/share/factory/etc</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/factory/etc">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/usr/share/factory/var"><span class="term"><code class="filename">/usr/share/factory/var</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/factory/var">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/usr/share/zoneinfo/"><span class="term"><code class="filename">/usr/share/zoneinfo/</code></span><a class="headerlink" title="Permalink to this term" href="#/usr/share/zoneinfo/">¶</a></dt><dd><p><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a></p></dd><dt id="/var"><span class="term"><code class="filename">/var</code></span><a class="headerlink" title="Permalink to this term" href="#/var">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a>, <a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/var/.updated"><span class="term"><code class="filename">/var/.updated</code></span><a class="headerlink" title="Permalink to this term" href="#/var/.updated">¶</a></dt><dd><p><a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a></p></dd><dt id="/var/cache"><span class="term"><code class="filename">/var/cache</code></span><a class="headerlink" title="Permalink to this term" href="#/var/cache">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/var/lib"><span class="term"><code class="filename">/var/lib</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/var/lib/dbus/machine-id"><span class="term"><code class="filename">/var/lib/dbus/machine-id</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/dbus/machine-id">¶</a></dt><dd><p><a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a></p></dd><dt id="/var/lib/systemd/backlight/"><span class="term"><code class="filename">/var/lib/systemd/backlight/</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/backlight/">¶</a></dt><dd><p><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a></p></dd><dt id="/var/lib/systemd/coredump"><span class="term"><code class="filename">/var/lib/systemd/coredump</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/coredump">¶</a></dt><dd><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a></p></dd><dt id="/var/lib/systemd/random-seed"><span class="term"><code class="filename">/var/lib/systemd/random-seed</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/random-seed">¶</a></dt><dd><p><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a></p></dd><dt id="/var/lib/systemd/rfkill/"><span class="term"><code class="filename">/var/lib/systemd/rfkill/</code></span><a class="headerlink" title="Permalink to this term" href="#/var/lib/systemd/rfkill/">¶</a></dt><dd><p><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="/var/log"><span class="term"><code class="filename">/var/log</code></span><a class="headerlink" title="Permalink to this term" href="#/var/log">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/var/log/journal"><span class="term"><code class="filename">/var/log/journal</code></span><a class="headerlink" title="Permalink to this term" href="#/var/log/journal">¶</a></dt><dd><p><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>, <a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a>, <a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a>, <a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="/var/log/journal/some.host/remote-some~host.journal"><span class="term"><code class="filename">/var/log/journal/some.host/remote-some~host.journal</code></span><a class="headerlink" title="Permalink to this term" href="#/var/log/journal/some.host/remote-some~host.journal">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="/var/run"><span class="term"><code class="filename">/var/run</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="/var/run/dbus/system_bus_socket"><span class="term"><code class="filename">/var/run/dbus/system_bus_socket</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run/dbus/system_bus_socket">¶</a></dt><dd><p><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a></p></dd><dt id="/var/run/utmp"><span class="term"><code class="filename">/var/run/utmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/run/utmp">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="/var/spool"><span class="term"><code class="filename">/var/spool</code></span><a class="headerlink" title="Permalink to this term" href="#/var/spool">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a></p></dd><dt id="/var/tmp"><span class="term"><code class="filename">/var/tmp</code></span><a class="headerlink" title="Permalink to this term" href="#/var/tmp">¶</a></dt><dd><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a>, <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a></p></dd><dt id="automount.automount"><span class="term"><code class="filename"><em class="replaceable"><code>automount</code></em>.automount</code></span><a class="headerlink" title="Permalink to this term" href="#automount.automount">¶</a></dt><dd><p><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="basic.target"><span class="term"><code class="filename">basic.target</code></span><a class="headerlink" title="Permalink to this term" href="#basic.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="bluetooth.target"><span class="term"><code class="filename">bluetooth.target</code></span><a class="headerlink" title="Permalink to this term" href="#bluetooth.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="bootctl"><span class="term"><span class="command"><strong>bootctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#bootctl">¶</a></dt><dd><p><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a></p></dd><dt id="busctl"><span class="term"><span class="command"><strong>busctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#busctl">¶</a></dt><dd><p><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a></p></dd><dt id="coredumpctl"><span class="term"><span class="command"><strong>coredumpctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#coredumpctl">¶</a></dt><dd><p><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a></p></dd><dt id="cryptsetup-pre.target"><span class="term"><code class="filename">cryptsetup-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#cryptsetup-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="cryptsetup.target"><span class="term"><code class="filename">cryptsetup.target</code></span><a class="headerlink" title="Permalink to this term" href="#cryptsetup.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="ctrl-alt-del.target"><span class="term"><code class="filename">ctrl-alt-del.target</code></span><a class="headerlink" title="Permalink to this term" href="#ctrl-alt-del.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="dbus.service"><span class="term"><code class="filename">dbus.service</code></span><a class="headerlink" title="Permalink to this term" href="#dbus.service">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="dbus.socket"><span class="term"><code class="filename">dbus.socket</code></span><a class="headerlink" title="Permalink to this term" href="#dbus.socket">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="default.target"><span class="term"><code class="filename">default.target</code></span><a class="headerlink" title="Permalink to this term" href="#default.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="device.device"><span class="term"><code class="filename"><em class="replaceable"><code>device</code></em>.device</code></span><a class="headerlink" title="Permalink to this term" href="#device.device">¶</a></dt><dd><p><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="display-manager.service"><span class="term"><code class="filename">display-manager.service</code></span><a class="headerlink" title="Permalink to this term" href="#display-manager.service">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="emergency.target"><span class="term"><code class="filename">emergency.target</code></span><a class="headerlink" title="Permalink to this term" href="#emergency.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="exit.target"><span class="term"><code class="filename">exit.target</code></span><a class="headerlink" title="Permalink to this term" href="#exit.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="final.target"><span class="term"><code class="filename">final.target</code></span><a class="headerlink" title="Permalink to this term" href="#final.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="getty.target"><span class="term"><code class="filename">getty.target</code></span><a class="headerlink" title="Permalink to this term" href="#getty.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="graphical.target"><span class="term"><code class="filename">graphical.target</code></span><a class="headerlink" title="Permalink to this term" href="#graphical.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="halt"><span class="term"><span class="command"><strong>halt</strong></span></span><a class="headerlink" title="Permalink to this term" href="#halt">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="halt.target"><span class="term"><code class="filename">halt.target</code></span><a class="headerlink" title="Permalink to this term" href="#halt.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="hibernate.target"><span class="term"><code class="filename">hibernate.target</code></span><a class="headerlink" title="Permalink to this term" href="#hibernate.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="hostnamectl"><span class="term"><span class="command"><strong>hostnamectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#hostnamectl">¶</a></dt><dd><p><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a></p></dd><dt id="hybrid-sleep.target"><span class="term"><code class="filename">hybrid-sleep.target</code></span><a class="headerlink" title="Permalink to this term" href="#hybrid-sleep.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="init"><span class="term"><span class="command"><strong>init</strong></span></span><a class="headerlink" title="Permalink to this term" href="#init">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="initrd-fs.target"><span class="term"><code class="filename">initrd-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#initrd-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="initrd-root-fs.target"><span class="term"><code class="filename">initrd-root-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#initrd-root-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="journalctl"><span class="term"><span class="command"><strong>journalctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#journalctl">¶</a></dt><dd><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a></p></dd><dt id="kbrequest.target"><span class="term"><code class="filename">kbrequest.target</code></span><a class="headerlink" title="Permalink to this term" href="#kbrequest.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="kernel-install"><span class="term"><span class="command"><strong>kernel-install</strong></span></span><a class="headerlink" title="Permalink to this term" href="#kernel-install">¶</a></dt><dd><p><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a></p></dd><dt id="kexec.target"><span class="term"><code class="filename">kexec.target</code></span><a class="headerlink" title="Permalink to this term" href="#kexec.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="link.link"><span class="term"><code class="filename"><em class="replaceable"><code>link</code></em>.link</code></span><a class="headerlink" title="Permalink to this term" href="#link.link">¶</a></dt><dd><p><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a></p></dd><dt id="local-fs-pre.target"><span class="term"><code class="filename">local-fs-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#local-fs-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="local-fs.target"><span class="term"><code class="filename">local-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#local-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="localectl"><span class="term"><span class="command"><strong>localectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#localectl">¶</a></dt><dd><p><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a></p></dd><dt id="loginctl"><span class="term"><span class="command"><strong>loginctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#loginctl">¶</a></dt><dd><p><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a></p></dd><dt id="machine.slice"><span class="term"><code class="filename">machine.slice</code></span><a class="headerlink" title="Permalink to this term" href="#machine.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="machinectl"><span class="term"><span class="command"><strong>machinectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#machinectl">¶</a></dt><dd><p><a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a></p></dd><dt id="mount.mount"><span class="term"><code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code></span><a class="headerlink" title="Permalink to this term" href="#mount.mount">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="multi-user.target"><span class="term"><code class="filename">multi-user.target</code></span><a class="headerlink" title="Permalink to this term" href="#multi-user.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="netdev.netdev"><span class="term"><code class="filename"><em class="replaceable"><code>netdev</code></em>.netdev</code></span><a class="headerlink" title="Permalink to this term" href="#netdev.netdev">¶</a></dt><dd><p><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a></p></dd><dt id="network.network"><span class="term"><code class="filename"><em class="replaceable"><code>network</code></em>.network</code></span><a class="headerlink" title="Permalink to this term" href="#network.network">¶</a></dt><dd><p><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a></p></dd><dt id="network-online.target"><span class="term"><code class="filename">network-online.target</code></span><a class="headerlink" title="Permalink to this term" href="#network-online.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="network-pre.target"><span class="term"><code class="filename">network-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#network-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="network.target"><span class="term"><code class="filename">network.target</code></span><a class="headerlink" title="Permalink to this term" href="#network.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="nss-lookup.target"><span class="term"><code class="filename">nss-lookup.target</code></span><a class="headerlink" title="Permalink to this term" href="#nss-lookup.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="nss-myhostname.la"><span class="term"><code class="filename">nss-myhostname.la</code></span><a class="headerlink" title="Permalink to this term" href="#nss-myhostname.la">¶</a></dt><dd><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a></p></dd><dt id="nss-user-lookup.target"><span class="term"><code class="filename">nss-user-lookup.target</code></span><a class="headerlink" title="Permalink to this term" href="#nss-user-lookup.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="pam_systemd.so"><span class="term"><code class="filename">pam_systemd.so</code></span><a class="headerlink" title="Permalink to this term" href="#pam_systemd.so">¶</a></dt><dd><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a></p></dd><dt id="path.path"><span class="term"><code class="filename"><em class="replaceable"><code>path</code></em>.path</code></span><a class="headerlink" title="Permalink to this term" href="#path.path">¶</a></dt><dd><p><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="paths.target"><span class="term"><code class="filename">paths.target</code></span><a class="headerlink" title="Permalink to this term" href="#paths.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="pkg-config"><span class="term"><span class="command"><strong>pkg-config</strong></span></span><a class="headerlink" title="Permalink to this term" href="#pkg-config">¶</a></dt><dd><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a>, <a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a>, <a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>, <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a></p></dd><dt id="poweroff"><span class="term"><span class="command"><strong>poweroff</strong></span></span><a class="headerlink" title="Permalink to this term" href="#poweroff">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="poweroff.target"><span class="term"><code class="filename">poweroff.target</code></span><a class="headerlink" title="Permalink to this term" href="#poweroff.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="printer.target"><span class="term"><code class="filename">printer.target</code></span><a class="headerlink" title="Permalink to this term" href="#printer.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="reboot"><span class="term"><span class="command"><strong>reboot</strong></span></span><a class="headerlink" title="Permalink to this term" href="#reboot">¶</a></dt><dd><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a></p></dd><dt id="reboot.target"><span class="term"><code class="filename">reboot.target</code></span><a class="headerlink" title="Permalink to this term" href="#reboot.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="remote-fs-pre.target"><span class="term"><code class="filename">remote-fs-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#remote-fs-pre.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="remote-fs.target"><span class="term"><code class="filename">remote-fs.target</code></span><a class="headerlink" title="Permalink to this term" href="#remote-fs.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="rescue.target"><span class="term"><code class="filename">rescue.target</code></span><a class="headerlink" title="Permalink to this term" href="#rescue.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="rpcbind.target"><span class="term"><code class="filename">rpcbind.target</code></span><a class="headerlink" title="Permalink to this term" href="#rpcbind.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel"><span class="term"><span class="command"><strong>runlevel</strong></span></span><a class="headerlink" title="Permalink to this term" href="#runlevel">¶</a></dt><dd><p><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a></p></dd><dt id="runlevel2.target"><span class="term"><code class="filename">runlevel2.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel2.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel3.target"><span class="term"><code class="filename">runlevel3.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel3.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel4.target"><span class="term"><code class="filename">runlevel4.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel4.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="runlevel5.target"><span class="term"><code class="filename">runlevel5.target</code></span><a class="headerlink" title="Permalink to this term" href="#runlevel5.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="scope.scope"><span class="term"><code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></span><a class="headerlink" title="Permalink to this term" href="#scope.scope">¶</a></dt><dd><p><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.scope.html"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="service.service"><span class="term"><code class="filename"><em class="replaceable"><code>service</code></em>.service</code></span><a class="headerlink" title="Permalink to this term" href="#service.service">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="shutdown"><span class="term"><span class="command"><strong>shutdown</strong></span></span><a class="headerlink" title="Permalink to this term" href="#shutdown">¶</a></dt><dd><p><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a></p></dd><dt id="shutdown.target"><span class="term"><code class="filename">shutdown.target</code></span><a class="headerlink" title="Permalink to this term" href="#shutdown.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sigpwr.target"><span class="term"><code class="filename">sigpwr.target</code></span><a class="headerlink" title="Permalink to this term" href="#sigpwr.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sleep.target"><span class="term"><code class="filename">sleep.target</code></span><a class="headerlink" title="Permalink to this term" href="#sleep.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="slice.slice"><span class="term"><code class="filename"><em class="replaceable"><code>slice</code></em>.slice</code></span><a class="headerlink" title="Permalink to this term" href="#slice.slice">¶</a></dt><dd><p><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.slice.html"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="smartcard.target"><span class="term"><code class="filename">smartcard.target</code></span><a class="headerlink" title="Permalink to this term" href="#smartcard.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="snapshot.snapshot"><span class="term"><code class="filename"><em class="replaceable"><code>snapshot</code></em>.snapshot</code></span><a class="headerlink" title="Permalink to this term" href="#snapshot.snapshot">¶</a></dt><dd><p><a href="systemd.snapshot.html"><span class="citerefentry"><span class="refentrytitle">systemd.snapshot</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="socket.socket"><span class="term"><code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code></span><a class="headerlink" title="Permalink to this term" href="#socket.socket">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="sockets.target"><span class="term"><code class="filename">sockets.target</code></span><a class="headerlink" title="Permalink to this term" href="#sockets.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sound.target"><span class="term"><code class="filename">sound.target</code></span><a class="headerlink" title="Permalink to this term" href="#sound.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="suspend.target"><span class="term"><code class="filename">suspend.target</code></span><a class="headerlink" title="Permalink to this term" href="#suspend.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="swap.swap"><span class="term"><code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code></span><a class="headerlink" title="Permalink to this term" href="#swap.swap">¶</a></dt><dd><p><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>, <a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>, <a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>, <a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="swap.target"><span class="term"><code class="filename">swap.target</code></span><a class="headerlink" title="Permalink to this term" href="#swap.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="sysinit.target"><span class="term"><code class="filename">sysinit.target</code></span><a class="headerlink" title="Permalink to this term" href="#sysinit.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="syslog.socket"><span class="term"><code class="filename">syslog.socket</code></span><a class="headerlink" title="Permalink to this term" href="#syslog.socket">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="system-update.target"><span class="term"><code class="filename">system-update.target</code></span><a class="headerlink" title="Permalink to this term" href="#system-update.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="system.slice"><span class="term"><code class="filename">system.slice</code></span><a class="headerlink" title="Permalink to this term" href="#system.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="systemctl"><span class="term"><span class="command"><strong>systemctl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemctl">¶</a></dt><dd><p><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a></p></dd><dt id="systemd"><span class="term"><span class="command"><strong>systemd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd">¶</a></dt><dd><p><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a></p></dd><dt id="systemd-analyze"><span class="term"><span class="command"><strong>systemd-analyze</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-analyze">¶</a></dt><dd><p><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a></p></dd><dt id="systemd-ask-password"><span class="term"><span class="command"><strong>systemd-ask-password</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password">¶</a></dt><dd><p><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a></p></dd><dt id="systemd-ask-password-console.path"><span class="term"><code class="filename">systemd-ask-password-console.path</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-console.path">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-ask-password-console.service"><span class="term"><code class="filename">systemd-ask-password-console.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-console.service">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-ask-password-wall.path"><span class="term"><code class="filename">systemd-ask-password-wall.path</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-wall.path">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-ask-password-wall.service"><span class="term"><code class="filename">systemd-ask-password-wall.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-ask-password-wall.service">¶</a></dt><dd><p><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a></p></dd><dt id="systemd-backlight@.service"><span class="term"><code class="filename">systemd-backlight@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-backlight@.service">¶</a></dt><dd><p><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a></p></dd><dt id="systemd-binfmt.service"><span class="term"><code class="filename">systemd-binfmt.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-binfmt.service">¶</a></dt><dd><p><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a></p></dd><dt id="systemd-bus-proxyd.socket"><span class="term"><code class="filename">systemd-bus-proxyd.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-bus-proxyd.socket">¶</a></dt><dd><p><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a></p></dd><dt id="systemd-bus-proxyd@.service"><span class="term"><code class="filename">systemd-bus-proxyd@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-bus-proxyd@.service">¶</a></dt><dd><p><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a></p></dd><dt id="systemd-cat"><span class="term"><span class="command"><strong>systemd-cat</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-cat">¶</a></dt><dd><p><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a></p></dd><dt id="systemd-cgls"><span class="term"><span class="command"><strong>systemd-cgls</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-cgls">¶</a></dt><dd><p><a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a></p></dd><dt id="systemd-cgtop"><span class="term"><span class="command"><strong>systemd-cgtop</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-cgtop">¶</a></dt><dd><p><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a></p></dd><dt id="systemd-cryptsetup@.service"><span class="term"><code class="filename">systemd-cryptsetup@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-cryptsetup@.service">¶</a></dt><dd><p><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a></p></dd><dt id="systemd-delta"><span class="term"><span class="command"><strong>systemd-delta</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-delta">¶</a></dt><dd><p><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a></p></dd><dt id="systemd-detect-virt"><span class="term"><span class="command"><strong>systemd-detect-virt</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-detect-virt">¶</a></dt><dd><p><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a></p></dd><dt id="systemd-fsck-root.service"><span class="term"><code class="filename">systemd-fsck-root.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-fsck-root.service">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="systemd-fsck@.service"><span class="term"><code class="filename">systemd-fsck@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-fsck@.service">¶</a></dt><dd><p><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a></p></dd><dt id="systemd-halt.service"><span class="term"><code class="filename">systemd-halt.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-halt.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-hibernate.service"><span class="term"><code class="filename">systemd-hibernate.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-hibernate.service">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="systemd-hostnamed.service"><span class="term"><code class="filename">systemd-hostnamed.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-hostnamed.service">¶</a></dt><dd><p><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a></p></dd><dt id="systemd-hybrid-sleep.service"><span class="term"><code class="filename">systemd-hybrid-sleep.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-hybrid-sleep.service">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="systemd-inhibit"><span class="term"><span class="command"><strong>systemd-inhibit</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-inhibit">¶</a></dt><dd><p><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a></p></dd><dt id="systemd-initctl.service"><span class="term"><code class="filename">systemd-initctl.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-initctl.service">¶</a></dt><dd><p><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="systemd-initctl.socket"><span class="term"><code class="filename">systemd-initctl.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-initctl.socket">¶</a></dt><dd><p><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a></p></dd><dt id="systemd-journal-gatewayd.service"><span class="term"><code class="filename">systemd-journal-gatewayd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journal-gatewayd.service">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="systemd-journal-gatewayd.socket"><span class="term"><code class="filename">systemd-journal-gatewayd.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journal-gatewayd.socket">¶</a></dt><dd><p><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a></p></dd><dt id="systemd-journal-remote"><span class="term"><span class="command"><strong>systemd-journal-remote</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-journal-remote">¶</a></dt><dd><p><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a></p></dd><dt id="systemd-journald-dev-log.socket"><span class="term"><code class="filename">systemd-journald-dev-log.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journald-dev-log.socket">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd-journald.service"><span class="term"><code class="filename">systemd-journald.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journald.service">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd-journald.socket"><span class="term"><code class="filename">systemd-journald.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-journald.socket">¶</a></dt><dd><p><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a></p></dd><dt id="systemd-kexec.service"><span class="term"><code class="filename">systemd-kexec.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-kexec.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-localed.service"><span class="term"><code class="filename">systemd-localed.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-localed.service">¶</a></dt><dd><p><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a></p></dd><dt id="systemd-logind.service"><span class="term"><code class="filename">systemd-logind.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-logind.service">¶</a></dt><dd><p><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a></p></dd><dt id="systemd-machine-id-setup"><span class="term"><span class="command"><strong>systemd-machine-id-setup</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-machine-id-setup">¶</a></dt><dd><p><a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a></p></dd><dt id="systemd-machined.service"><span class="term"><code class="filename">systemd-machined.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-machined.service">¶</a></dt><dd><p><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a></p></dd><dt id="systemd-modules-load.service"><span class="term"><code class="filename">systemd-modules-load.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-modules-load.service">¶</a></dt><dd><p><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a></p></dd><dt id="systemd-networkd-wait-online.service"><span class="term"><code class="filename">systemd-networkd-wait-online.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-networkd-wait-online.service">¶</a></dt><dd><p><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a></p></dd><dt id="systemd-networkd.service"><span class="term"><code class="filename">systemd-networkd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-networkd.service">¶</a></dt><dd><p><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a></p></dd><dt id="systemd-notify"><span class="term"><span class="command"><strong>systemd-notify</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-notify">¶</a></dt><dd><p><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a></p></dd><dt id="systemd-nspawn"><span class="term"><span class="command"><strong>systemd-nspawn</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-nspawn">¶</a></dt><dd><p><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a></p></dd><dt id="systemd-path"><span class="term"><span class="command"><strong>systemd-path</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-path">¶</a></dt><dd><p><a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a></p></dd><dt id="systemd-poweroff.service"><span class="term"><code class="filename">systemd-poweroff.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-poweroff.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-quotacheck.service"><span class="term"><code class="filename">systemd-quotacheck.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-quotacheck.service">¶</a></dt><dd><p><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a></p></dd><dt id="systemd-random-seed.service"><span class="term"><code class="filename">systemd-random-seed.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-random-seed.service">¶</a></dt><dd><p><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-collect.service"><span class="term"><code class="filename">systemd-readahead-collect.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-collect.service">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-done.service"><span class="term"><code class="filename">systemd-readahead-done.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-done.service">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-done.timer"><span class="term"><code class="filename">systemd-readahead-done.timer</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-done.timer">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-readahead-replay.service"><span class="term"><code class="filename">systemd-readahead-replay.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-readahead-replay.service">¶</a></dt><dd><p><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a></p></dd><dt id="systemd-reboot.service"><span class="term"><code class="filename">systemd-reboot.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-reboot.service">¶</a></dt><dd><p><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a></p></dd><dt id="systemd-remount-fs.service"><span class="term"><code class="filename">systemd-remount-fs.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-remount-fs.service">¶</a></dt><dd><p><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a></p></dd><dt id="systemd-resolved.service"><span class="term"><code class="filename">systemd-resolved.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-resolved.service">¶</a></dt><dd><p><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a></p></dd><dt id="systemd-rfkill@.service"><span class="term"><code class="filename">systemd-rfkill@.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-rfkill@.service">¶</a></dt><dd><p><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a></p></dd><dt id="systemd-run"><span class="term"><span class="command"><strong>systemd-run</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-run">¶</a></dt><dd><p><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a></p></dd><dt id="systemd-shutdownd.service"><span class="term"><code class="filename">systemd-shutdownd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-shutdownd.service">¶</a></dt><dd><p><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a></p></dd><dt id="systemd-shutdownd.socket"><span class="term"><code class="filename">systemd-shutdownd.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-shutdownd.socket">¶</a></dt><dd><p><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a></p></dd><dt id="systemd-socket-proxyd"><span class="term"><span class="command"><strong>systemd-socket-proxyd</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-socket-proxyd">¶</a></dt><dd><p><a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a></p></dd><dt id="systemd-suspend.service"><span class="term"><code class="filename">systemd-suspend.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-suspend.service">¶</a></dt><dd><p><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a></p></dd><dt id="systemd-sysctl.service"><span class="term"><code class="filename">systemd-sysctl.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-sysctl.service">¶</a></dt><dd><p><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a></p></dd><dt id="systemd-sysusers"><span class="term"><span class="command"><strong>systemd-sysusers</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-sysusers">¶</a></dt><dd><p><a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a></p></dd><dt id="systemd-sysusers.service"><span class="term"><code class="filename">systemd-sysusers.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-sysusers.service">¶</a></dt><dd><p><a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a></p></dd><dt id="systemd-timedated.service"><span class="term"><code class="filename">systemd-timedated.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-timedated.service">¶</a></dt><dd><p><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a></p></dd><dt id="systemd-timesyncd.service"><span class="term"><code class="filename">systemd-timesyncd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-timesyncd.service">¶</a></dt><dd><p><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles"><span class="term"><span class="command"><strong>systemd-tmpfiles</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-clean.service"><span class="term"><code class="filename">systemd-tmpfiles-clean.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-clean.service">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-clean.timer"><span class="term"><code class="filename">systemd-tmpfiles-clean.timer</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-clean.timer">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-setup-dev.service"><span class="term"><code class="filename">systemd-tmpfiles-setup-dev.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-setup-dev.service">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tmpfiles-setup.service"><span class="term"><code class="filename">systemd-tmpfiles-setup.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-tmpfiles-setup.service">¶</a></dt><dd><p><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a></p></dd><dt id="systemd-tty-ask-password-agent"><span class="term"><span class="command"><strong>systemd-tty-ask-password-agent</strong></span></span><a class="headerlink" title="Permalink to this term" href="#systemd-tty-ask-password-agent">¶</a></dt><dd><p><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a></p></dd><dt id="systemd-udevd-control.socket"><span class="term"><code class="filename">systemd-udevd-control.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-udevd-control.socket">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="systemd-udevd-kernel.socket"><span class="term"><code class="filename">systemd-udevd-kernel.socket</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-udevd-kernel.socket">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="systemd-udevd.service"><span class="term"><code class="filename">systemd-udevd.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-udevd.service">¶</a></dt><dd><p><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></dd><dt id="systemd-update-done.service"><span class="term"><code class="filename">systemd-update-done.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-update-done.service">¶</a></dt><dd><p><a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a></p></dd><dt id="systemd-update-utmp-runlevel.service"><span class="term"><code class="filename">systemd-update-utmp-runlevel.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-update-utmp-runlevel.service">¶</a></dt><dd><p><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a></p></dd><dt id="systemd-update-utmp.service"><span class="term"><code class="filename">systemd-update-utmp.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-update-utmp.service">¶</a></dt><dd><p><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a></p></dd><dt id="systemd-user-sessions.service"><span class="term"><code class="filename">systemd-user-sessions.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-user-sessions.service">¶</a></dt><dd><p><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a></p></dd><dt id="systemd-vconsole-setup.service"><span class="term"><code class="filename">systemd-vconsole-setup.service</code></span><a class="headerlink" title="Permalink to this term" href="#systemd-vconsole-setup.service">¶</a></dt><dd><p><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a></p></dd><dt id="target.target"><span class="term"><code class="filename"><em class="replaceable"><code>target</code></em>.target</code></span><a class="headerlink" title="Permalink to this term" href="#target.target">¶</a></dt><dd><p><a href="systemd.target.html"><span class="citerefentry"><span class="refentrytitle">systemd.target</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="telinit"><span class="term"><span class="command"><strong>telinit</strong></span></span><a class="headerlink" title="Permalink to this term" href="#telinit">¶</a></dt><dd><p><a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a></p></dd><dt id="time-sync.target"><span class="term"><code class="filename">time-sync.target</code></span><a class="headerlink" title="Permalink to this term" href="#time-sync.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="timedatectl"><span class="term"><span class="command"><strong>timedatectl</strong></span></span><a class="headerlink" title="Permalink to this term" href="#timedatectl">¶</a></dt><dd><p><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a></p></dd><dt id="timer.timer"><span class="term"><code class="filename"><em class="replaceable"><code>timer</code></em>.timer</code></span><a class="headerlink" title="Permalink to this term" href="#timer.timer">¶</a></dt><dd><p><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>, <a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a></p></dd><dt id="timers.target"><span class="term"><code class="filename">timers.target</code></span><a class="headerlink" title="Permalink to this term" href="#timers.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="udevadm"><span class="term"><span class="command"><strong>udevadm</strong></span></span><a class="headerlink" title="Permalink to this term" href="#udevadm">¶</a></dt><dd><p><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a></p></dd><dt id="umount.target"><span class="term"><code class="filename">umount.target</code></span><a class="headerlink" title="Permalink to this term" href="#umount.target">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd><dt id="user.slice"><span class="term"><code class="filename">user.slice</code></span><a class="headerlink" title="Permalink to this term" href="#user.slice">¶</a></dt><dd><p><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a></p></dd></dl></div></div><div class="refsect1"><a name="idm214179507968"></a><h2 id="Colophon">Colophon<a class="headerlink" title="Permalink to this headline" href="#Colophon">¶</a></h2><p><a name="colophon"></a>This index contains 1621 entries in 14 sections,
+referring to 177 individual manual pages.
</p></div></div></body></html>
<varlistentry><term><varname>ConditionKernelCommandLine=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>ConditionNeedsUpdate=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>ConditionNull=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>ConditionPathExists=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>DefaultDependencies=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>DefaultInstance=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Description=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>DeviceAllow=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Restart=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>RestartForceExitStatus=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>RestartPreventExitStatus=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>RestartSec=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Slice=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>SloppyOptions=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>SmackLabel=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>SmackLabelIPIn=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>rd.modules-load=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>rd.systemd.gpt_auto=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>rd.systemd.unit=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>rd.udev.children-max=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>rd.udev.log-priority=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>ro</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>root=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>rootfsflags=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>rootfstype=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>rw</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>s</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>single</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.crash_shell=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>systemd.debug-shell</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>systemd.default_standard_error=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.default_standard_output=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.dump_core=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>systemd.gpt_auto=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>systemd.journald.forward_to_console=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.journald.forward_to_kmsg=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.log_target=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>systemd.mask=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>systemd.restore_state=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.setenv=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>systemd.unit=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>systemd.wants=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>udev.children-max=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>udev.exec-delay=</varname></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>DHCP=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>DHCPServer=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>DNS=</varname></term><listitem><para><citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>Description=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>Description=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Destination=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>DiscoverPathMTU=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Driver=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Duplex=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Gateway=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>Group=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Host=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>IPv4LL=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Label=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>MACAddress=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>Local=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>MACAddress=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>MACAddressPolicy=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>MACVLAN=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>MTUBytes=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>MTUBytes=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>MacLearning=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>Mode=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>MultiQueue=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Name=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>NamePolicy=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>OneQueue=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>PacketInfo=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Path=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>Remote=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>SendHostname=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>TOS=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>TTL=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>Tunnel=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Type=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>UseDNS=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>UseMTU=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>UseRoutes=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><varname>User=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>VLAN=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>VXLAN=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>Virtualization=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>WakeOnLan=</varname></term><listitem><para><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
</refsect1>
<refsect1>
- <title>crypttab options</title>
+ <title><filename>/etc/crypttab</filename> and
+ <filename>/etc/fstab</filename> options</title>
<para>Options which influence mounted filesystems and
encrypted volumes.</para>
- <variablelist id="crypttab-options"><varlistentry><term><varname>cipher=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+ <variablelist id="fstab-options"><varlistentry><term><constant>auto</constant></term><listitem><para><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><option>cipher=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><option>discard</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><option>fail</option></term><listitem><para><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>discard</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>hash=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>hash=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>key-slot=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>key-slot=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>keyfile-offset=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>keyfile-offset=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>keyfile-size=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>keyfile-size=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>luks</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>luks</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>noauto</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>noauto</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>nofail</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>nofail</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>plain</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>plain</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>read-only</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>read-only</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>readonly</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>readonly</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>size=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>size=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>swap</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>swap</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>tcrypt</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>tcrypt</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>tcrypt-hidden</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>tcrypt-hidden</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>tcrypt-keyfile=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>tcrypt-keyfile=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>tcrypt-system</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>tcrypt-system</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>timeout=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>timeout=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>tmp</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>tmp</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>tries=</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>tries=</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>verify</option></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>verify</varname></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>x-initrd.mount</option></term><listitem><para><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><option>x-systemd.automount</option></term><listitem><para><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><option>x-systemd.device-timeout=</option></term><listitem><para><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
</variablelist>
</refsect1>
<varlistentry><term><option>--export-prefix=</option></term><listitem><para><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--field=</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--field=</option></term><listitem><para><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--file-size-max=</option></term><listitem><para><citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--header</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--help</option></term><listitem><para><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>runlevel</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-ask-password</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>telinit</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--help</option></term><listitem><para><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>runlevel</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-ask-password</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>telinit</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--host=</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--no-full</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--no-legend</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--no-legend</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--no-pager</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--no-pager</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--no-reload</option></term><listitem><para><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--output</option></term><listitem><para><citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--output=</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--output=</option></term><listitem><para><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--pager-end</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--prefix=</option></term><listitem><para><citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--preset-mode=</option></term><listitem><para><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><option>--pretty</option></term><listitem><para><citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--priority=</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--root</option></term><listitem><para><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--root=</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--root=</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--runtime</option></term><listitem><para><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--subsystem-nomatch=</option></term><listitem><para><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--suffix=</option></term><listitem><para><citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><option>--sysname-match=</option></term><listitem><para><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--system</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--verify-key=</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>--version</option></term><listitem><para><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>--version</option></term><listitem><para><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--vm</option></term><listitem><para><citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>--wtmp-only</option></term><listitem><para><citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><constant>-1</constant></term><listitem><para><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><option>-A</option></term><listitem><para><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-C</option></term><listitem><para><citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-E</option></term><listitem><para><citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>-F</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>-F</option></term><listitem><para><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-H</option></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-g</option></term><listitem><para><citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>-h</option></term><listitem><para><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-ask-password</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>-h</option></term><listitem><para><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-ask-password</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-i</option></term><listitem><para><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-n</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><option>-o</option></term><listitem><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><option>-o</option></term><listitem><para><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><option>-p</option></term><listitem><para><citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>CPE_NAME=</varname></term><listitem><para><citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>Compress=</varname></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>Compress=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>D</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>ExternalSizeMax=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>F</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>FONT=</varname></term><listitem><para><citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>InhibitDelayMaxSec=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>JournalSizeMax=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>KEYMAP=</varname></term><listitem><para><citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>KEYMAP_TOGGLE=</varname></term><listitem><para><citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>KeepFree=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>KillExcludeUsers=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>KillOnlyUsers=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>L</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>L+</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>LidSwitchIgnoreInhibited=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>MaxFileSec=</varname></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>MaxRetentionSec=</varname></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>MaxUse=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>NAME=</varname></term><listitem><para><citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>NAutoVTs=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>PowerKeyIgnoreInhibited=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>ProcessSizeMax=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>R</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>RateLimitBurst=</varname></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>SplitMode=</varname></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><varname>Storage=</varname></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>Storage=</varname></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>SuspendKeyIgnoreInhibited=</varname></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>b</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>b+</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>c</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>c+</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>d</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>equivalent</varname></term><listitem><para><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>f</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>g</varname></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>h</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><constant>m</constant></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><constant>m</constant></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>masked</varname></term><listitem><para><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>p</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>p+</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><constant>r</constant></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>redirected</varname></term><listitem><para><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>s</varname></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><varname>u</varname></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><varname>udev_log</varname></term><listitem><para><citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><varname>unchanged</varname></term><listitem><para><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<para>Paths and file names referred to in the
documentation.</para>
- <variablelist id="filenames"><varlistentry><term><filename>/</filename></term><listitem><para><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+ <variablelist id="filenames"><varlistentry><term><filename>/</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>$HOME/.config/systemd/user/</filename></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/.readahead</filename></term><listitem><para><citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/bin</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/bin</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/bin/ls</filename></term><listitem><para><citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/boot</filename></term><listitem><para><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/boot</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/boot/loader/entries/<replaceable>MACHINE-ID</replaceable>-<replaceable>KERNEL-VERSION</replaceable>.conf</filename></term><listitem><para><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/dev</filename></term><listitem><para><citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/dev</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/dev/console</filename></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-getty-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/dev/mapper/srv</filename></term><listitem><para><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/dev/net/tun</filename></term><listitem><para><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/dev/null</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/dev/random</filename></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/dev/sda5</filename></term><listitem><para><citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/dev/shm</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/dev/urandom</filename></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/dev/watchdog</filename></term><listitem><para><citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/dev/zero</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/etc/</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/etc/.updated</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/adjtime</filename></term><listitem><para><citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/fstab</filename></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc/group</filename></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/etc/hostname</filename></term><listitem><para><citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/hosts</filename></term><listitem><para><citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/modules-load.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc/modules-load.d/bridge.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/etc/nsswitch.conf</filename></term><listitem><para><citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/os-release</filename></term><listitem><para><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc/passwd</filename></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/etc/resolv.conf</filename></term><listitem><para><citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/sysctl.d/</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/sysctl.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc/sysctl.d/bridge.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/etc/sysctl.d/domain-name.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/etc/systemd/bootchart.conf</filename></term><listitem><para><citerefentry><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc/systemd/coredump.conf</filename></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/etc/systemd/journald.conf</filename></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/systemd/logind.conf</filename></term><listitem><para><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/udev/rules.d</filename></term><listitem><para><citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/etc/udev/rules.d/99-bridge.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/etc/udev/udev.conf</filename></term><listitem><para><citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/etc/vconsole.conf</filename></term><listitem><para><citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/home</filename></term><listitem><para><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/home</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/home/lennart</filename></term><listitem><para><citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/lib</filename></term><listitem><para><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/lib</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/lib64</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/proc</filename></term><listitem><para><citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_bus_creds_get_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_bus_creds_new_from_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/proc</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_bus_creds_get_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_bus_creds_new_from_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/proc/cmdline</filename></term><listitem><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/proc/self/sessionid</filename></term><listitem><para><citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/proc/sys</filename></term><listitem><para><citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/proc/sys</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/proc/sys/kernel/domainname</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/proc/sys/net/ipv6/bindv6only</filename></term><listitem><para><citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/run/</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/root</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/run</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/run/binfmt.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/run/foobar.pid</filename></term><listitem><para><citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/run/log</filename></term><listitem><para><citerefentry><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/run/log</filename></term><listitem><para><citerefentry><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/run/log/journal</filename></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/run/udev/static_node-tags/<replaceable>tag</replaceable></filename></term><listitem><para><citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/run/user</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/run/user</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/run/user/$USER</filename></term><listitem><para><citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/sbin</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/sbin</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/sbin/fsck.</filename></term><listitem><para><citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/sbin/init</filename></term><listitem><para><citerefentry><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/srv</filename></term><listitem><para><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/sbin/login</filename></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/srv</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/sys</filename></term><listitem><para><citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/sys</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/sys/fs/cgroup</filename></term><listitem><para><citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/system-update</filename></term><listitem><para><citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/tmp</filename></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/tmp</filename></term><listitem><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/tmp/var</filename></term><listitem><para><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/upload</filename></term><listitem><para><citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/usr</filename></term><listitem><para><citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr</filename></term><listitem><para><citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/usr/bin</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/bin</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/bin/mount</filename></term><listitem><para><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/bin/umount</filename></term><listitem><para><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/usr/lib/</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/include</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/lib</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/binfmt.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/modules-load.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/lib/os-release</filename></term><listitem><para><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/usr/lib/sysctl.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/systemd/network</filename></term><listitem><para><citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</filename></term><listitem><para><citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/lib/systemd/system-generators/systemd-debug-generator</filename></term><listitem><para><citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/usr/lib/systemd/system-generators/systemd-efi-boot-generator</filename></term><listitem><para><citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/systemd/system-generators/systemd-fstab-generator</filename></term><listitem><para><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><command>/usr/lib/systemd/systemd-udevd</command></term><listitem><para><citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/lib/systemd/systemd-update-done</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/usr/lib/systemd/systemd-update-utmp</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-utmp.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/systemd/systemd-user-sessions</filename></term><listitem><para><citerefentry><refentrytitle>systemd-user-sessions.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/systemd/user-preset/*.preset</filename></term><listitem><para><citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/lib/sysusers.d/</filename></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/lib/sysusers.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/usr/lib/tmpfiles.d</filename></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/tmpfiles.d/*.conf</filename></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/lib/udev/rules.d</filename></term><listitem><para><citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/lib64</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/usr/local/bin</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/local/lib/systemd/system</filename></term><listitem><para><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/local/sbin</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/usr/sbin</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/usr/sbin</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/share</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/share/doc</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/share/factory</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/share/factory/etc</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/usr/share/factory/var</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/usr/share/zoneinfo/</filename></term><listitem><para><citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/var</filename></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/var</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/var/.updated</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/var/cache</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/var/lib</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/var/lib/dbus/machine-id</filename></term><listitem><para><citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/var/lib/systemd/backlight/</filename></term><listitem><para><citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/var/lib/systemd/coredump</filename></term><listitem><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/var/lib/systemd/random-seed</filename></term><listitem><para><citerefentry><refentrytitle>systemd-random-seed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/var/lib/systemd/rfkill/</filename></term><listitem><para><citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/var/log</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>/var/log/journal</filename></term><listitem><para><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/var/log/journal/some.host/remote-some~host.journal</filename></term><listitem><para><citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/var/run</filename></term><listitem><para><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/var/run</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/var/run/dbus/system_bus_socket</filename></term><listitem><para><citerefentry><refentrytitle>systemd-bus-proxyd@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>/var/run/utmp</filename></term><listitem><para><citerefentry><refentrytitle>runlevel</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><filename>/var/tmp</filename></term><listitem><para><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>/var/spool</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>/var/tmp</filename></term><listitem><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename><replaceable>automount</replaceable>.automount</filename></term><listitem><para><citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><command>busctl</command></term><listitem><para><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><command>coredumpctl</command></term><listitem><para><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>cryptsetup-pre.target</filename></term><listitem><para><citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>cryptsetup.target</filename></term><listitem><para><citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>ctrl-alt-del.target</filename></term><listitem><para><citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><command>systemd-cgtop</command></term><listitem><para><citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-<varlistentry><term><command>systemd-coredumpctl</command></term><listitem><para><citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
-
<varlistentry><term><filename>systemd-cryptsetup@.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><command>systemd-delta</command></term><listitem><para><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><command>systemd-nspawn</command></term><listitem><para><citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><command>systemd-path</command></term><listitem><para><citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>systemd-poweroff.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-halt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>systemd-quotacheck.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>systemd-sysctl.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><command>systemd-sysusers</command></term><listitem><para><citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+
+<varlistentry><term><filename>systemd-sysusers.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>systemd-timedated.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>systemd-timesyncd.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>systemd-udevd.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+<varlistentry><term><filename>systemd-update-done.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
+
<varlistentry><term><filename>systemd-update-utmp-runlevel.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-utmp.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<varlistentry><term><filename>systemd-update-utmp.service</filename></term><listitem><para><citerefentry><refentrytitle>systemd-update-utmp.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></para></listitem></varlistentry>
<refsect1>
<title>Colophon</title>
- <para id="colophon">This index contains 1535 entries in 14 sections,
-referring to 170 individual manual pages.
+ <para id="colophon">This index contains 1621 entries in 14 sections,
+referring to 177 individual manual pages.
</para>
</refsect1>
</refentry>
'\" t
-.TH "SYSTEMD\&.EXEC" "5" "" "systemd 214" "systemd.exec"
+.TH "SYSTEMD\&.EXEC" "5" "" "systemd 215" "systemd.exec"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
"full"\&. If true, mounts the
/usr
directory read\-only for processes invoked by this unit\&. If set to
-"full"
-the
+"full", the
/etc
-is mounted read\-only, too\&. This setting ensures that any modification of the vendor supplied operating system (and optionally its configuration) is prohibited for the service\&. It is recommended to enable this setting for all long\-running services, unless they are involved with system updates or need to modify the operating system in other ways\&. Note however, that processes retaining the CAP_SYS_ADMIN capability can undo the effect of this setting\&. This setting is hence particularly useful for daemons which have this capability removed, for example with
+directory is mounted read\-only, too\&. This setting ensures that any modification of the vendor supplied operating system (and optionally its configuration) is prohibited for the service\&. It is recommended to enable this setting for all long\-running services, unless they are involved with system updates or need to modify the operating system in other ways\&. Note however that processes retaining the CAP_SYS_ADMIN capability can undo the effect of this setting\&. This setting is hence particularly useful for daemons which have this capability removed, for example with
\fICapabilityBoundingSet=\fR\&. Defaults to off\&.
.RE
.PP
and
/run/user
are made inaccessible and empty for processes invoked by this unit\&. If set to
-"read\-only"
-the two directores are made read\-only instead\&. It is recommended to enable this setting for all long\-running services (in particular network\-facing ones), to ensure they cannot get access to private user data, unless the services actually require access to the user\*(Aqs private data\&. Note however, that processes retaining the CAP_SYS_ADMIN capability can undo the effect of this setting\&. This setting is hence particularly useful for daemons which have this capability removed, for example with
+"read\-only", the two directores are made read\-only instead\&. It is recommended to enable this setting for all long\-running services (in particular network\-facing ones), to ensure they cannot get access to private user data, unless the services actually require access to the user\*(Aqs private data\&. Note however that processes retaining the CAP_SYS_ADMIN capability can undo the effect of this setting\&. This setting is hence particularly useful for daemons which have this capability removed, for example with
\fICapabilityBoundingSet=\fR\&. Defaults to off\&.
.RE
.PP
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.exec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.exec — Execution environment configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.exec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.exec — Execution environment configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
<code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code>,
<code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code>,
- <code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code></p></div><div class="refsect1"><a name="idm214195915600"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Unit configuration files for services, sockets,
+ <code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code></p></div><div class="refsect1"><a name="idm214176829472"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Unit configuration files for services, sockets,
mount points, and swap devices share a subset of
configuration options which define the execution
environment of spawned processes.</p><p>This man page lists the configuration options
configuration files. The execution specific
configuration options are configured in the [Service],
[Socket], [Mount], or [Swap] sections, depending on the unit
- type.</p></div><div class="refsect1"><a name="idm214194423040"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="WorkingDirectory="><span class="term"><code class="varname">WorkingDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#WorkingDirectory=">¶</a></dt><dd><p>Takes an absolute
+ type.</p></div><div class="refsect1"><a name="idm214178282400"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="WorkingDirectory="><span class="term"><code class="varname">WorkingDirectory=</code></span><a class="headerlink" title="Permalink to this term" href="#WorkingDirectory=">¶</a></dt><dd><p>Takes an absolute
directory path. Sets the working
directory for executed processes. If
not set, defaults to the root directory
mounts the <code class="filename">/usr</code>
directory read-only for processes
invoked by this unit. If set to
- "<code class="literal">full</code>" the
- <code class="filename">/etc</code> is mounted
+ "<code class="literal">full</code>", the
+ <code class="filename">/etc</code> directory is mounted
read-only, too. This setting ensures
that any modification of the vendor
supplied operating system (and
all long-running services, unless they
are involved with system updates or
need to modify the operating system in
- other ways. Note however, that
+ other ways. Note however that
processes retaining the CAP_SYS_ADMIN
capability can undo the effect of this
setting. This setting is hence
<code class="filename">/run/user</code> are
made inaccessible and empty for
processes invoked by this unit. If set
- to "<code class="literal">read-only</code>" the
+ to "<code class="literal">read-only</code>", the
two directores are made read-only
instead. It is recommended to enable
this setting for all long-running
ones), to ensure they cannot get access
to private user data, unless the
services actually require access to
- the user's private data. Note however,
+ the user's private data. Note however
that processes retaining the
CAP_SYS_ADMIN capability can undo the
effect of this setting. This setting
directories that require more complex
or different configuration or lifetime
guarantees, please consider using
- <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191115952"></a><h2 id="Environment variables in spawned processes">Environment variables in spawned processes<a class="headerlink" title="Permalink to this headline" href="#Environment%20variables%20in%20spawned%20processes">¶</a></h2><p>Processes started by the system are executed in
+ <a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214175926544"></a><h2 id="Environment variables in spawned processes">Environment variables in spawned processes<a class="headerlink" title="Permalink to this headline" href="#Environment%20variables%20in%20spawned%20processes">¶</a></h2><p>Processes started by the system are executed in
a clean environment in which select variables
listed below are set. System processes started by systemd
do not inherit variables from PID 1, but processes
<code class="varname">systemd.setenv=</code> (see
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>). Additional
variables may also be set through PAM,
- cf. <a href="pam_env.html"><span class="citerefentry"><span class="refentrytitle">pam_env</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214191076464"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ cf. <a href="pam_env.html"><span class="citerefentry"><span class="refentrytitle">pam_env</span>(8)</span></a>.</p></div><div class="refsect1"><a name="idm214175887296"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(8)</span></a>,
mounts the <filename>/usr</filename>
directory read-only for processes
invoked by this unit. If set to
- <literal>full</literal> the
- <filename>/etc</filename> is mounted
+ <literal>full</literal>, the
+ <filename>/etc</filename> directory is mounted
read-only, too. This setting ensures
that any modification of the vendor
supplied operating system (and
all long-running services, unless they
are involved with system updates or
need to modify the operating system in
- other ways. Note however, that
+ other ways. Note however that
processes retaining the CAP_SYS_ADMIN
capability can undo the effect of this
setting. This setting is hence
<filename>/run/user</filename> are
made inaccessible and empty for
processes invoked by this unit. If set
- to <literal>read-only</literal> the
+ to <literal>read-only</literal>, the
two directores are made read-only
instead. It is recommended to enable
this setting for all long-running
ones), to ensure they cannot get access
to private user data, unless the
services actually require access to
- the user's private data. Note however,
+ the user's private data. Note however
that processes retaining the
CAP_SYS_ADMIN capability can undo the
effect of this setting. This setting
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd, init — systemd system and service manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">init [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214185400592"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>systemd is a system and service manager for
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd, init — systemd system and service manager</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">systemd [OPTIONS...]</code> </p></div><div class="cmdsynopsis"><p><code class="command">init [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214189898832"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>systemd is a system and service manager for
Linux operating systems. When run as first process on
boot (as PID 1), it acts as init system that brings
up and maintains userspace services.</p><p>For compatibility with SysV, if systemd is called
<code class="filename">system.conf</code>, otherwise
<code class="filename">user.conf</code>. See
<a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a>
- for more information.</p></div><div class="refsect1"><a name="idm214185392096"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--test"><span class="term"><code class="option">--test</code></span><a class="headerlink" title="Permalink to this term" href="#--test">¶</a></dt><dd><p>Determine startup
+ for more information.</p></div><div class="refsect1"><a name="idm214188084384"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--test"><span class="term"><code class="option">--test</code></span><a class="headerlink" title="Permalink to this term" href="#--test">¶</a></dt><dd><p>Determine startup
sequence, dump it and exit. This is an
option useful for debugging
only.</p></dd><dt id="--dump-configuration-items"><span class="term"><code class="option">--dump-configuration-items</code></span><a class="headerlink" title="Permalink to this term" href="#--dump-configuration-items">¶</a></dt><dd><p>Dump understood unit
<code class="option">--default-standard-error=</code>
to
<code class="option">inherit</code>.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
- </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186942512"></a><h2 id="Concepts">Concepts<a class="headerlink" title="Permalink to this headline" href="#Concepts">¶</a></h2><p>systemd provides a dependency system between
+ </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189143952"></a><h2 id="Concepts">Concepts<a class="headerlink" title="Permalink to this headline" href="#Concepts">¶</a></h2><p>systemd provides a dependency system between
various entities called "units" of 12 different
types. Units encapsulate various objects that are
relevant for system boot-up and maintenance. The
or initrd environment should implement the
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface" target="_top">Container
Interface</a> or <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface" target="_top">initrd
- Interface</a> specifications, respectively.</p></div><div class="refsect1"><a name="idm214182266208"></a><h2 id="Directories">Directories<a class="headerlink" title="Permalink to this headline" href="#Directories">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="System unit directories"><span class="term">System unit directories</span><a class="headerlink" title="Permalink to this term" href="#System%20unit%20directories">¶</a></dt><dd><p>The systemd system
+ Interface</a> specifications, respectively.</p></div><div class="refsect1"><a name="idm214189453632"></a><h2 id="Directories">Directories<a class="headerlink" title="Permalink to this headline" href="#Directories">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="System unit directories"><span class="term">System unit directories</span><a class="headerlink" title="Permalink to this term" href="#System%20unit%20directories">¶</a></dt><dd><p>The systemd system
manager reads unit configuration from
various directories. Packages that
want to install unit files shall place
unit with a native unit configuration
file cannot be started by activating it
in the SysV runlevel link
- farm.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182243984"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGTERM"><span class="term"><code class="constant">SIGTERM</code></span><a class="headerlink" title="Permalink to this term" href="#SIGTERM">¶</a></dt><dd><p>Upon receiving this
+ farm.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189693872"></a><h2 id="Signals">Signals<a class="headerlink" title="Permalink to this headline" href="#Signals">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="SIGTERM"><span class="term"><code class="constant">SIGTERM</code></span><a class="headerlink" title="Permalink to this term" href="#SIGTERM">¶</a></dt><dd><p>Upon receiving this
signal the systemd system manager
serializes its state, reexecutes
itself and deserializes the saved
<code class="varname">systemd.log_target=syslog-or-kmsg</code>
on <code class="constant">SIGRTMIN+29</code>) on
the kernel command
- line.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182175312"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_LOG_LEVEL"><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LEVEL">¶</a></dt><dd><p>systemd reads the
+ line.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191284560"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_LOG_LEVEL"><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_LEVEL">¶</a></dt><dd><p>systemd reads the
log level from this environment
variable. This can be overridden with
<code class="option">--log-level=</code>.</p></dd><dt id="$SYSTEMD_LOG_TARGET"><span class="term"><code class="varname">$SYSTEMD_LOG_TARGET</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LOG_TARGET">¶</a></dt><dd><p>systemd reads the
start-up completion notification. See
<a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>
for more information.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214182151888"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>When run as system instance systemd parses a
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214191260432"></a><h2 id="Kernel Command Line">Kernel Command Line<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Command%20Line">¶</a></h2><p>When run as system instance systemd parses a
number of kernel command line
- arguments<a href="#ftn.idm214182150864" class="footnote" name="idm214182150864"><sup class="footnote">[1]</sup></a>:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code>, </span><span class="term"><code class="varname">rd.systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p>Overrides the unit to
+ arguments<a href="#ftn.idm214191259376" class="footnote" name="idm214191259376"><sup class="footnote">[1]</sup></a>:</p><div class="variablelist"><dl class="variablelist"><dt id="systemd.unit="><span class="term"><code class="varname">systemd.unit=</code>, </span><span class="term"><code class="varname">rd.systemd.unit=</code></span><a class="headerlink" title="Permalink to this term" href="#systemd.unit=">¶</a></dt><dd><p>Overrides the unit to
activate on boot. Defaults to
<code class="filename">default.target</code>. This
may be used to temporarily boot into a
</p></dd></dl></div><p>For other kernel command line parameters
understood by components of the core OS, please refer
to
- <a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214182090736"></a><h2 id="Sockets and FIFOs">Sockets and FIFOs<a class="headerlink" title="Permalink to this headline" href="#Sockets%20and%20FIFOs">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/run/systemd/notify"><span class="term"><code class="filename">/run/systemd/notify</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/notify">¶</a></dt><dd><p>Daemon status
+ <a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>.</p></div><div class="refsect1"><a name="idm214187977552"></a><h2 id="Sockets and FIFOs">Sockets and FIFOs<a class="headerlink" title="Permalink to this headline" href="#Sockets%20and%20FIFOs">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="/run/systemd/notify"><span class="term"><code class="filename">/run/systemd/notify</code></span><a class="headerlink" title="Permalink to this term" href="#/run/systemd/notify">¶</a></dt><dd><p>Daemon status
notification socket. This is an
<code class="constant">AF_UNIX</code> datagram socket and is used to
implement the daemon notification
unit. This is a named pipe in the file
system. This interface is obsolete and
should not be used in new
- applications.</p></dd></dl></div></div><div class="refsect1"><a name="idm214182077552"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ applications.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187964368"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
The <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/" target="_top">systemd Homepage</a>,
<a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a>,
<a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a>,
<a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>,
<a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a>,
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
- </p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm214182150864" class="footnote"><p><a href="#idm214182150864" class="para"><sup class="para">[1] </sup></a>If run inside a Linux
+ </p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm214191259376" class="footnote"><p><a href="#idm214191259376" class="para"><sup class="para">[1] </sup></a>If run inside a Linux
container these arguments may be passed as command
line arguments to systemd itself, next to any of the
command line options listed in the Options section
'\" t
-.TH "SYSTEMD\&.INDEX" "7" "" "systemd 214" "systemd.index"
+.TH "SYSTEMD\&.INDEX" "7" "" "systemd 215" "systemd.index"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.SH "C"
.PP
+\fBcoredump.conf\fR(5)
+\-\- Coredump storage configuration file
+.br
+\fBcoredumpctl\fR(1)
+\-\- Retrieve coredumps from the journal
+.br
\fBcrypttab\fR(5)
\-\- Configuration for encrypted block devices
.br
\-\- Writing and packaging system daemons
.br
+.SH "F"
+.PP
+\fBfile-hierarchy\fR(7)
+\-\- File system hierarchy overview
+.br
+
.SH "H"
.PP
\fBhalt\fR(8)
\fBsystemd-cgtop\fR(1)
\-\- Show top control groups by their resource usage
.br
-\fBsystemd-coredumpctl\fR(1)
-\-\- Retrieve coredumps from the journal
-.br
\fBsystemd-cryptsetup\fR(8)
\-\- Full disk decryption logic
.br
\fBsystemd-cryptsetup@.service\fR(8)
\-\- Full disk decryption logic
.br
+\fBsystemd-debug-generator\fR(8)
+\-\- Generator for enabling a runtime debug shell and masking specific units at boot
+.br
\fBsystemd-delta\fR(1)
\-\- Find overridden configuration files
.br
\fBsystemd-nspawn\fR(1)
\-\- Spawn a namespace container for debugging, testing and building
.br
+\fBsystemd-path\fR(1)
+\-\- List and query system and user paths
+.br
\fBsystemd-poweroff.service\fR(8)
\-\- System shutdown logic
.br
\fBsystemd-system.conf\fR(5)
\-\- System and session service manager configuration file
.br
+\fBsystemd-sysusers\fR(8)
+\-\- Allocate system users and groups
+.br
+\fBsystemd-sysusers.service\fR(8)
+\-\- Allocate system users and groups
+.br
\fBsystemd-timedated\fR(8)
\-\- Time and date bus mechanism
.br
\fBsystemd-udevd.service\fR(8)
\-\- Device event managing daemon
.br
+\fBsystemd-update-done\fR(8)
+\-\- Mark
+.br
+\fBsystemd-update-done.service\fR(8)
+\-\- Mark
+.br
\fBsystemd-update-utmp\fR(8)
\-\- Write audit and utmp updates at bootup, runlevel changes and shutdown
.br
\fBsystemd.unit\fR(5)
\-\- Unit configuration
.br
+\fBsysusers.d\fR(5)
+\-\- Declarative allocation of system users and groups
+.br
.SH "T"
.PP
.PP
\fBsystemd.directives\fR(7)
.PP
-This index contains 403 entries, referring to 173 individual manual pages\&.
+This index contains 412 entries, referring to 180 individual manual pages\&.
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.index"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.index — List all manpages from the systemd project</p></div><div class="refsect1"><a name="idm214190002240"></a><h2 id="B">B<a class="headerlink" title="Permalink to this headline" href="#B">¶</a></h2><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a> -- Configure additional binary formats for executables at boot<br><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a> -- Boot performance analysis graphing tool configuration file<br><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a> -- Control the firmware and boot manager settings<br><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a> -- System bootup process<br><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a> -- Introspect the bus<br></p></div><div class="refsect1"><a name="idm214189997248"></a><h2 id="C">C<a class="headerlink" title="Permalink to this headline" href="#C">¶</a></h2><p><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a> -- Configuration for encrypted block devices<br></p></div><div class="refsect1"><a name="idm214189995840"></a><h2 id="D">D<a class="headerlink" title="Permalink to this headline" href="#D">¶</a></h2><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a> -- Writing and packaging system daemons<br></p></div><div class="refsect1"><a name="idm214189994432"></a><h2 id="H">H<a class="headerlink" title="Permalink to this headline" href="#H">¶</a></h2><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a> -- Local hostname configuration file<br><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a> -- Control the system hostname<br></p></div><div class="refsect1"><a name="idm214189991232"></a><h2 id="I">I<a class="headerlink" title="Permalink to this headline" href="#I">¶</a></h2><p><a href="init.html"><span class="citerefentry"><span class="refentrytitle">init</span>(1)</span></a> -- systemd system and service manager<br></p></div><div class="refsect1"><a name="idm214189989824"></a><h2 id="J">J<a class="headerlink" title="Permalink to this headline" href="#J">¶</a></h2><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a> -- Query the systemd journal<br><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a> -- Journal service configuration file<br></p></div><div class="refsect1"><a name="idm214189987520"></a><h2 id="K">K<a class="headerlink" title="Permalink to this headline" href="#K">¶</a></h2><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a> -- Kernel command line parameters<br><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a> -- Add and remove kernel and initramfs images to and from /boot<br></p></div><div class="refsect1"><a name="idm214189985216"></a><h2 id="L">L<a class="headerlink" title="Permalink to this headline" href="#L">¶</a></h2><p><a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a> -- Configuration file for locale settings<br><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a> -- Control the system locale and keyboard layout settings<br><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a> -- Local timezone configuration file<br><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a> -- Control the systemd login manager<br><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a> -- Login manager configuration file<br></p></div><div class="refsect1"><a name="idm214189959600"></a><h2 id="M">M<a class="headerlink" title="Permalink to this headline" href="#M">¶</a></h2><p><a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> -- Local machine ID configuration file<br><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a> -- Local machine information file<br><a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a> -- Control the systemd machine manager<br><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a> -- Configure kernel modules to load at boot<br></p></div><div class="refsect1"><a name="idm214189955504"></a><h2 id="N">N<a class="headerlink" title="Permalink to this headline" href="#N">¶</a></h2><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a> -- Provide hostname resolution for the locally configured system hostname.<br></p></div><div class="refsect1"><a name="idm214189954096"></a><h2 id="O">O<a class="headerlink" title="Permalink to this headline" href="#O">¶</a></h2><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a> -- Operating system identification<br></p></div><div class="refsect1"><a name="idm214189952688"></a><h2 id="P">P<a class="headerlink" title="Permalink to this headline" href="#P">¶</a></h2><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a> -- Register user sessions in the systemd login manager<br><a href="poweroff.html"><span class="citerefentry"><span class="refentrytitle">poweroff</span>(8)</span></a> -- Halt, power-off or reboot the machine<br></p></div><div class="refsect1"><a name="idm214189950384"></a><h2 id="R">R<a class="headerlink" title="Permalink to this headline" href="#R">¶</a></h2><p><a href="reboot.html"><span class="citerefentry"><span class="refentrytitle">reboot</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a> -- Network Name Resolution configuration file<br><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a> -- Print previous and current SysV runlevel<br></p></div><div class="refsect1"><a name="idm214189947184"></a><h2 id="S">S<a class="headerlink" title="Permalink to this headline" href="#S">¶</a></h2><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a> -- APIs for submitting and querying log entries to and from the journal<br><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a> -- APIs for tracking logins<br><a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a> -- Reference implementation of APIs for controlling boot-time read-ahead<br><a href="SD_ALERT.html"><span class="citerefentry"><span class="refentrytitle">SD_ALERT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a> -- Test whether the system is running the systemd init system<br><a href="sd_bus_creds_get_audit_login_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_login_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_audit_session_id.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_session_id</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cgroup.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cgroup</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cmdline.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cmdline</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_exe.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_exe</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_gid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_gid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_mask.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_mask</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_owner_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid_starttime.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid_starttime</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_selinux_context.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_selinux_context</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_session</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_slice</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unique_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unique_name</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_user_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_well_known_names.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_well_known_names</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_bounding_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_bounding_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_effective_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_effective_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_inheritable_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_inheritable_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_permitted_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_permitted_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_default_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_default_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_copy.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_copy</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_free.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_free</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_get_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_get_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_has_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_has_name</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_is_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_is_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_const.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_const</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errnof.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errnof</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a> -- Attach parts of message based on a format string<br><a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_iovec</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_memfd</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_space</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a> -- Attach a single part to a message<br><a href="sd_bus_message_append_string_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_iovec</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_space</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a> -- Attach an array of strings to a message<br><a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_realtime_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_reply_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_reply_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_seqnum.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_seqnum</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_negotiate_creds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_creds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_timestamps.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamps</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_open_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_container.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_container</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_remote</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_path_decode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_decode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_ref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_release_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_release_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="SD_CRIT.html"><span class="citerefentry"><span class="refentrytitle">SD_CRIT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_DEBUG.html"><span class="citerefentry"><span class="refentrytitle">SD_DEBUG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_EMERG.html"><span class="citerefentry"><span class="refentrytitle">SD_EMERG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_ERR.html"><span class="citerefentry"><span class="refentrytitle">SD_ERR</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_default.html"><span class="citerefentry"><span class="refentrytitle">sd_event_default</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_ref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_source_get_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_clock.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_clock</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_unref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_get_machine_names.html"><span class="citerefentry"><span class="refentrytitle">sd_get_machine_names</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_get_sessions</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_uids.html"><span class="citerefentry"><span class="refentrytitle">sd_get_uids</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="SD_ID128_CONST_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_CONST_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_equal.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_equal</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_VAL.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_VAL</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_from_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_from_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="sd_id128_get_boot.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_boot</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="sd_id128_get_machine.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_machine</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="SD_ID128_MAKE.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_MAKE</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a> -- Generate 128-bit IDs<br><a href="sd_id128_t.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_t</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="SD_INFO.html"><span class="citerefentry"><span class="refentrytitle">SD_INFO</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_mq.html"><span class="citerefentry"><span class="refentrytitle">sd_is_mq</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_inet.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_inet</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_unix.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_unix</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_special.html"><span class="citerefentry"><span class="refentrytitle">sd_is_special</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_journal.html"><span class="citerefentry"><span class="refentrytitle">sd_journal</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_add_conjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_conjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_disjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_disjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_match.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_match</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_APPEND.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_APPEND</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_close.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_close</span>(3)</span></a> -- Open the system journal for reading<br><a href="SD_JOURNAL_CURRENT_USER.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_CURRENT_USER</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_enumerate_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_enumerate_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_flush_matches.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_flush_matches</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_FOREACH.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_BACKWARDS.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_BACKWARDS</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_DATA.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_DATA</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="SD_JOURNAL_FOREACH_UNIQUE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_UNIQUE</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_get_catalog.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_catalog_for_message_id.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog_for_message_id</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_get_cutoff_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_monotonic_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_events</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_monotonic_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_timeout</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a> -- Journal disk usage<br><a href="SD_JOURNAL_INVALIDATE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_INVALIDATE</span>(3)</span></a> -- Journal change notification interface<br><a href="SD_JOURNAL_LOCAL_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_LOCAL_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_next_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_NOP.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_NOP</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_container.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_container</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_directory.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_directory</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_files.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_files</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_perror.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_perror</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_previous_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_printv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_printv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_process.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_process</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_query_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_query_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_reliable_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_reliable_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_restart_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_restart_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="SD_JOURNAL_RUNTIME_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_RUNTIME_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_monotonic_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_realtime_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_tail.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_tail</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_send.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_send</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_sendv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_sendv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_set_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_set_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a> -- Create log stream file descriptor to the journal<br><a href="SD_JOURNAL_SUPPRESS_LOCATION.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SUPPRESS_LOCATION</span>(3)</span></a> -- Submit log entries to the journal<br><a href="SD_JOURNAL_SYSTEM.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SYSTEM</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_test_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_test_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_wait.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_wait</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="SD_LISTEN_FDS_START.html"><span class="citerefentry"><span class="refentrytitle">SD_LISTEN_FDS_START</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="sd_login_monitor.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_flush.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_flush</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_events</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_fd</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_timeout</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_unref</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="SD_NOTICE.html"><span class="citerefentry"><span class="refentrytitle">SD_NOTICE</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_notifyf.html"><span class="citerefentry"><span class="refentrytitle">sd_notifyf</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_peer_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a> -- Control ongoing disk boot-time read-ahead operations<br><a href="sd_seat_can_graphical.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_graphical</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_multi_session.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_multi_session</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_tty</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_sessions</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_session_get_class.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_class</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_display</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_host.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_host</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_user.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_user</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_service.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_service</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_state</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_tty</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_type.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_type</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_uid</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_vt.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_vt</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_remote</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_uid_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_display</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_seats</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_sessions</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_is_on_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_is_on_seat</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="SD_WARNING.html"><span class="citerefentry"><span class="refentrytitle">SD_WARNING</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a> -- Check whether the service manager expects watchdog keep-alive notifications from a service<br><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a> -- Configure kernel parameters at boot<br><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a> -- Control the systemd system and service manager<br><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a> -- systemd system and service manager<br><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a> -- Test socket activation of daemons<br><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a> -- Analyze system boot-up performance<br><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a> -- Query the user for a system password<br><a href="systemd-ask-password-console.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-backlight.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-binfmt.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a> -- Boot performance graphing tool<br><a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a> -- Connect STDIO or a socket to a given bus address<br><a href="systemd-bus-proxyd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd.socket</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a> -- Connect a pipeline or program's output with the journal<br><a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a> -- Recursively show control group contents<br><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a> -- Show top control groups by their resource usage<br><a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a> -- Retrieve coredumps from the journal<br><a href="systemd-cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a> -- Unit generator for<br><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a> -- Find overridden configuration files<br><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a> -- Detect execution in a virtualized environment<br><a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a> -- Generator for automatically mounting the EFI System Partition used by the current boot to<br><a href="systemd-fsck.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck-root.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck-root.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a> -- Unit generator for /etc/fstab<br><a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a> -- Generator for enabling getty instances on the console<br><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a> -- Generator for automatically discovering and mounting root,<br><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-hibernate.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hibernate.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-hostnamed.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hybrid-sleep.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hybrid-sleep.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a> -- Execute a program with an inhibition lock taken<br><a href="systemd-initctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.socket</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-journal-gatewayd.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.socket</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a> -- Stream journal messages over the network<br><a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a> -- Journal service<br><a href="systemd-journald-dev-log.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald-dev-log.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-kexec.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-kexec.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-localed.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-logind.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind</span>(8)</span></a> -- Login manager<br><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a> -- Login manager<br><a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a> -- Initialize the machine ID in /etc/machine-id<br><a href="systemd-machined.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-modules-load.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a> -- Network manager<br><a href="systemd-networkd-wait-online.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a> -- Network manager<br><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a> -- Spawn a namespace container for debugging, testing and building<br><a href="systemd-poweroff.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-poweroff.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-quotacheck.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-random-seed.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-readahead.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-collect.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-collect.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.timer</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-reboot.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-reboot.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-remount-fs.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-resolved.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-rfkill.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a> -- Run programs in transient scope or service units<br><a href="systemd-shutdown.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdown</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-shutdownd.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.socket</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-sleep.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a> -- Suspend and hibernation configuration file<br><a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a> -- Bidirectionally proxy local sockets to another (possibly remote) socket.<br><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sysctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a> -- Generator for redirecting boot to offline update mode<br><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-timedated.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timesyncd.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.timer</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup-dev.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup-dev.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a> -- List or process pending systemd password requests<br><a href="systemd-udevd.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-control.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-control.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-kernel.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-kernel.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-update-utmp.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp-runlevel.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp-runlevel.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-user-sessions.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-user.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-vconsole-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a> -- Automount unit configuration<br><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a> -- Device unit configuration<br><a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a> -- Index of configuration directives<br><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a> -- Execution environment configuration<br><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a> -- Special journal fields<br><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a> -- Process killing procedure configuration<br><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a> -- Network device configuration<br><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a> -- Mount unit configuration<br><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a> -- Virtual Network Device configuration<br><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a> -- Network configuration<br><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a> -- Path unit configuration<br><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a> -- Service enablement presets<br><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a> -- Resource control unit settings<br><a href="systemd.scope.html"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a> -- Scope unit configuration<br><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a> -- Service unit configuration<br><a href="systemd.slice.html"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a> -- Slice unit configuration<br><a href="systemd.snapshot.html"><span class="citerefentry"><span class="refentrytitle">systemd.snapshot</span>(5)</span></a> -- Snapshot unit configuration<br><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a> -- Socket unit configuration<br><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a> -- Special systemd units<br><a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a> -- Swap unit configuration<br><a href="systemd.target.html"><span class="citerefentry"><span class="refentrytitle">systemd.target</span>(5)</span></a> -- Target unit configuration<br><a href="systemd.time.html"><span class="citerefentry"><span class="refentrytitle">systemd.time</span>(7)</span></a> -- Time and date specifications<br><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a> -- Timer unit configuration<br><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> -- Unit configuration<br></p></div><div class="refsect1"><a name="idm214189595360"></a><h2 id="T">T<a class="headerlink" title="Permalink to this headline" href="#T">¶</a></h2><p><a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a> -- Change SysV runlevel<br><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a> -- Control the system time and date<br><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> -- Configuration for creation, deletion and cleaning of volatile and temporary files<br></p></div><div class="refsect1"><a name="idm214189591968"></a><h2 id="U">U<a class="headerlink" title="Permalink to this headline" href="#U">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a> -- Dynamic device management<br><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a> -- udev management tool<br></p></div><div class="refsect1"><a name="idm214189589568"></a><h2 id="V">V<a class="headerlink" title="Permalink to this headline" href="#V">¶</a></h2><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a> -- Configuration file for the virtual console<br></p></div><div class="refsect1"><a name="idm214189588096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.index"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.index — List all manpages from the systemd project</p></div><div class="refsect1"><a name="idm214175805536"></a><h2 id="B">B<a class="headerlink" title="Permalink to this headline" href="#B">¶</a></h2><p><a href="binfmt.d.html"><span class="citerefentry"><span class="refentrytitle">binfmt.d</span>(5)</span></a> -- Configure additional binary formats for executables at boot<br><a href="bootchart.conf.html"><span class="citerefentry"><span class="refentrytitle">bootchart.conf</span>(5)</span></a> -- Boot performance analysis graphing tool configuration file<br><a href="bootctl.html"><span class="citerefentry"><span class="refentrytitle">bootctl</span>(1)</span></a> -- Control the firmware and boot manager settings<br><a href="bootup.html"><span class="citerefentry"><span class="refentrytitle">bootup</span>(7)</span></a> -- System bootup process<br><a href="busctl.html"><span class="citerefentry"><span class="refentrytitle">busctl</span>(1)</span></a> -- Introspect the bus<br></p></div><div class="refsect1"><a name="idm214175800544"></a><h2 id="C">C<a class="headerlink" title="Permalink to this headline" href="#C">¶</a></h2><p><a href="coredump.conf.html"><span class="citerefentry"><span class="refentrytitle">coredump.conf</span>(5)</span></a> -- Coredump storage configuration file<br><a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a> -- Retrieve coredumps from the journal<br><a href="crypttab.html"><span class="citerefentry"><span class="refentrytitle">crypttab</span>(5)</span></a> -- Configuration for encrypted block devices<br></p></div><div class="refsect1"><a name="idm214175797344"></a><h2 id="D">D<a class="headerlink" title="Permalink to this headline" href="#D">¶</a></h2><p><a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a> -- Writing and packaging system daemons<br></p></div><div class="refsect1"><a name="idm214175795936"></a><h2 id="F">F<a class="headerlink" title="Permalink to this headline" href="#F">¶</a></h2><p><a href="file-hierarchy.html"><span class="citerefentry"><span class="refentrytitle">file-hierarchy</span>(7)</span></a> -- File system hierarchy overview<br></p></div><div class="refsect1"><a name="idm214175794528"></a><h2 id="H">H<a class="headerlink" title="Permalink to this headline" href="#H">¶</a></h2><p><a href="halt.html"><span class="citerefentry"><span class="refentrytitle">halt</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="hostname.html"><span class="citerefentry"><span class="refentrytitle">hostname</span>(5)</span></a> -- Local hostname configuration file<br><a href="hostnamectl.html"><span class="citerefentry"><span class="refentrytitle">hostnamectl</span>(1)</span></a> -- Control the system hostname<br></p></div><div class="refsect1"><a name="idm214175791328"></a><h2 id="I">I<a class="headerlink" title="Permalink to this headline" href="#I">¶</a></h2><p><a href="init.html"><span class="citerefentry"><span class="refentrytitle">init</span>(1)</span></a> -- systemd system and service manager<br></p></div><div class="refsect1"><a name="idm214175789920"></a><h2 id="J">J<a class="headerlink" title="Permalink to this headline" href="#J">¶</a></h2><p><a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a> -- Query the systemd journal<br><a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a> -- Journal service configuration file<br></p></div><div class="refsect1"><a name="idm214175855872"></a><h2 id="K">K<a class="headerlink" title="Permalink to this headline" href="#K">¶</a></h2><p><a href="kernel-command-line.html"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a> -- Kernel command line parameters<br><a href="kernel-install.html"><span class="citerefentry"><span class="refentrytitle">kernel-install</span>(8)</span></a> -- Add and remove kernel and initramfs images to and from /boot<br></p></div><div class="refsect1"><a name="idm214175764816"></a><h2 id="L">L<a class="headerlink" title="Permalink to this headline" href="#L">¶</a></h2><p><a href="locale.conf.html"><span class="citerefentry"><span class="refentrytitle">locale.conf</span>(5)</span></a> -- Configuration file for locale settings<br><a href="localectl.html"><span class="citerefentry"><span class="refentrytitle">localectl</span>(1)</span></a> -- Control the system locale and keyboard layout settings<br><a href="localtime.html"><span class="citerefentry"><span class="refentrytitle">localtime</span>(5)</span></a> -- Local timezone configuration file<br><a href="loginctl.html"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a> -- Control the systemd login manager<br><a href="logind.conf.html"><span class="citerefentry"><span class="refentrytitle">logind.conf</span>(5)</span></a> -- Login manager configuration file<br></p></div><div class="refsect1"><a name="idm214175759824"></a><h2 id="M">M<a class="headerlink" title="Permalink to this headline" href="#M">¶</a></h2><p><a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> -- Local machine ID configuration file<br><a href="machine-info.html"><span class="citerefentry"><span class="refentrytitle">machine-info</span>(5)</span></a> -- Local machine information file<br><a href="machinectl.html"><span class="citerefentry"><span class="refentrytitle">machinectl</span>(1)</span></a> -- Control the systemd machine manager<br><a href="modules-load.d.html"><span class="citerefentry"><span class="refentrytitle">modules-load.d</span>(5)</span></a> -- Configure kernel modules to load at boot<br></p></div><div class="refsect1"><a name="idm214175755728"></a><h2 id="N">N<a class="headerlink" title="Permalink to this headline" href="#N">¶</a></h2><p><a href="nss-myhostname.html"><span class="citerefentry"><span class="refentrytitle">nss-myhostname</span>(8)</span></a> -- Provide hostname resolution for the locally configured system hostname.<br></p></div><div class="refsect1"><a name="idm214175754320"></a><h2 id="O">O<a class="headerlink" title="Permalink to this headline" href="#O">¶</a></h2><p><a href="os-release.html"><span class="citerefentry"><span class="refentrytitle">os-release</span>(5)</span></a> -- Operating system identification<br></p></div><div class="refsect1"><a name="idm214175752912"></a><h2 id="P">P<a class="headerlink" title="Permalink to this headline" href="#P">¶</a></h2><p><a href="pam_systemd.html"><span class="citerefentry"><span class="refentrytitle">pam_systemd</span>(8)</span></a> -- Register user sessions in the systemd login manager<br><a href="poweroff.html"><span class="citerefentry"><span class="refentrytitle">poweroff</span>(8)</span></a> -- Halt, power-off or reboot the machine<br></p></div><div class="refsect1"><a name="idm214175750608"></a><h2 id="R">R<a class="headerlink" title="Permalink to this headline" href="#R">¶</a></h2><p><a href="reboot.html"><span class="citerefentry"><span class="refentrytitle">reboot</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="resolved.conf.html"><span class="citerefentry"><span class="refentrytitle">resolved.conf</span>(5)</span></a> -- Network Name Resolution configuration file<br><a href="runlevel.html"><span class="citerefentry"><span class="refentrytitle">runlevel</span>(8)</span></a> -- Print previous and current SysV runlevel<br></p></div><div class="refsect1"><a name="idm214175747408"></a><h2 id="S">S<a class="headerlink" title="Permalink to this headline" href="#S">¶</a></h2><p><a href="sd-daemon.html"><span class="citerefentry"><span class="refentrytitle">sd-daemon</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd-id128.html"><span class="citerefentry"><span class="refentrytitle">sd-id128</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a> -- APIs for submitting and querying log entries to and from the journal<br><a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a> -- APIs for tracking logins<br><a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a> -- Reference implementation of APIs for controlling boot-time read-ahead<br><a href="SD_ALERT.html"><span class="citerefentry"><span class="refentrytitle">SD_ALERT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a> -- Test whether the system is running the systemd init system<br><a href="sd_bus_creds_get_audit_login_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_login_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_audit_session_id.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_audit_session_id</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cgroup.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cgroup</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_cmdline.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_cmdline</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_exe.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_exe</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_gid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_gid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_mask.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_mask</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_owner_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_pid_starttime.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_pid_starttime</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_selinux_context.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_selinux_context</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_session</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_slice</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_tid_comm.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_tid_comm</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_uid</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unique_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unique_name</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_user_unit</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_get_well_known_names.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_get_well_known_names</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_bounding_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_bounding_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_effective_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_effective_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_inheritable_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_inheritable_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_has_permitted_cap.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_has_permitted_cap</span>(3)</span></a> -- Retrieve fields from a credentials object<br><a href="sd_bus_creds_new_from_pid.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_new_from_pid</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_ref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_creds_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_creds_unref</span>(3)</span></a> -- Retrieve credentials object for the specified PID<br><a href="sd_bus_default_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_default_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_default_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_error.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_copy.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_copy</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_free.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_free</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_get_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_get_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_has_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_has_name</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_is_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_is_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_const.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_const</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errno.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errno</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_error_set_errnof.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_error_set_errnof</span>(3)</span></a> -- sd-bus error handling<br><a href="sd_bus_message_append.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append</span>(3)</span></a> -- Attach parts of message based on a format string<br><a href="sd_bus_message_append_array.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_iovec</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_memfd</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_array_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_array_space</span>(3)</span></a> -- Attach an array of items to a message<br><a href="sd_bus_message_append_basic.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_basic</span>(3)</span></a> -- Attach a single part to a message<br><a href="sd_bus_message_append_string_iovec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_iovec</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_memfd.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_memfd</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_string_space.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_string_space</span>(3)</span></a> -- Attach a string to a message<br><a href="sd_bus_message_append_strv.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_append_strv</span>(3)</span></a> -- Attach an array of strings to a message<br><a href="sd_bus_message_get_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_monotonic_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_realtime_usec</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_message_get_reply_cookie.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_reply_cookie</span>(3)</span></a> -- Returns the transaction cookie of a message<br><a href="sd_bus_message_get_seqnum.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_message_get_seqnum</span>(3)</span></a> -- Retrieve the sender timestamps and sequence number of a message<br><a href="sd_bus_negotiate_creds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_creds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_fds</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_negotiate_timestamps.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamps</span>(3)</span></a> -- Control feature negotiation on bus connections<br><a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_open_system.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_container.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_container</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_system_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_system_remote</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_open_user.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_open_user</span>(3)</span></a> -- Open a connection to the system or user bus<br><a href="sd_bus_path_decode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_decode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_path_encode.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_path_encode</span>(3)</span></a> -- Convert an external identifier into an object path and back<br><a href="sd_bus_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_ref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="sd_bus_release_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_release_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_request_name.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_request_name</span>(3)</span></a> -- Request or release a well-known name on a bus<br><a href="sd_bus_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_unref</span>(3)</span></a> -- Create a new bus object and create or destroy references to it<br><a href="SD_CRIT.html"><span class="citerefentry"><span class="refentrytitle">SD_CRIT</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_DEBUG.html"><span class="citerefentry"><span class="refentrytitle">SD_DEBUG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_EMERG.html"><span class="citerefentry"><span class="refentrytitle">SD_EMERG</span>(3)</span></a> -- APIs for new-style daemons<br><a href="SD_ERR.html"><span class="citerefentry"><span class="refentrytitle">SD_ERR</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_event_add_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_add_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_default.html"><span class="citerefentry"><span class="refentrytitle">sd_event_default</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_new.html"><span class="citerefentry"><span class="refentrytitle">sd_event_new</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_ref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_ref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_event_source_get_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_get_time_clock.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_get_time_clock</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_source_set_time_accuracy.html"><span class="citerefentry"><span class="refentrytitle">sd_event_source_set_time_accuracy</span>(3)</span></a> -- Add a timer event source to an event loop<br><a href="sd_event_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_event_unref</span>(3)</span></a> -- Acquire and release an event loop object<br><a href="sd_get_machine_names.html"><span class="citerefentry"><span class="refentrytitle">sd_get_machine_names</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_get_seats</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_get_sessions</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="sd_get_uids.html"><span class="citerefentry"><span class="refentrytitle">sd_get_uids</span>(3)</span></a> -- Determine available seats, sessions, logged in users and virtual machines/containers<br><a href="SD_ID128_CONST_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_CONST_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_equal.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_equal</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_STR.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_STR</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="SD_ID128_FORMAT_VAL.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_FORMAT_VAL</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_from_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_from_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="sd_id128_get_boot.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_boot</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="sd_id128_get_machine.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_machine</span>(3)</span></a> -- Retrieve 128-bit IDs<br><a href="SD_ID128_MAKE.html"><span class="citerefentry"><span class="refentrytitle">SD_ID128_MAKE</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_randomize.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_randomize</span>(3)</span></a> -- Generate 128-bit IDs<br><a href="sd_id128_t.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_t</span>(3)</span></a> -- APIs for processing 128-bit IDs<br><a href="sd_id128_to_string.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_to_string</span>(3)</span></a> -- Format or parse 128-bit IDs as strings<br><a href="SD_INFO.html"><span class="citerefentry"><span class="refentrytitle">SD_INFO</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_mq.html"><span class="citerefentry"><span class="refentrytitle">sd_is_mq</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_inet.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_inet</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_socket_unix.html"><span class="citerefentry"><span class="refentrytitle">sd_is_socket_unix</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_is_special.html"><span class="citerefentry"><span class="refentrytitle">sd_is_special</span>(3)</span></a> -- Check the type of a file descriptor<br><a href="sd_journal.html"><span class="citerefentry"><span class="refentrytitle">sd_journal</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_add_conjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_conjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_disjunction.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_disjunction</span>(3)</span></a> -- Add or remove entry matches<br><a href="sd_journal_add_match.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_add_match</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_APPEND.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_APPEND</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_close.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_close</span>(3)</span></a> -- Open the system journal for reading<br><a href="SD_JOURNAL_CURRENT_USER.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_CURRENT_USER</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_enumerate_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_enumerate_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_enumerate_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_flush_matches.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_flush_matches</span>(3)</span></a> -- Add or remove entry matches<br><a href="SD_JOURNAL_FOREACH.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_BACKWARDS.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_BACKWARDS</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_FOREACH_DATA.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_DATA</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="SD_JOURNAL_FOREACH_UNIQUE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_FOREACH_UNIQUE</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_get_catalog.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_catalog_for_message_id.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_catalog_for_message_id</span>(3)</span></a> -- Retrieve message catalog entry<br><a href="sd_journal_get_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_get_cutoff_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_monotonic_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_cutoff_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_cutoff_realtime_usec</span>(3)</span></a> -- Read cut-off timestamps from the current journal entry<br><a href="sd_journal_get_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_events</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_monotonic_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_realtime_usec</span>(3)</span></a> -- Read timestamps from the current journal entry<br><a href="sd_journal_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_timeout</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_get_usage.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_get_usage</span>(3)</span></a> -- Journal disk usage<br><a href="SD_JOURNAL_INVALIDATE.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_INVALIDATE</span>(3)</span></a> -- Journal change notification interface<br><a href="SD_JOURNAL_LOCAL_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_LOCAL_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_next.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_next_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_next_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="SD_JOURNAL_NOP.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_NOP</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_open.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_container.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_container</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_directory.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_directory</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_open_files.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_open_files</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_perror.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_perror</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_previous.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_previous_skip.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_previous_skip</span>(3)</span></a> -- Advance or set back the read pointer in the journal<br><a href="sd_journal_print.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_print</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_printv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_printv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_process.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_process</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_query_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_query_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="sd_journal_reliable_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_reliable_fd</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_journal_restart_data.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_data</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_restart_unique.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_restart_unique</span>(3)</span></a> -- Read unique data fields from the journal<br><a href="SD_JOURNAL_RUNTIME_ONLY.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_RUNTIME_ONLY</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_seek_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_cursor</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_head.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_head</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_monotonic_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_monotonic_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_realtime_usec.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_realtime_usec</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_seek_tail.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_seek_tail</span>(3)</span></a> -- Seek to a position in the journal<br><a href="sd_journal_send.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_send</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_sendv.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_sendv</span>(3)</span></a> -- Submit log entries to the journal<br><a href="sd_journal_set_data_threshold.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_set_data_threshold</span>(3)</span></a> -- Read data fields from the current journal entry<br><a href="sd_journal_stream_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_stream_fd</span>(3)</span></a> -- Create log stream file descriptor to the journal<br><a href="SD_JOURNAL_SUPPRESS_LOCATION.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SUPPRESS_LOCATION</span>(3)</span></a> -- Submit log entries to the journal<br><a href="SD_JOURNAL_SYSTEM.html"><span class="citerefentry"><span class="refentrytitle">SD_JOURNAL_SYSTEM</span>(3)</span></a> -- Open the system journal for reading<br><a href="sd_journal_test_cursor.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_test_cursor</span>(3)</span></a> -- Get cursor string for or test cursor string against the current journal entry<br><a href="sd_journal_wait.html"><span class="citerefentry"><span class="refentrytitle">sd_journal_wait</span>(3)</span></a> -- Journal change notification interface<br><a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="SD_LISTEN_FDS_START.html"><span class="citerefentry"><span class="refentrytitle">SD_LISTEN_FDS_START</span>(3)</span></a> -- Check for file descriptors passed by the system manager<br><a href="sd_login_monitor.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_flush.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_flush</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_events.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_events</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_fd.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_fd</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_get_timeout.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_get_timeout</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_new.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_new</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="sd_login_monitor_unref.html"><span class="citerefentry"><span class="refentrytitle">sd_login_monitor_unref</span>(3)</span></a> -- Monitor login sessions, seats, users and virtual machines/containers<br><a href="SD_NOTICE.html"><span class="citerefentry"><span class="refentrytitle">SD_NOTICE</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_notifyf.html"><span class="citerefentry"><span class="refentrytitle">sd_notifyf</span>(3)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="sd_peer_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_peer_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_peer_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_machine_name.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_machine_name</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_owner_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_owner_uid</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_slice.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_slice</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_pid_get_user_unit.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_user_unit</span>(3)</span></a> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<br><a href="sd_readahead.html"><span class="citerefentry"><span class="refentrytitle">sd_readahead</span>(3)</span></a> -- Control ongoing disk boot-time read-ahead operations<br><a href="sd_seat_can_graphical.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_graphical</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_multi_session.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_multi_session</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_can_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_can_tty</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_active.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_active</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_seat_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_seat_get_sessions</span>(3)</span></a> -- Determine state of a specific seat<br><a href="sd_session_get_class.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_class</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_display</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_host.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_host</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_remote_user.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_remote_user</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_seat</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_service.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_service</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_state</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_tty.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_tty</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_type.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_type</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_uid.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_uid</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_get_vt.html"><span class="citerefentry"><span class="refentrytitle">sd_session_get_vt</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_active.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_active</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_session_is_remote.html"><span class="citerefentry"><span class="refentrytitle">sd_session_is_remote</span>(3)</span></a> -- Determine state of a specific session<br><a href="sd_uid_get_display.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_display</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_seats.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_seats</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_sessions.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_sessions</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_get_state.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_get_state</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="sd_uid_is_on_seat.html"><span class="citerefentry"><span class="refentrytitle">sd_uid_is_on_seat</span>(3)</span></a> -- Determine login state of a specific Unix user ID<br><a href="SD_WARNING.html"><span class="citerefentry"><span class="refentrytitle">SD_WARNING</span>(3)</span></a> -- APIs for new-style daemons<br><a href="sd_watchdog_enabled.html"><span class="citerefentry"><span class="refentrytitle">sd_watchdog_enabled</span>(3)</span></a> -- Check whether the service manager expects watchdog keep-alive notifications from a service<br><a href="shutdown.html"><span class="citerefentry"><span class="refentrytitle">shutdown</span>(8)</span></a> -- Halt, power-off or reboot the machine<br><a href="sysctl.d.html"><span class="citerefentry"><span class="refentrytitle">sysctl.d</span>(5)</span></a> -- Configure kernel parameters at boot<br><a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a> -- Control the systemd system and service manager<br><a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a> -- systemd system and service manager<br><a href="systemd-activate.html"><span class="citerefentry"><span class="refentrytitle">systemd-activate</span>(8)</span></a> -- Test socket activation of daemons<br><a href="systemd-analyze.html"><span class="citerefentry"><span class="refentrytitle">systemd-analyze</span>(1)</span></a> -- Analyze system boot-up performance<br><a href="systemd-ask-password.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password</span>(1)</span></a> -- Query the user for a system password<br><a href="systemd-ask-password-console.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-console.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.path.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.path</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-ask-password-wall.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-wall.service</span>(8)</span></a> -- Query the user for system passwords on the console and via wall<br><a href="systemd-backlight.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-backlight@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-backlight@.service</span>(8)</span></a> -- Load and save the display backlight brightness at boot and shutdown<br><a href="systemd-binfmt.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-binfmt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-binfmt.service</span>(8)</span></a> -- Configure additional binary formats for executables at boot<br><a href="systemd-bootchart.html"><span class="citerefentry"><span class="refentrytitle">systemd-bootchart</span>(1)</span></a> -- Boot performance graphing tool<br><a href="systemd-bus-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd</span>(8)</span></a> -- Connect STDIO or a socket to a given bus address<br><a href="systemd-bus-proxyd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd.socket</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-bus-proxyd@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-bus-proxyd@.service</span>(8)</span></a> -- Proxy classic D-Bus clients to kdbus<br><a href="systemd-cat.html"><span class="citerefentry"><span class="refentrytitle">systemd-cat</span>(1)</span></a> -- Connect a pipeline or program's output with the journal<br><a href="systemd-cgls.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgls</span>(1)</span></a> -- Recursively show control group contents<br><a href="systemd-cgtop.html"><span class="citerefentry"><span class="refentrytitle">systemd-cgtop</span>(1)</span></a> -- Show top control groups by their resource usage<br><a href="systemd-cryptsetup.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-cryptsetup-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup-generator</span>(8)</span></a> -- Unit generator for<br><a href="systemd-cryptsetup@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-cryptsetup@.service</span>(8)</span></a> -- Full disk decryption logic<br><a href="systemd-debug-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-debug-generator</span>(8)</span></a> -- Generator for enabling a runtime debug shell and masking specific units at boot<br><a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a> -- Find overridden configuration files<br><a href="systemd-detect-virt.html"><span class="citerefentry"><span class="refentrytitle">systemd-detect-virt</span>(1)</span></a> -- Detect execution in a virtualized environment<br><a href="systemd-efi-boot-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-efi-boot-generator</span>(8)</span></a> -- Generator for automatically mounting the EFI System Partition used by the current boot to<br><a href="systemd-fsck.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck-root.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck-root.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fsck@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-fsck@.service</span>(8)</span></a> -- File system checker logic<br><a href="systemd-fstab-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-fstab-generator</span>(8)</span></a> -- Unit generator for /etc/fstab<br><a href="systemd-getty-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-getty-generator</span>(8)</span></a> -- Generator for enabling getty instances on the console<br><a href="systemd-gpt-auto-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-gpt-auto-generator</span>(8)</span></a> -- Generator for automatically discovering and mounting root,<br><a href="systemd-halt.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-halt.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-hibernate.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hibernate.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-hostnamed.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hostnamed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hostnamed.service</span>(8)</span></a> -- Host name bus mechanism<br><a href="systemd-hybrid-sleep.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-hybrid-sleep.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-inhibit.html"><span class="citerefentry"><span class="refentrytitle">systemd-inhibit</span>(1)</span></a> -- Execute a program with an inhibition lock taken<br><a href="systemd-initctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.service</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-initctl.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-initctl.socket</span>(8)</span></a> -- /dev/initctl compatibility<br><a href="systemd-journal-gatewayd.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.service</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-gatewayd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-gatewayd.socket</span>(8)</span></a> -- HTTP server for journal events<br><a href="systemd-journal-remote.html"><span class="citerefentry"><span class="refentrytitle">systemd-journal-remote</span>(8)</span></a> -- Stream journal messages over the network<br><a href="systemd-journald.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald</span>(8)</span></a> -- Journal service<br><a href="systemd-journald-dev-log.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald-dev-log.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.service</span>(8)</span></a> -- Journal service<br><a href="systemd-journald.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-journald.socket</span>(8)</span></a> -- Journal service<br><a href="systemd-kexec.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-kexec.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-localed.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-localed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-localed.service</span>(8)</span></a> -- Locale bus mechanism<br><a href="systemd-logind.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind</span>(8)</span></a> -- Login manager<br><a href="systemd-logind.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a> -- Login manager<br><a href="systemd-machine-id-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-machine-id-setup</span>(1)</span></a> -- Initialize the machine ID in /etc/machine-id<br><a href="systemd-machined.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-machined.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-machined.service</span>(8)</span></a> -- Virtual machine and container registration manager<br><a href="systemd-modules-load.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-modules-load.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-modules-load.service</span>(8)</span></a> -- Configure kernel modules to load at boot<br><a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a> -- Network manager<br><a href="systemd-networkd-wait-online.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd-wait-online.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd-wait-online.service</span>(8)</span></a> -- Wait for network to come online<br><a href="systemd-networkd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd.service</span>(8)</span></a> -- Network manager<br><a href="systemd-notify.html"><span class="citerefentry"><span class="refentrytitle">systemd-notify</span>(1)</span></a> -- Notify service manager about start-up completion and other daemon status changes<br><a href="systemd-nspawn.html"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(1)</span></a> -- Spawn a namespace container for debugging, testing and building<br><a href="systemd-path.html"><span class="citerefentry"><span class="refentrytitle">systemd-path</span>(1)</span></a> -- List and query system and user paths<br><a href="systemd-poweroff.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-poweroff.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-quotacheck.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-quotacheck.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-quotacheck.service</span>(8)</span></a> -- File system quota checker logic<br><a href="systemd-random-seed.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-random-seed.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-random-seed.service</span>(8)</span></a> -- Load and save the system random seed at boot and shutdown<br><a href="systemd-readahead.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-collect.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-collect.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-done.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-done.timer</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-readahead-replay.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-readahead-replay.service</span>(8)</span></a> -- Disk read ahead logic<br><a href="systemd-reboot.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-reboot.service</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-remount-fs.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-remount-fs.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-remount-fs.service</span>(8)</span></a> -- Remount root and kernel file systems<br><a href="systemd-resolved.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-resolved.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-resolved.service</span>(8)</span></a> -- Network Name Resolution manager<br><a href="systemd-rfkill.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-rfkill@.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-rfkill@.service</span>(8)</span></a> -- Load and save the RF kill switch state at boot and shutdown<br><a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a> -- Run programs in transient scope or service units<br><a href="systemd-shutdown.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdown</span>(8)</span></a> -- System shutdown logic<br><a href="systemd-shutdownd.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.service</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-shutdownd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-shutdownd.socket</span>(8)</span></a> -- Scheduled shutdown service<br><a href="systemd-sleep.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sleep.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-sleep.conf</span>(5)</span></a> -- Suspend and hibernation configuration file<br><a href="systemd-socket-proxyd.html"><span class="citerefentry"><span class="refentrytitle">systemd-socket-proxyd</span>(8)</span></a> -- Bidirectionally proxy local sockets to another (possibly remote) socket.<br><a href="systemd-suspend.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-suspend.service</span>(8)</span></a> -- System sleep state logic<br><a href="systemd-sysctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-sysctl.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysctl.service</span>(8)</span></a> -- Configure kernel parameters at boot<br><a href="systemd-system-update-generator.html"><span class="citerefentry"><span class="refentrytitle">systemd-system-update-generator</span>(8)</span></a> -- Generator for redirecting boot to offline update mode<br><a href="systemd-system.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a> -- Allocate system users and groups<br><a href="systemd-sysusers.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers.service</span>(8)</span></a> -- Allocate system users and groups<br><a href="systemd-timedated.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timedated.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timedated.service</span>(8)</span></a> -- Time and date bus mechanism<br><a href="systemd-timesyncd.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-timesyncd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-timesyncd.service</span>(8)</span></a> -- Network Time Synchronization<br><a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-clean.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-clean.timer</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup-dev.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup-dev.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tmpfiles-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles-setup.service</span>(8)</span></a> -- Creates, deletes and cleans up volatile and temporary files and directories<br><a href="systemd-tty-ask-password-agent.html"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a> -- List or process pending systemd password requests<br><a href="systemd-udevd.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-control.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-control.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd-kernel.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd-kernel.socket</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a> -- Device event managing daemon<br><a href="systemd-update-done.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done</span>(8)</span></a> -- Mark<br><a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a> -- Mark<br><a href="systemd-update-utmp.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp-runlevel.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp-runlevel.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-update-utmp.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-utmp.service</span>(8)</span></a> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<br><a href="systemd-user-sessions.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user-sessions.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-user-sessions.service</span>(8)</span></a> -- Permit user logins after boot, prohibit user logins at shutdown<br><a href="systemd-user.conf.html"><span class="citerefentry"><span class="refentrytitle">systemd-user.conf</span>(5)</span></a> -- System and session service manager configuration file<br><a href="systemd-vconsole-setup.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a> -- Configure the virtual console at boot<br><a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a> -- Automount unit configuration<br><a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a> -- Device unit configuration<br><a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a> -- Index of configuration directives<br><a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a> -- Execution environment configuration<br><a href="systemd.journal-fields.html"><span class="citerefentry"><span class="refentrytitle">systemd.journal-fields</span>(7)</span></a> -- Special journal fields<br><a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a> -- Process killing procedure configuration<br><a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a> -- Network device configuration<br><a href="systemd.mount.html"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a> -- Mount unit configuration<br><a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a> -- Virtual Network Device configuration<br><a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a> -- Network configuration<br><a href="systemd.path.html"><span class="citerefentry"><span class="refentrytitle">systemd.path</span>(5)</span></a> -- Path unit configuration<br><a href="systemd.preset.html"><span class="citerefentry"><span class="refentrytitle">systemd.preset</span>(5)</span></a> -- Service enablement presets<br><a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a> -- Resource control unit settings<br><a href="systemd.scope.html"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a> -- Scope unit configuration<br><a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a> -- Service unit configuration<br><a href="systemd.slice.html"><span class="citerefentry"><span class="refentrytitle">systemd.slice</span>(5)</span></a> -- Slice unit configuration<br><a href="systemd.snapshot.html"><span class="citerefentry"><span class="refentrytitle">systemd.snapshot</span>(5)</span></a> -- Snapshot unit configuration<br><a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a> -- Socket unit configuration<br><a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a> -- Special systemd units<br><a href="systemd.swap.html"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a> -- Swap unit configuration<br><a href="systemd.target.html"><span class="citerefentry"><span class="refentrytitle">systemd.target</span>(5)</span></a> -- Target unit configuration<br><a href="systemd.time.html"><span class="citerefentry"><span class="refentrytitle">systemd.time</span>(7)</span></a> -- Time and date specifications<br><a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a> -- Timer unit configuration<br><a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> -- Unit configuration<br><a href="sysusers.d.html"><span class="citerefentry"><span class="refentrytitle">sysusers.d</span>(5)</span></a> -- Declarative allocation of system users and groups<br></p></div><div class="refsect1"><a name="idm214175387472"></a><h2 id="T">T<a class="headerlink" title="Permalink to this headline" href="#T">¶</a></h2><p><a href="telinit.html"><span class="citerefentry"><span class="refentrytitle">telinit</span>(8)</span></a> -- Change SysV runlevel<br><a href="timedatectl.html"><span class="citerefentry"><span class="refentrytitle">timedatectl</span>(1)</span></a> -- Control the system time and date<br><a href="tmpfiles.d.html"><span class="citerefentry"><span class="refentrytitle">tmpfiles.d</span>(5)</span></a> -- Configuration for creation, deletion and cleaning of volatile and temporary files<br></p></div><div class="refsect1"><a name="idm214175383984"></a><h2 id="U">U<a class="headerlink" title="Permalink to this headline" href="#U">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a> -- Dynamic device management<br><a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a> -- udev management tool<br></p></div><div class="refsect1"><a name="idm214175381520"></a><h2 id="V">V<a class="headerlink" title="Permalink to this headline" href="#V">¶</a></h2><p><a href="vconsole.conf.html"><span class="citerefentry"><span class="refentrytitle">vconsole.conf</span>(5)</span></a> -- Configuration file for the virtual console<br></p></div><div class="refsect1"><a name="idm214175380016"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
- </p><p><a name="counts"></a>This index contains 403 entries, referring to 173 individual manual pages.</p></div></div></body></html>
+ </p><p><a name="counts"></a>This index contains 412 entries, referring to 180 individual manual pages.</p></div></div></body></html>
<refname>systemd.index</refname>
<refpurpose>List all manpages from the systemd project</refpurpose>
</refnamediv>
-<refsect1><title>B</title><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configure additional binary formats for executables at boot<sbr/><citerefentry><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Boot performance analysis graphing tool configuration file<sbr/><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the firmware and boot manager settings<sbr/><citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- System bootup process<sbr/><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Introspect the bus<sbr/></para></refsect1><refsect1><title>C</title><para><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration for encrypted block devices<sbr/></para></refsect1><refsect1><title>D</title><para><citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Writing and packaging system daemons<sbr/></para></refsect1><refsect1><title>H</title><para><citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/><citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local hostname configuration file<sbr/><citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the system hostname<sbr/></para></refsect1><refsect1><title>I</title><para><citerefentry><refentrytitle>init</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- systemd system and service manager<sbr/></para></refsect1><refsect1><title>J</title><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Query the systemd journal<sbr/><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Journal service configuration file<sbr/></para></refsect1><refsect1><title>K</title><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Kernel command line parameters<sbr/><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Add and remove kernel and initramfs images to and from /boot<sbr/></para></refsect1><refsect1><title>L</title><para><citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration file for locale settings<sbr/><citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the system locale and keyboard layout settings<sbr/><citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local timezone configuration file<sbr/><citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the systemd login manager<sbr/><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Login manager configuration file<sbr/></para></refsect1><refsect1><title>M</title><para><citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local machine ID configuration file<sbr/><citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local machine information file<sbr/><citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the systemd machine manager<sbr/><citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configure kernel modules to load at boot<sbr/></para></refsect1><refsect1><title>N</title><para><citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Provide hostname resolution for the locally configured system hostname.<sbr/></para></refsect1><refsect1><title>O</title><para><citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Operating system identification<sbr/></para></refsect1><refsect1><title>P</title><para><citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Register user sessions in the systemd login manager<sbr/><citerefentry><refentrytitle>poweroff</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/></para></refsect1><refsect1><title>R</title><para><citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/><citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Network Name Resolution configuration file<sbr/><citerefentry><refentrytitle>runlevel</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Print previous and current SysV runlevel<sbr/></para></refsect1><refsect1><title>S</title><para><citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for submitting and querying log entries to and from the journal<sbr/><citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for tracking logins<sbr/><citerefentry><refentrytitle>sd-readahead</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Reference implementation of APIs for controlling boot-time read-ahead<sbr/><citerefentry><refentrytitle>SD_ALERT</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Test whether the system is running the systemd init system<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_audit_login_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_audit_session_id</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_cgroup</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_cmdline</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_comm</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_exe</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_gid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_mask</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_pid_starttime</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_selinux_context</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_slice</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_tid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_tid_comm</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_unique_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_user_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_well_known_names</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_bounding_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_effective_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_inheritable_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_permitted_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_new_from_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_creds_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_creds_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_default_system</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_copy</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_free</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_get_errno</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_has_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set_const</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set_errno</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set_errnof</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach parts of message based on a format string<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array_iovec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array_space</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a single part to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_string_iovec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a string to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_string_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a string to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_string_space</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a string to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of strings to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Returns the transaction cookie of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve the sender timestamps and sequence number of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve the sender timestamps and sequence number of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_reply_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Returns the transaction cookie of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_seqnum</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve the sender timestamps and sequence number of a message<sbr/><citerefentry><refentrytitle>sd_bus_negotiate_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control feature negotiation on bus connections<sbr/><citerefentry><refentrytitle>sd_bus_negotiate_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control feature negotiation on bus connections<sbr/><citerefentry><refentrytitle>sd_bus_negotiate_timestamps</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control feature negotiation on bus connections<sbr/><citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create a new bus object and create or destroy references to it<sbr/><citerefentry><refentrytitle>sd_bus_open_system</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_open_system_container</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_open_system_remote</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_open_user</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_path_decode</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Convert an external identifier into an object path and back<sbr/><citerefentry><refentrytitle>sd_bus_path_encode</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Convert an external identifier into an object path and back<sbr/><citerefentry><refentrytitle>sd_bus_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create a new bus object and create or destroy references to it<sbr/><citerefentry><refentrytitle>sd_bus_release_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Request or release a well-known name on a bus<sbr/><citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Request or release a well-known name on a bus<sbr/><citerefentry><refentrytitle>sd_bus_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create a new bus object and create or destroy references to it<sbr/><citerefentry><refentrytitle>SD_CRIT</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>SD_DEBUG</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>SD_EMERG</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>SD_ERR</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_default</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_event_new</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_event_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_event_source_get_time</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_get_time_accuracy</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_get_time_clock</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_set_time</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_set_time_accuracy</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_get_machine_names</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_get_sessions</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_get_uids</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>SD_ID128_CONST_STR</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_equal</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>SD_ID128_FORMAT_STR</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>SD_ID128_FORMAT_VAL</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_from_string</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Format or parse 128-bit IDs as strings<sbr/><citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve 128-bit IDs<sbr/><citerefentry><refentrytitle>SD_ID128_MAKE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Generate 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_t</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Format or parse 128-bit IDs as strings<sbr/><citerefentry><refentrytitle>SD_INFO</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_mq</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_socket</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_socket_inet</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_socket_unix</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_special</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_journal</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_add_conjunction</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>sd_journal_add_disjunction</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>SD_JOURNAL_APPEND</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_close</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>SD_JOURNAL_CURRENT_USER</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_enumerate_data</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_enumerate_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>sd_journal_flush_matches</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH_BACKWARDS</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH_DATA</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH_UNIQUE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>sd_journal_get_catalog</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve message catalog entry<sbr/><citerefentry><refentrytitle>sd_journal_get_catalog_for_message_id</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve message catalog entry<sbr/><citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Get cursor string for or test cursor string against the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_cutoff_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read cut-off timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read cut-off timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_data_threshold</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_events</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_timeout</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_get_usage</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal disk usage<sbr/><citerefentry><refentrytitle>SD_JOURNAL_INVALIDATE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>SD_JOURNAL_LOCAL_ONLY</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>sd_journal_next_skip</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_NOP</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_open_container</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_open_directory</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_open_files</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_perror</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_previous</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>sd_journal_previous_skip</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_printv</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_process</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_query_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>sd_journal_reliable_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_restart_data</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_restart_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_RUNTIME_ONLY</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_tail</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_send</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_sendv</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_set_data_threshold</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create log stream file descriptor to the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_SUPPRESS_LOCATION</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_SYSTEM</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_test_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Get cursor string for or test cursor string against the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_wait</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check for file descriptors passed by the system manager<sbr/><citerefentry><refentrytitle>SD_LISTEN_FDS_START</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check for file descriptors passed by the system manager<sbr/><citerefentry><refentrytitle>sd_login_monitor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_flush</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_get_events</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_get_timeout</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>SD_NOTICE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Notify service manager about start-up completion and other daemon status changes<sbr/><citerefentry><refentrytitle>sd_notifyf</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Notify service manager about start-up completion and other daemon status changes<sbr/><citerefentry><refentrytitle>sd_peer_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_slice</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_user_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_slice</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_user_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_readahead</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control ongoing disk boot-time read-ahead operations<sbr/><citerefentry><refentrytitle>sd_seat_can_graphical</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_can_multi_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_can_tty</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_get_sessions</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_session_get_class</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_display</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_remote_host</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_remote_user</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_service</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_tty</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_vt</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_is_remote</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_uid_get_display</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_get_sessions</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_is_on_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>SD_WARNING</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check whether the service manager expects watchdog keep-alive notifications from a service<sbr/><citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configure kernel parameters at boot<sbr/><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the systemd system and service manager<sbr/><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- systemd system and service manager<sbr/><citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Test socket activation of daemons<sbr/><citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Analyze system boot-up performance<sbr/><citerefentry><refentrytitle>systemd-ask-password</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Query the user for a system password<sbr/><citerefentry><refentrytitle>systemd-ask-password-console.path</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-ask-password-console.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-ask-password-wall.path</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-ask-password-wall.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-backlight</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the display backlight brightness at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the display backlight brightness at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-binfmt</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure additional binary formats for executables at boot<sbr/><citerefentry><refentrytitle>systemd-binfmt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure additional binary formats for executables at boot<sbr/><citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Boot performance graphing tool<sbr/><citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Connect STDIO or a socket to a given bus address<sbr/><citerefentry><refentrytitle>systemd-bus-proxyd.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Proxy classic D-Bus clients to kdbus<sbr/><citerefentry><refentrytitle>systemd-bus-proxyd@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Proxy classic D-Bus clients to kdbus<sbr/><citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Connect a pipeline or program's output with the journal<sbr/><citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Recursively show control group contents<sbr/><citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Show top control groups by their resource usage<sbr/><citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Retrieve coredumps from the journal<sbr/><citerefentry><refentrytitle>systemd-cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Full disk decryption logic<sbr/><citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Unit generator for<sbr/><citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Full disk decryption logic<sbr/><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Find overridden configuration files<sbr/><citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Detect execution in a virtualized environment<sbr/><citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for automatically mounting the EFI System Partition used by the current boot to<sbr/><citerefentry><refentrytitle>systemd-fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system checker logic<sbr/><citerefentry><refentrytitle>systemd-fsck-root.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system checker logic<sbr/><citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system checker logic<sbr/><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Unit generator for /etc/fstab<sbr/><citerefentry><refentrytitle>systemd-getty-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for enabling getty instances on the console<sbr/><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for automatically discovering and mounting root,<sbr/><citerefentry><refentrytitle>systemd-halt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-hibernate.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-hostnamed</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Host name bus mechanism<sbr/><citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Host name bus mechanism<sbr/><citerefentry><refentrytitle>systemd-hybrid-sleep.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Execute a program with an inhibition lock taken<sbr/><citerefentry><refentrytitle>systemd-initctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- /dev/initctl compatibility<sbr/><citerefentry><refentrytitle>systemd-initctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- /dev/initctl compatibility<sbr/><citerefentry><refentrytitle>systemd-initctl.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- /dev/initctl compatibility<sbr/><citerefentry><refentrytitle>systemd-journal-gatewayd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- HTTP server for journal events<sbr/><citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- HTTP server for journal events<sbr/><citerefentry><refentrytitle>systemd-journal-gatewayd.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- HTTP server for journal events<sbr/><citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Stream journal messages over the network<sbr/><citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-journald-dev-log.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-journald.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-kexec.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-localed</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Locale bus mechanism<sbr/><citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Locale bus mechanism<sbr/><citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Login manager<sbr/><citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Login manager<sbr/><citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Initialize the machine ID in /etc/machine-id<sbr/><citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Virtual machine and container registration manager<sbr/><citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Virtual machine and container registration manager<sbr/><citerefentry><refentrytitle>systemd-modules-load</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel modules to load at boot<sbr/><citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel modules to load at boot<sbr/><citerefentry><refentrytitle>systemd-networkd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network manager<sbr/><citerefentry><refentrytitle>systemd-networkd-wait-online</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Wait for network to come online<sbr/><citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Wait for network to come online<sbr/><citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network manager<sbr/><citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Notify service manager about start-up completion and other daemon status changes<sbr/><citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Spawn a namespace container for debugging, testing and building<sbr/><citerefentry><refentrytitle>systemd-poweroff.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-quotacheck</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system quota checker logic<sbr/><citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system quota checker logic<sbr/><citerefentry><refentrytitle>systemd-random-seed</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the system random seed at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-random-seed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the system random seed at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-readahead</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-collect.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-done.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-remount-fs</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Remount root and kernel file systems<sbr/><citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Remount root and kernel file systems<sbr/><citerefentry><refentrytitle>systemd-resolved</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Name Resolution manager<sbr/><citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Name Resolution manager<sbr/><citerefentry><refentrytitle>systemd-rfkill</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the RF kill switch state at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the RF kill switch state at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Run programs in transient scope or service units<sbr/><citerefentry><refentrytitle>systemd-shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-shutdownd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Scheduled shutdown service<sbr/><citerefentry><refentrytitle>systemd-shutdownd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Scheduled shutdown service<sbr/><citerefentry><refentrytitle>systemd-shutdownd.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Scheduled shutdown service<sbr/><citerefentry><refentrytitle>systemd-sleep</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-sleep.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Suspend and hibernation configuration file<sbr/><citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Bidirectionally proxy local sockets to another (possibly remote) socket.<sbr/><citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel parameters at boot<sbr/><citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel parameters at boot<sbr/><citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for redirecting boot to offline update mode<sbr/><citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- System and session service manager configuration file<sbr/><citerefentry><refentrytitle>systemd-timedated</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Time and date bus mechanism<sbr/><citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Time and date bus mechanism<sbr/><citerefentry><refentrytitle>systemd-timesyncd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Time Synchronization<sbr/><citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Time Synchronization<sbr/><citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-clean.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-clean.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-setup-dev.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- List or process pending systemd password requests<sbr/><citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-udevd-control.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-udevd-kernel.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-update-utmp</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<sbr/><citerefentry><refentrytitle>systemd-update-utmp-runlevel.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<sbr/><citerefentry><refentrytitle>systemd-update-utmp.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<sbr/><citerefentry><refentrytitle>systemd-user-sessions</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Permit user logins after boot, prohibit user logins at shutdown<sbr/><citerefentry><refentrytitle>systemd-user-sessions.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Permit user logins after boot, prohibit user logins at shutdown<sbr/><citerefentry><refentrytitle>systemd-user.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- System and session service manager configuration file<sbr/><citerefentry><refentrytitle>systemd-vconsole-setup</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure the virtual console at boot<sbr/><citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure the virtual console at boot<sbr/><citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Automount unit configuration<sbr/><citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Device unit configuration<sbr/><citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Index of configuration directives<sbr/><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Execution environment configuration<sbr/><citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Special journal fields<sbr/><citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Process killing procedure configuration<sbr/><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Network device configuration<sbr/><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Mount unit configuration<sbr/><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Virtual Network Device configuration<sbr/><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Network configuration<sbr/><citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Path unit configuration<sbr/><citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Service enablement presets<sbr/><citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Resource control unit settings<sbr/><citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Scope unit configuration<sbr/><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Service unit configuration<sbr/><citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Slice unit configuration<sbr/><citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Snapshot unit configuration<sbr/><citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Socket unit configuration<sbr/><citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Special systemd units<sbr/><citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Swap unit configuration<sbr/><citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Target unit configuration<sbr/><citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Time and date specifications<sbr/><citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Timer unit configuration<sbr/><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Unit configuration<sbr/></para></refsect1><refsect1><title>T</title><para><citerefentry><refentrytitle>telinit</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Change SysV runlevel<sbr/><citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the system time and date<sbr/><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration for creation, deletion and cleaning of volatile and temporary files<sbr/></para></refsect1><refsect1><title>U</title><para><citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Dynamic device management<sbr/><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- udev management tool<sbr/></para></refsect1><refsect1><title>V</title><para><citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration file for the virtual console<sbr/></para></refsect1><refsect1>
+<refsect1><title>B</title><para><citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configure additional binary formats for executables at boot<sbr/><citerefentry><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Boot performance analysis graphing tool configuration file<sbr/><citerefentry><refentrytitle>bootctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the firmware and boot manager settings<sbr/><citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- System bootup process<sbr/><citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Introspect the bus<sbr/></para></refsect1><refsect1><title>C</title><para><citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Coredump storage configuration file<sbr/><citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Retrieve coredumps from the journal<sbr/><citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration for encrypted block devices<sbr/></para></refsect1><refsect1><title>D</title><para><citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Writing and packaging system daemons<sbr/></para></refsect1><refsect1><title>F</title><para><citerefentry><refentrytitle>file-hierarchy</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- File system hierarchy overview<sbr/></para></refsect1><refsect1><title>H</title><para><citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/><citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local hostname configuration file<sbr/><citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the system hostname<sbr/></para></refsect1><refsect1><title>I</title><para><citerefentry><refentrytitle>init</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- systemd system and service manager<sbr/></para></refsect1><refsect1><title>J</title><para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Query the systemd journal<sbr/><citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Journal service configuration file<sbr/></para></refsect1><refsect1><title>K</title><para><citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Kernel command line parameters<sbr/><citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Add and remove kernel and initramfs images to and from /boot<sbr/></para></refsect1><refsect1><title>L</title><para><citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration file for locale settings<sbr/><citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the system locale and keyboard layout settings<sbr/><citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local timezone configuration file<sbr/><citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the systemd login manager<sbr/><citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Login manager configuration file<sbr/></para></refsect1><refsect1><title>M</title><para><citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local machine ID configuration file<sbr/><citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Local machine information file<sbr/><citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the systemd machine manager<sbr/><citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configure kernel modules to load at boot<sbr/></para></refsect1><refsect1><title>N</title><para><citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Provide hostname resolution for the locally configured system hostname.<sbr/></para></refsect1><refsect1><title>O</title><para><citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Operating system identification<sbr/></para></refsect1><refsect1><title>P</title><para><citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Register user sessions in the systemd login manager<sbr/><citerefentry><refentrytitle>poweroff</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/></para></refsect1><refsect1><title>R</title><para><citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/><citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Network Name Resolution configuration file<sbr/><citerefentry><refentrytitle>runlevel</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Print previous and current SysV runlevel<sbr/></para></refsect1><refsect1><title>S</title><para><citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for submitting and querying log entries to and from the journal<sbr/><citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for tracking logins<sbr/><citerefentry><refentrytitle>sd-readahead</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Reference implementation of APIs for controlling boot-time read-ahead<sbr/><citerefentry><refentrytitle>SD_ALERT</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Test whether the system is running the systemd init system<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_audit_login_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_audit_session_id</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_cgroup</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_cmdline</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_comm</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_exe</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_gid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_mask</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_pid_starttime</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_selinux_context</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_slice</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_tid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_tid_comm</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_unique_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_user_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_get_well_known_names</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_bounding_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_effective_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_inheritable_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_has_permitted_cap</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve fields from a credentials object<sbr/><citerefentry><refentrytitle>sd_bus_creds_new_from_pid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_creds_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_creds_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve credentials object for the specified PID<sbr/><citerefentry><refentrytitle>sd_bus_default_system</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_copy</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_free</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_get_errno</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_has_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_is_set</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set_const</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set_errno</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_error_set_errnof</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- sd-bus error handling<sbr/><citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach parts of message based on a format string<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array_iovec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_array_space</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of items to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a single part to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_string_iovec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a string to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_string_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a string to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_string_space</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach a string to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_append_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Attach an array of strings to a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Returns the transaction cookie of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve the sender timestamps and sequence number of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve the sender timestamps and sequence number of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_reply_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Returns the transaction cookie of a message<sbr/><citerefentry><refentrytitle>sd_bus_message_get_seqnum</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve the sender timestamps and sequence number of a message<sbr/><citerefentry><refentrytitle>sd_bus_negotiate_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control feature negotiation on bus connections<sbr/><citerefentry><refentrytitle>sd_bus_negotiate_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control feature negotiation on bus connections<sbr/><citerefentry><refentrytitle>sd_bus_negotiate_timestamps</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control feature negotiation on bus connections<sbr/><citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create a new bus object and create or destroy references to it<sbr/><citerefentry><refentrytitle>sd_bus_open_system</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_open_system_container</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_open_system_remote</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_open_user</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open a connection to the system or user bus<sbr/><citerefentry><refentrytitle>sd_bus_path_decode</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Convert an external identifier into an object path and back<sbr/><citerefentry><refentrytitle>sd_bus_path_encode</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Convert an external identifier into an object path and back<sbr/><citerefentry><refentrytitle>sd_bus_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create a new bus object and create or destroy references to it<sbr/><citerefentry><refentrytitle>sd_bus_release_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Request or release a well-known name on a bus<sbr/><citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Request or release a well-known name on a bus<sbr/><citerefentry><refentrytitle>sd_bus_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create a new bus object and create or destroy references to it<sbr/><citerefentry><refentrytitle>SD_CRIT</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>SD_DEBUG</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>SD_EMERG</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>SD_ERR</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_default</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_event_new</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_event_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_event_source_get_time</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_get_time_accuracy</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_get_time_clock</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_set_time</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_source_set_time_accuracy</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add a timer event source to an event loop<sbr/><citerefentry><refentrytitle>sd_event_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Acquire and release an event loop object<sbr/><citerefentry><refentrytitle>sd_get_machine_names</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_get_sessions</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_get_uids</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine available seats, sessions, logged in users and virtual machines/containers<sbr/><citerefentry><refentrytitle>SD_ID128_CONST_STR</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_equal</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>SD_ID128_FORMAT_STR</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>SD_ID128_FORMAT_VAL</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_from_string</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Format or parse 128-bit IDs as strings<sbr/><citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve 128-bit IDs<sbr/><citerefentry><refentrytitle>SD_ID128_MAKE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Generate 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_t</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for processing 128-bit IDs<sbr/><citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Format or parse 128-bit IDs as strings<sbr/><citerefentry><refentrytitle>SD_INFO</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_mq</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_socket</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_socket_inet</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_socket_unix</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_is_special</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check the type of a file descriptor<sbr/><citerefentry><refentrytitle>sd_journal</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_add_conjunction</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>sd_journal_add_disjunction</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>SD_JOURNAL_APPEND</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_close</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>SD_JOURNAL_CURRENT_USER</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_enumerate_data</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_enumerate_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>sd_journal_flush_matches</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Add or remove entry matches<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH_BACKWARDS</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH_DATA</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>SD_JOURNAL_FOREACH_UNIQUE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>sd_journal_get_catalog</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve message catalog entry<sbr/><citerefentry><refentrytitle>sd_journal_get_catalog_for_message_id</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Retrieve message catalog entry<sbr/><citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Get cursor string for or test cursor string against the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_cutoff_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read cut-off timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read cut-off timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_data_threshold</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_events</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read timestamps from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_get_timeout</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_get_usage</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal disk usage<sbr/><citerefentry><refentrytitle>SD_JOURNAL_INVALIDATE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>SD_JOURNAL_LOCAL_ONLY</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>sd_journal_next_skip</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_NOP</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_open_container</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_open_directory</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_open_files</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_perror</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_previous</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>sd_journal_previous_skip</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Advance or set back the read pointer in the journal<sbr/><citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_printv</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_process</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_query_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>sd_journal_reliable_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_journal_restart_data</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_restart_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read unique data fields from the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_RUNTIME_ONLY</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_seek_tail</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Seek to a position in the journal<sbr/><citerefentry><refentrytitle>sd_journal_send</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_sendv</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>sd_journal_set_data_threshold</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Read data fields from the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Create log stream file descriptor to the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_SUPPRESS_LOCATION</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Submit log entries to the journal<sbr/><citerefentry><refentrytitle>SD_JOURNAL_SYSTEM</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Open the system journal for reading<sbr/><citerefentry><refentrytitle>sd_journal_test_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Get cursor string for or test cursor string against the current journal entry<sbr/><citerefentry><refentrytitle>sd_journal_wait</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Journal change notification interface<sbr/><citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check for file descriptors passed by the system manager<sbr/><citerefentry><refentrytitle>SD_LISTEN_FDS_START</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check for file descriptors passed by the system manager<sbr/><citerefentry><refentrytitle>sd_login_monitor</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_flush</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_get_events</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_get_timeout</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>sd_login_monitor_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Monitor login sessions, seats, users and virtual machines/containers<sbr/><citerefentry><refentrytitle>SD_NOTICE</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Notify service manager about start-up completion and other daemon status changes<sbr/><citerefentry><refentrytitle>sd_notifyf</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Notify service manager about start-up completion and other daemon status changes<sbr/><citerefentry><refentrytitle>sd_peer_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_slice</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_peer_get_user_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_slice</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_pid_get_user_unit</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine session, service, owner of a session, container/VM or slice of a specific PID or socket peer<sbr/><citerefentry><refentrytitle>sd_readahead</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Control ongoing disk boot-time read-ahead operations<sbr/><citerefentry><refentrytitle>sd_seat_can_graphical</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_can_multi_session</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_can_tty</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_seat_get_sessions</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific seat<sbr/><citerefentry><refentrytitle>sd_session_get_class</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_display</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_remote_host</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_remote_user</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_service</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_tty</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_get_vt</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_session_is_remote</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine state of a specific session<sbr/><citerefentry><refentrytitle>sd_uid_get_display</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_get_sessions</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>sd_uid_is_on_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Determine login state of a specific Unix user ID<sbr/><citerefentry><refentrytitle>SD_WARNING</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- APIs for new-style daemons<sbr/><citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry> -- Check whether the service manager expects watchdog keep-alive notifications from a service<sbr/><citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Halt, power-off or reboot the machine<sbr/><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configure kernel parameters at boot<sbr/><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the systemd system and service manager<sbr/><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- systemd system and service manager<sbr/><citerefentry><refentrytitle>systemd-activate</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Test socket activation of daemons<sbr/><citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Analyze system boot-up performance<sbr/><citerefentry><refentrytitle>systemd-ask-password</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Query the user for a system password<sbr/><citerefentry><refentrytitle>systemd-ask-password-console.path</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-ask-password-console.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-ask-password-wall.path</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-ask-password-wall.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Query the user for system passwords on the console and via wall<sbr/><citerefentry><refentrytitle>systemd-backlight</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the display backlight brightness at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the display backlight brightness at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-binfmt</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure additional binary formats for executables at boot<sbr/><citerefentry><refentrytitle>systemd-binfmt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure additional binary formats for executables at boot<sbr/><citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Boot performance graphing tool<sbr/><citerefentry><refentrytitle>systemd-bus-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Connect STDIO or a socket to a given bus address<sbr/><citerefentry><refentrytitle>systemd-bus-proxyd.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Proxy classic D-Bus clients to kdbus<sbr/><citerefentry><refentrytitle>systemd-bus-proxyd@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Proxy classic D-Bus clients to kdbus<sbr/><citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Connect a pipeline or program's output with the journal<sbr/><citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Recursively show control group contents<sbr/><citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Show top control groups by their resource usage<sbr/><citerefentry><refentrytitle>systemd-cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Full disk decryption logic<sbr/><citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Unit generator for<sbr/><citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Full disk decryption logic<sbr/><citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for enabling a runtime debug shell and masking specific units at boot<sbr/><citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Find overridden configuration files<sbr/><citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Detect execution in a virtualized environment<sbr/><citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for automatically mounting the EFI System Partition used by the current boot to<sbr/><citerefentry><refentrytitle>systemd-fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system checker logic<sbr/><citerefentry><refentrytitle>systemd-fsck-root.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system checker logic<sbr/><citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system checker logic<sbr/><citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Unit generator for /etc/fstab<sbr/><citerefentry><refentrytitle>systemd-getty-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for enabling getty instances on the console<sbr/><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for automatically discovering and mounting root,<sbr/><citerefentry><refentrytitle>systemd-halt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-hibernate.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-hostnamed</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Host name bus mechanism<sbr/><citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Host name bus mechanism<sbr/><citerefentry><refentrytitle>systemd-hybrid-sleep.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-inhibit</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Execute a program with an inhibition lock taken<sbr/><citerefentry><refentrytitle>systemd-initctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- /dev/initctl compatibility<sbr/><citerefentry><refentrytitle>systemd-initctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- /dev/initctl compatibility<sbr/><citerefentry><refentrytitle>systemd-initctl.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- /dev/initctl compatibility<sbr/><citerefentry><refentrytitle>systemd-journal-gatewayd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- HTTP server for journal events<sbr/><citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- HTTP server for journal events<sbr/><citerefentry><refentrytitle>systemd-journal-gatewayd.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- HTTP server for journal events<sbr/><citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Stream journal messages over the network<sbr/><citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-journald-dev-log.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-journald.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Journal service<sbr/><citerefentry><refentrytitle>systemd-kexec.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-localed</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Locale bus mechanism<sbr/><citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Locale bus mechanism<sbr/><citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Login manager<sbr/><citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Login manager<sbr/><citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Initialize the machine ID in /etc/machine-id<sbr/><citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Virtual machine and container registration manager<sbr/><citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Virtual machine and container registration manager<sbr/><citerefentry><refentrytitle>systemd-modules-load</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel modules to load at boot<sbr/><citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel modules to load at boot<sbr/><citerefentry><refentrytitle>systemd-networkd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network manager<sbr/><citerefentry><refentrytitle>systemd-networkd-wait-online</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Wait for network to come online<sbr/><citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Wait for network to come online<sbr/><citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network manager<sbr/><citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Notify service manager about start-up completion and other daemon status changes<sbr/><citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Spawn a namespace container for debugging, testing and building<sbr/><citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- List and query system and user paths<sbr/><citerefentry><refentrytitle>systemd-poweroff.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-quotacheck</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system quota checker logic<sbr/><citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- File system quota checker logic<sbr/><citerefentry><refentrytitle>systemd-random-seed</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the system random seed at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-random-seed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the system random seed at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-readahead</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-collect.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-done.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-readahead-replay.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Disk read ahead logic<sbr/><citerefentry><refentrytitle>systemd-reboot.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-remount-fs</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Remount root and kernel file systems<sbr/><citerefentry><refentrytitle>systemd-remount-fs.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Remount root and kernel file systems<sbr/><citerefentry><refentrytitle>systemd-resolved</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Name Resolution manager<sbr/><citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Name Resolution manager<sbr/><citerefentry><refentrytitle>systemd-rfkill</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the RF kill switch state at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Load and save the RF kill switch state at boot and shutdown<sbr/><citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Run programs in transient scope or service units<sbr/><citerefentry><refentrytitle>systemd-shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System shutdown logic<sbr/><citerefentry><refentrytitle>systemd-shutdownd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Scheduled shutdown service<sbr/><citerefentry><refentrytitle>systemd-shutdownd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Scheduled shutdown service<sbr/><citerefentry><refentrytitle>systemd-shutdownd.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Scheduled shutdown service<sbr/><citerefentry><refentrytitle>systemd-sleep</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-sleep.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Suspend and hibernation configuration file<sbr/><citerefentry><refentrytitle>systemd-socket-proxyd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Bidirectionally proxy local sockets to another (possibly remote) socket.<sbr/><citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- System sleep state logic<sbr/><citerefentry><refentrytitle>systemd-sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel parameters at boot<sbr/><citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure kernel parameters at boot<sbr/><citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Generator for redirecting boot to offline update mode<sbr/><citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- System and session service manager configuration file<sbr/><citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Allocate system users and groups<sbr/><citerefentry><refentrytitle>systemd-sysusers.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Allocate system users and groups<sbr/><citerefentry><refentrytitle>systemd-timedated</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Time and date bus mechanism<sbr/><citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Time and date bus mechanism<sbr/><citerefentry><refentrytitle>systemd-timesyncd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Time Synchronization<sbr/><citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Network Time Synchronization<sbr/><citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-clean.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-clean.timer</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-setup-dev.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tmpfiles-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Creates, deletes and cleans up volatile and temporary files and directories<sbr/><citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- List or process pending systemd password requests<sbr/><citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-udevd-control.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-udevd-kernel.socket</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Device event managing daemon<sbr/><citerefentry><refentrytitle>systemd-update-done</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Mark<sbr/><citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Mark<sbr/><citerefentry><refentrytitle>systemd-update-utmp</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<sbr/><citerefentry><refentrytitle>systemd-update-utmp-runlevel.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<sbr/><citerefentry><refentrytitle>systemd-update-utmp.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Write audit and utmp updates at bootup, runlevel changes and shutdown<sbr/><citerefentry><refentrytitle>systemd-user-sessions</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Permit user logins after boot, prohibit user logins at shutdown<sbr/><citerefentry><refentrytitle>systemd-user-sessions.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Permit user logins after boot, prohibit user logins at shutdown<sbr/><citerefentry><refentrytitle>systemd-user.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- System and session service manager configuration file<sbr/><citerefentry><refentrytitle>systemd-vconsole-setup</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure the virtual console at boot<sbr/><citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Configure the virtual console at boot<sbr/><citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Automount unit configuration<sbr/><citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Device unit configuration<sbr/><citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Index of configuration directives<sbr/><citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Execution environment configuration<sbr/><citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Special journal fields<sbr/><citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Process killing procedure configuration<sbr/><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Network device configuration<sbr/><citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Mount unit configuration<sbr/><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Virtual Network Device configuration<sbr/><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Network configuration<sbr/><citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Path unit configuration<sbr/><citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Service enablement presets<sbr/><citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Resource control unit settings<sbr/><citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Scope unit configuration<sbr/><citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Service unit configuration<sbr/><citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Slice unit configuration<sbr/><citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Snapshot unit configuration<sbr/><citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Socket unit configuration<sbr/><citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Special systemd units<sbr/><citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Swap unit configuration<sbr/><citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Target unit configuration<sbr/><citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Time and date specifications<sbr/><citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Timer unit configuration<sbr/><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Unit configuration<sbr/><citerefentry><refentrytitle>sysusers.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Declarative allocation of system users and groups<sbr/></para></refsect1><refsect1><title>T</title><para><citerefentry><refentrytitle>telinit</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- Change SysV runlevel<sbr/><citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> -- Control the system time and date<sbr/><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration for creation, deletion and cleaning of volatile and temporary files<sbr/></para></refsect1><refsect1><title>U</title><para><citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> -- Dynamic device management<sbr/><citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry> -- udev management tool<sbr/></para></refsect1><refsect1><title>V</title><para><citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> -- Configuration file for the virtual console<sbr/></para></refsect1><refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
- <para id="counts">This index contains 403 entries, referring to 173 individual manual pages.</para>
+ <para id="counts">This index contains 412 entries, referring to 180 individual manual pages.</para>
</refsect1></refentry>
'\" t
-.TH "SYSTEMD\&.JOURNAL\-FIELDS" "7" "" "systemd 214" "systemd.journal-fields"
+.TH "SYSTEMD\&.JOURNAL\-FIELDS" "7" "" "systemd 215" "systemd.journal-fields"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
\fICOREDUMP_UNIT=\fR, \fICOREDUMP_USER_UNIT=\fR
.RS 4
Used to annotate messages containing coredumps from system and session units\&. See
-\fBsystemd-coredumpctl\fR(1)\&.
+\fBcoredumpctl\fR(1)\&.
.RE
.PP
Priviledged programs (currently UID 0) may attach
\fBjournalctl\fR(1),
\fBjournald.conf\fR(5),
\fBsd-journal\fR(3),
-\fBsystemd-coredumpctl\fR(1),
+\fBcoredumpctl\fR(1),
\fBsystemd.directives\fR(7)
.SH "NOTES"
.IP " 1." 4
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.journal-fields"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.journal-fields — Special journal fields</p></div><div class="refsect1"><a name="idm214193829296"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Entries in the journal resemble an environment
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.journal-fields"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.journal-fields — Special journal fields</p></div><div class="refsect1"><a name="idm214184810768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Entries in the journal resemble an environment
block in their syntax but with fields that can
include binary data. Primarily, fields are formatted
UTF-8 text strings, and binary formatting is used only
applications, but a few fields have special
meaning. All fields with special meanings are
optional. In some cases, fields may appear more than
- once per entry.</p></div><div class="refsect1"><a name="idm214193826576"></a><h2 id="User Journal Fields">User Journal Fields<a class="headerlink" title="Permalink to this headline" href="#User%20Journal%20Fields">¶</a></h2><p>User fields are fields that are directly passed
+ once per entry.</p></div><div class="refsect1"><a name="idm214184434256"></a><h2 id="User Journal Fields">User Journal Fields<a class="headerlink" title="Permalink to this headline" href="#User%20Journal%20Fields">¶</a></h2><p>User fields are fields that are directly passed
from clients and stored in the journal.</p><div class="variablelist"><dl class="variablelist"><dt id="MESSAGE="><span class="term"><code class="varname">MESSAGE=</code></span><a class="headerlink" title="Permalink to this term" href="#MESSAGE=">¶</a></dt><dd><p>The human-readable
message string for this
entry. This is supposed to be
PID. (Note that the tag is
usually derived from glibc's
<code class="varname">program_invocation_short_name</code>
- variable, see <a href="program_invocation_short_name.html"><span class="citerefentry"><span class="refentrytitle">program_invocation_short_name</span>(3)</span></a>.)</p></dd></dl></div></div><div class="refsect1"><a name="idm214194061296"></a><h2 id="Trusted Journal Fields">Trusted Journal Fields<a class="headerlink" title="Permalink to this headline" href="#Trusted%20Journal%20Fields">¶</a></h2><p>Fields prefixed with an underscore are trusted
+ variable, see <a href="program_invocation_short_name.html"><span class="citerefentry"><span class="refentrytitle">program_invocation_short_name</span>(3)</span></a>.)</p></dd></dl></div></div><div class="refsect1"><a name="idm214186362608"></a><h2 id="Trusted Journal Fields">Trusted Journal Fields<a class="headerlink" title="Permalink to this headline" href="#Trusted%20Journal%20Fields">¶</a></h2><p>Fields prefixed with an underscore are trusted
fields, i.e. fields that are implicitly added by the
journal and cannot be altered by client code.</p><div class="variablelist"><dl class="variablelist"><dt id="_PID="><span class="term"><code class="varname">_PID=</code>, </span><span class="term"><code class="varname">_UID=</code>, </span><span class="term"><code class="varname">_GID=</code></span><a class="headerlink" title="Permalink to this term" href="#_PID=">¶</a></dt><dd><p>The process, user, and
group ID of the process the
</span><a class="headerlink" title="Permalink to this term" href="#%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20kernel%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20">¶</a></dt><dd><p>for those
read from the
kernel
- </p></dd></dl></div></dd></dl></div></div><div class="refsect1"><a name="idm214189311216"></a><h2 id="Kernel Journal Fields">Kernel Journal Fields<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Journal%20Fields">¶</a></h2><p>Kernel fields are fields that are used by
+ </p></dd></dl></div></dd></dl></div></div><div class="refsect1"><a name="idm214184538176"></a><h2 id="Kernel Journal Fields">Kernel Journal Fields<a class="headerlink" title="Permalink to this headline" href="#Kernel%20Journal%20Fields">¶</a></h2><p>Kernel fields are fields that are used by
messages originating in the kernel and stored in the
journal.</p><div class="variablelist"><dl class="variablelist"><dt id="_KERNEL_DEVICE="><span class="term"><code class="varname">_KERNEL_DEVICE=</code></span><a class="headerlink" title="Permalink to this term" href="#_KERNEL_DEVICE=">¶</a></dt><dd><p>The kernel device
name. If the entry is
pointing to the device node in
<code class="filename">/dev</code>. This
field is frequently set more
- than once per entry.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189293856"></a><h2 id="Fields to log on behalf of a different program">Fields to log on behalf of a different program<a class="headerlink" title="Permalink to this headline" href="#Fields%20to%20log%20on%20behalf%20of%20a%20different%20program">¶</a></h2><p>Fields in this section are used by programs
+ than once per entry.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185136352"></a><h2 id="Fields to log on behalf of a different program">Fields to log on behalf of a different program<a class="headerlink" title="Permalink to this headline" href="#Fields%20to%20log%20on%20behalf%20of%20a%20different%20program">¶</a></h2><p>Fields in this section are used by programs
to specify that they are logging on behalf of another
program or unit.
</p><p>Fields used by the <span class="command"><strong>systemd-coredump</strong></span>
messages containing coredumps from
system and session units.
See
- <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>.
+ <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>.
</p></dd></dl></div><p>Priviledged programs (currently UID 0) may
attach <code class="varname">OBJECT_PID=</code> to a
message. This will instruct
as described above, except that the
process identified by <em class="replaceable"><code>PID</code></em>
is described, instead of the process
- which logged the message.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189269824"></a><h2 id="Address Fields">Address Fields<a class="headerlink" title="Permalink to this headline" href="#Address%20Fields">¶</a></h2><p>During serialization into external formats, such
+ which logged the message.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186169520"></a><h2 id="Address Fields">Address Fields<a class="headerlink" title="Permalink to this headline" href="#Address%20Fields">¶</a></h2><p>During serialization into external formats, such
as the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/export" target="_top">Journal
Export Format</a> or the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/json" target="_top">Journal
JSON Format</a>, the addresses of journal entries
address for the entry, this
should be combined with with the
boot ID in "<code class="literal">_BOOT_ID=</code>".
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214189256000"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214184586832"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="journald.conf.html"><span class="citerefentry"><span class="refentrytitle">journald.conf</span>(5)</span></a>,
<a href="sd-journal.html"><span class="citerefentry"><span class="refentrytitle">sd-journal</span>(3)</span></a>,
- <a href="systemd-coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">systemd-coredumpctl</span>(1)</span></a>,
+ <a href="coredumpctl.html"><span class="citerefentry"><span class="refentrytitle">coredumpctl</span>(1)</span></a>,
<a href="systemd.directives.html"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>
</p></div></div></body></html>
messages containing coredumps from
system and session units.
See
- <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
+ <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
</para>
</listitem>
</varlistentry>
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
'\" t
-.TH "SYSTEMD\&.KILL" "5" "" "systemd 214" "systemd.kill"
+.TH "SYSTEMD\&.KILL" "5" "" "systemd 215" "systemd.kill"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.kill"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.kill — Process killing procedure
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.kill"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.kill — Process killing procedure
configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
<code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code>,
<code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code>,
<code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code>,
- <code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></p></div><div class="refsect1"><a name="idm214170634336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Unit configuration files for services, sockets,
+ <code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></p></div><div class="refsect1"><a name="idm214167918160"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Unit configuration files for services, sockets,
mount points, swap devices and scopes share a subset
of configuration options which define the
killing procedure of processes belonging to the unit.</p><p>This man page lists the configuration options
specific to each unit type.</p><p>The kill procedure
configuration options are configured in the [Service],
[Socket], [Mount] or [Swap] section, depending on the
- unit type.</p></div><div class="refsect1"><a name="idm214170626640"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="KillMode="><span class="term"><code class="varname">KillMode=</code></span><a class="headerlink" title="Permalink to this term" href="#KillMode=">¶</a></dt><dd><p>Specifies how
+ unit type.</p></div><div class="refsect1"><a name="idm214169586688"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="KillMode="><span class="term"><code class="varname">KillMode=</code></span><a class="headerlink" title="Permalink to this term" href="#KillMode=">¶</a></dt><dd><p>Specifies how
processes of this unit shall be
killed. One of
<code class="option">control-group</code>,
shutdown procedure left processes of
the service around. Takes a boolean
value. Defaults to "yes".
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214172206912"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214170164624"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(8)</span></a>,
'\" t
-.TH "SYSTEMD\&.LINK" "5" "" "systemd 214" "systemd.link"
+.TH "SYSTEMD\&.LINK" "5" "" "systemd 215" "systemd.link"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
section, which determines if a given link file may be applied to a given device; and a
"[Link]"
section specifying how the device should be configured\&. The first (in lexical order) of the link files that matches a given device is applied\&.
+.SH "[MATCH] SECTION OPTIONS"
.PP
A link file is said to match a device if each of the entries in the
"[Match]"
\fBsystemd.unit\fR(5)
for details\&.
.RE
+.SH "[LINK] SECTION OPTIONS"
.PP
The
"[Link]"
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.link"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.link — Network device configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>link</code></em>.link</code></p></div><div class="refsect1"><a name="idm214174005280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Network link configuration is performed by the <span class="command"><strong>net_setup_link</strong></span>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.link"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.link — Network device configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>link</code></em>.link</code></p></div><div class="refsect1"><a name="idm214167301024"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Network link configuration is performed by the <span class="command"><strong>net_setup_link</strong></span>
udev builtin.</p><p>The link files are read from the files located in the
system network directory <code class="filename">/usr/lib/systemd/network</code>,
the volatile runtime network directory <code class="filename">/run/systemd/network</code>,
determines if a given link file may be applied to a given device; and a
"<code class="literal">[Link]</code>" section specifying how the device should be
configured. The first (in lexical order) of the link files that matches
- a given device is applied.</p><p>A link file is said to match a device if each of the entries in the
+ a given device is applied.</p></div><div class="refsect1"><a name="idm214167231168"></a><h2 id="[Match] Section Options">[Match] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BMatch%5D%20Section%20Options">¶</a></h2><p>A link file is said to match a device if each of the entries in the
"<code class="literal">[Match]</code>" section matches, or if the section is empty.
The following keys are accepted:</p><div class="variablelist"><dl class="variablelist"><dt id="MACAddress="><span class="term"><code class="varname">MACAddress=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddress=">¶</a></dt><dd><p>The hardware address.</p></dd><dt id="Path="><span class="term"><code class="varname">Path=</code></span><a class="headerlink" title="Permalink to this term" href="#Path=">¶</a></dt><dd><p>The persistent path, as exposed by the
udev property "<code class="literal">ID_PATH</code>". May
specific architecture. See
"<code class="literal">ConditionArchitecture=</code>" in
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
- for details.</p></dd></dl></div><p>The "<code class="literal">[Link]</code>" section accepts the following
+ for details.</p></dd></dl></div></div><div class="refsect1"><a name="idm214169589552"></a><h2 id="[Link] Section Options">[Link] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BLink%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Link]</code>" section accepts the following
keys:</p><div class="variablelist"><dl class="variablelist"><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p>A description of the device.</p></dd><dt id="Alias="><span class="term"><code class="varname">Alias=</code></span><a class="headerlink" title="Permalink to this term" href="#Alias=">¶</a></dt><dd><p>The "<code class="literal">ifalias</code>" is set to
this value.</p></dd><dt id="MACAddressPolicy="><span class="term"><code class="varname">MACAddressPolicy=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddressPolicy=">¶</a></dt><dd><p>The policy by which the MAC address
should be set. The available policies are:
The accepted values are "<code class="literal">half</code>"
and "<code class="literal">full</code>".</p></dd><dt id="WakeOnLan="><span class="term"><code class="varname">WakeOnLan=</code></span><a class="headerlink" title="Permalink to this term" href="#WakeOnLan=">¶</a></dt><dd><p>The Wake-on-LAN policy to set for the
device. The supported values are:</p><div class="variablelist"><dl class="variablelist"><dt id="phy"><span class="term">"<code class="literal">phy</code>"</span><a class="headerlink" title="Permalink to this term" href="#phy">¶</a></dt><dd><p>Wake on PHY activity.</p></dd><dt id="magic"><span class="term">"<code class="literal">magic</code>"</span><a class="headerlink" title="Permalink to this term" href="#magic">¶</a></dt><dd><p>Wake on receipt of a magic packet.
- </p></dd><dt id="off"><span class="term">"<code class="literal">off</code>"</span><a class="headerlink" title="Permalink to this term" href="#off">¶</a></dt><dd><p>Never wake.</p></dd></dl></div></dd></dl></div></div><div class="refsect1"><a name="idm214169472160"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214169471520"></a><p class="title"><b>Example 1. /etc/systemd/network/wireless.link</b></p><div class="example-contents"><pre class="programlisting">[Match]
+ </p></dd><dt id="off"><span class="term">"<code class="literal">off</code>"</span><a class="headerlink" title="Permalink to this term" href="#off">¶</a></dt><dd><p>Never wake.</p></dd></dl></div></dd></dl></div></div><div class="refsect1"><a name="idm214167421376"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214168941088"></a><p class="title"><b>Example 1. /etc/systemd/network/wireless.link</b></p><div class="example-contents"><pre class="programlisting">[Match]
MACAddress=12:34:56:78:9a:bc
Driver=brcmsmac
Path=pci-0000:02:00.0-*
MTUBytes=1450
BitsPerSecond=10M
WakeOnLan=magic
-MACAddress=cb:a9:87:65:43:21</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214169469744"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+MACAddress=cb:a9:87:65:43:21</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214168063536"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>,
<a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a>
</p></div></div></body></html>
<literal>[Link]</literal> section specifying how the device should be
configured. The first (in lexical order) of the link files that matches
a given device is applied.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>[Match] Section Options</title>
<para>A link file is said to match a device if each of the entries in the
<literal>[Match]</literal> section matches, or if the section is empty.
</varlistentry>
</variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>[Link] Section Options</title>
+
<para>The <literal>[Link]</literal> section accepts the following
keys:</para>
'\" t
-.TH "SYSTEMD\&.MOUNT" "5" "" "systemd 214" "systemd.mount"
+.TH "SYSTEMD\&.MOUNT" "5" "" "systemd 215" "systemd.mount"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
a few special mount options are understood by systemd which influence how dependencies are created for mount points from
/etc/fstab\&. systemd will create a dependency of type
\fBWants\fR
-from either
+or
+\fBRequires\fR
+(see option
+\fBnofail\fR
+below), from either
local\-fs\&.target
or
-remote\-fs\&.target, depending whether the file system is local or remote\&. If
+remote\-fs\&.target, depending whether the file system is local or remote\&.
+.PP
\fBx\-systemd\&.automount\fR
-is set, an automount unit will be created for the file system\&. See
+.RS 4
+An automount unit will be created for the file system\&. See
\fBsystemd.automount\fR(5)
-for details\&. If
+for details\&.
+.RE
+.PP
\fBx\-systemd\&.device\-timeout=\fR
-is specified, it may be used to configure how long systemd should wait for a device to show up before giving up on an entry from
-/etc/fstab\&. Specify a time in seconds or explicitly specify a unit as
+.RS 4
+Configure how long systemd should wait for a device to show up before giving up on an entry from
+/etc/fstab\&. Specify a time in seconds or explicitly append a unit as
"s",
"min",
"h",
"ms"\&.
+.sp
+Note that this option can only be used in
+/etc/fstab, and will be ignored when part of
+\fIOptions=\fR
+setting in a unit file\&.
+.RE
.PP
-If
+\fBnofail\fR, \fBfail\fR
+.RS 4
+With
\fBnofail\fR
-is given, this mount will be only wanted, not required, by the
+this mount will be only wanted, not required, by the
local\-fs\&.target\&. This means that the boot will continue even if this mount point is not mounted successfully\&. Option
\fBfail\fR
has the opposite meaning and is the default\&.
+.RE
.PP
-If
-\fBnoauto\fR
-is given, this mount will not be added as a dependency for
+\fBnoauto\fR, \fBauto\fR
+.RS 4
+With
+\fBnoauto\fR, this mount will not be added as a dependency for
local\-fs\&.target\&. This means that it will not be mounted automatically during boot, unless it is pulled in by some other unit\&. Option
\fBauto\fR
has the opposite meaning and is the default\&.
+.RE
+.PP
+\fBx\-initrd\&.mount\fR
+.RS 4
+An additional filesystem to be mounted in the initramfs\&. See
+initrd\-fs\&.target
+description in
+\fBsystemd.special\fR(7)\&.
+.RE
.PP
If a mount point is configured in both
/etc/fstab
Mount options to use when mounting\&. This takes a comma\-separated list of options\&. This setting is optional\&.
.RE
.PP
+\fISloppyOptions=\fR
+.RS 4
+Takes a boolean argument\&. If true, parsing of the options specified in
+\fIOptions=\fR
+is relaxed, and unknown mount options are tolerated\&. This corresponds with
+\fBmount\fR(8)\*(Aqs
+\fI\-s\fR
+switch\&. Defaults to off\&.
+.RE
+.PP
\fIDirectoryMode=\fR
.RS 4
Directories of mount points (and any parent directories) are automatically created if needed\&. This option specifies the file system access mode used when creating these directories\&. Takes an access mode in octal notation\&. Defaults to 0755\&.
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.mount"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.mount — Mount unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code></p></div><div class="refsect1"><a name="idm214185662048"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.mount"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.mount — Mount unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code></p></div><div class="refsect1"><a name="idm214182106304"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.mount</code>" encodes information about
a file system mount point controlled and supervised by
systemd.</p><p>This man page lists the configuration options
userspace-to-userpace interfaces. Some of them may not
be changed via mount units, and cannot be disabled.
For a longer discussion see <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems" target="_top">API
- File Systems</a>.</p></div><div class="refsect1"><a name="idm214184229664"></a><h2 id="/etc/fstab"><code class="filename">/etc/fstab</code><a class="headerlink" title="Permalink to this headline" href="#/etc/fstab">¶</a></h2><p>Mount units may either be configured via unit
+ File Systems</a>.</p></div><div class="refsect1"><a name="idm214182689296"></a><h2 id="/etc/fstab"><code class="filename">/etc/fstab</code><a class="headerlink" title="Permalink to this headline" href="#/etc/fstab">¶</a></h2><p>Mount units may either be configured via unit
files, or via <code class="filename">/etc/fstab</code> (see
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>
for details). Mounts listed in
which influence how dependencies are created for mount
points from <code class="filename">/etc/fstab</code>. systemd
will create a dependency of type
- <code class="option">Wants</code> from either
- <code class="filename">local-fs.target</code> or
+ <code class="option">Wants</code> or <code class="option">Requires</code>
+ (see option <code class="option">nofail</code> below), from
+ either <code class="filename">local-fs.target</code> or
<code class="filename">remote-fs.target</code>, depending
- whether the file system is local or remote. If
- <code class="option">x-systemd.automount</code> is set, an
- automount unit will be created for the file
- system. See
- <a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>
- for details. If
- <code class="option">x-systemd.device-timeout=</code> is
- specified, it may be used to configure how long systemd
- should wait for a device to show up before giving up
- on an entry from
- <code class="filename">/etc/fstab</code>. Specify a time in
- seconds or explicitly specify a unit as
- "<code class="literal">s</code>", "<code class="literal">min</code>",
- "<code class="literal">h</code>", "<code class="literal">ms</code>".</p><p>If <code class="option">nofail</code> is given, this mount
- will be only wanted, not required, by the
- <code class="filename">local-fs.target</code>. This means that
- the boot will continue even if this mount point is not
- mounted successfully. Option <code class="option">fail</code> has
- the opposite meaning and is the default.</p><p>If <code class="option">noauto</code> is given, this mount
- will not be added as a dependency for
- <code class="filename">local-fs.target</code>. This means that
- it will not be mounted automatically during boot,
- unless it is pulled in by some other unit. Option
- <code class="option">auto</code> has the opposite meaning and is
- the default.</p><p>If a mount point is configured in both
+ whether the file system is local or remote.</p><div class="variablelist"><dl class="variablelist"><dt id="x-systemd.automount"><span class="term"><code class="option">x-systemd.automount</code></span><a class="headerlink" title="Permalink to this term" href="#x-systemd.automount">¶</a></dt><dd><p>An automount unit will be created
+ for the file system. See
+ <a href="systemd.automount.html"><span class="citerefentry"><span class="refentrytitle">systemd.automount</span>(5)</span></a>
+ for details.</p></dd><dt id="x-systemd.device-timeout="><span class="term"><code class="option">x-systemd.device-timeout=</code></span><a class="headerlink" title="Permalink to this term" href="#x-systemd.device-timeout=">¶</a></dt><dd><p>Configure how long systemd should
+ wait for a device to show up before giving up on
+ an entry from
+ <code class="filename">/etc/fstab</code>. Specify a time in
+ seconds or explicitly append a unit as
+ "<code class="literal">s</code>", "<code class="literal">min</code>",
+ "<code class="literal">h</code>",
+ "<code class="literal">ms</code>".</p><p>Note that this option can only be used in
+ <code class="filename">/etc/fstab</code>, and will be
+ ignored when part of <code class="varname">Options=</code>
+ setting in a unit file.</p></dd><dt id="nofail"><span class="term"><code class="option">nofail</code>, </span><span class="term"><code class="option">fail</code></span><a class="headerlink" title="Permalink to this term" href="#nofail">¶</a></dt><dd><p>With <code class="option">nofail</code> this
+ mount will be only wanted, not required, by the
+ <code class="filename">local-fs.target</code>. This means
+ that the boot will continue even if this mount
+ point is not mounted successfully. Option
+ <code class="option">fail</code> has the opposite meaning and
+ is the default.</p></dd><dt id="noauto"><span class="term"><code class="option">noauto</code>, </span><span class="term"><code class="option">auto</code></span><a class="headerlink" title="Permalink to this term" href="#noauto">¶</a></dt><dd><p>With <code class="option">noauto</code>, this
+ mount will not be added as a dependency for
+ <code class="filename">local-fs.target</code>. This means
+ that it will not be mounted automatically during
+ boot, unless it is pulled in by some other
+ unit. Option <code class="option">auto</code> has the
+ opposite meaning and is the default.</p></dd><dt id="x-initrd.mount"><span class="term"><code class="option">x-initrd.mount</code></span><a class="headerlink" title="Permalink to this term" href="#x-initrd.mount">¶</a></dt><dd><p>An additional filesystem to be
+ mounted in the initramfs. See
+ <code class="filename">initrd-fs.target</code> description
+ in
+ <a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>.
+ </p></dd></dl></div><p>If a mount point is configured in both
<code class="filename">/etc/fstab</code> and a unit file that
is stored below <code class="filename">/usr</code>, the former
will take precedence. If the unit file is stored below
this is superseded by the rule that configuration in
<code class="filename">/etc</code> will always take precedence
over configuration in
- <code class="filename">/usr</code>.</p></div><div class="refsect1"><a name="idm214185802912"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Mount files must include a [Mount] section,
+ <code class="filename">/usr</code>.</p></div><div class="refsect1"><a name="idm214181078496"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Mount files must include a [Mount] section,
which carries information about the file system mount points it
supervises. A number of options that may be used in
this section are shared with other unit types. These
optional.</p></dd><dt id="Options="><span class="term"><code class="varname">Options=</code></span><a class="headerlink" title="Permalink to this term" href="#Options=">¶</a></dt><dd><p>Mount options to use
when mounting. This takes a
comma-separated list of options. This
- setting is optional.</p></dd><dt id="DirectoryMode="><span class="term"><code class="varname">DirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="#DirectoryMode=">¶</a></dt><dd><p>Directories of mount
+ setting is optional.</p></dd><dt id="SloppyOptions="><span class="term"><code class="varname">SloppyOptions=</code></span><a class="headerlink" title="Permalink to this term" href="#SloppyOptions=">¶</a></dt><dd><p>Takes a boolean
+ argument. If true, parsing of the
+ options specified in
+ <code class="varname">Options=</code> is
+ relaxed, and unknown mount options are
+ tolerated. This corresponds with
+ <a href="mount.html"><span class="citerefentry"><span class="refentrytitle">mount</span>(8)</span></a>'s
+ <em class="parameter"><code>-s</code></em>
+ switch. Defaults to
+ off.</p></dd><dt id="DirectoryMode="><span class="term"><code class="varname">DirectoryMode=</code></span><a class="headerlink" title="Permalink to this term" href="#DirectoryMode=">¶</a></dt><dd><p>Directories of mount
points (and any parent directories)
are automatically created if
needed. This option specifies the file
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
and
<a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>
- for more settings.</p></div><div class="refsect1"><a name="idm214181154208"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ for more settings.</p></div><div class="refsect1"><a name="idm214180019264"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
which influence how dependencies are created for mount
points from <filename>/etc/fstab</filename>. systemd
will create a dependency of type
- <option>Wants</option> from either
- <filename>local-fs.target</filename> or
+ <option>Wants</option> or <option>Requires</option>
+ (see option <option>nofail</option> below), from
+ either <filename>local-fs.target</filename> or
<filename>remote-fs.target</filename>, depending
- whether the file system is local or remote. If
- <option>x-systemd.automount</option> is set, an
- automount unit will be created for the file
- system. See
- <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
- for details. If
- <option>x-systemd.device-timeout=</option> is
- specified, it may be used to configure how long systemd
- should wait for a device to show up before giving up
- on an entry from
- <filename>/etc/fstab</filename>. Specify a time in
- seconds or explicitly specify a unit as
- <literal>s</literal>, <literal>min</literal>,
- <literal>h</literal>, <literal>ms</literal>.</para>
-
- <para>If <option>nofail</option> is given, this mount
- will be only wanted, not required, by the
- <filename>local-fs.target</filename>. This means that
- the boot will continue even if this mount point is not
- mounted successfully. Option <option>fail</option> has
- the opposite meaning and is the default.</para>
-
- <para>If <option>noauto</option> is given, this mount
- will not be added as a dependency for
- <filename>local-fs.target</filename>. This means that
- it will not be mounted automatically during boot,
- unless it is pulled in by some other unit. Option
- <option>auto</option> has the opposite meaning and is
- the default.</para>
+ whether the file system is local or remote.</para>
+
+ <variablelist class='fstab-options'>
+
+ <varlistentry>
+ <term><option>x-systemd.automount</option></term>
+
+ <listitem><para>An automount unit will be created
+ for the file system. See
+ <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for details.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>x-systemd.device-timeout=</option></term>
+
+ <listitem><para>Configure how long systemd should
+ wait for a device to show up before giving up on
+ an entry from
+ <filename>/etc/fstab</filename>. Specify a time in
+ seconds or explicitly append a unit as
+ <literal>s</literal>, <literal>min</literal>,
+ <literal>h</literal>,
+ <literal>ms</literal>.</para>
+
+ <para>Note that this option can only be used in
+ <filename>/etc/fstab</filename>, and will be
+ ignored when part of <varname>Options=</varname>
+ setting in a unit file.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>nofail</option></term>
+ <term><option>fail</option></term>
+
+ <listitem><para>With <option>nofail</option> this
+ mount will be only wanted, not required, by the
+ <filename>local-fs.target</filename>. This means
+ that the boot will continue even if this mount
+ point is not mounted successfully. Option
+ <option>fail</option> has the opposite meaning and
+ is the default.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>noauto</option></term>
+ <term><option>auto</option></term>
+
+ <listitem><para>With <option>noauto</option>, this
+ mount will not be added as a dependency for
+ <filename>local-fs.target</filename>. This means
+ that it will not be mounted automatically during
+ boot, unless it is pulled in by some other
+ unit. Option <option>auto</option> has the
+ opposite meaning and is the default.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>x-initrd.mount</option></term>
+
+ <listitem><para>An additional filesystem to be
+ mounted in the initramfs. See
+ <filename>initrd-fs.target</filename> description
+ in
+ <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
<para>If a mount point is configured in both
<filename>/etc/fstab</filename> and a unit file that
setting is optional.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>SloppyOptions=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If true, parsing of the
+ options specified in
+ <varname>Options=</varname> is
+ relaxed, and unknown mount options are
+ tolerated. This corresponds with
+ <citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s
+ <parameter>-s</parameter>
+ switch. Defaults to
+ off.</para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>DirectoryMode=</varname></term>
<listitem><para>Directories of mount
'\" t
-.TH "SYSTEMD\&.NETDEV" "5" "" "systemd 214" "systemd.network"
+.TH "SYSTEMD\&.NETDEV" "5" "" "systemd 215" "systemd.network"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
with the same name as a configuration file in
/usr/lib, pointing to
/dev/null, disables the configuration file entirely\&.
+.SH "[MATCH] SECTION OPTIONS"
.PP
A virtual network device is only created if the
"[Match]"
\fBsystemd.unit\fR(5)
for details\&.
.RE
+.SH "[NETDEV] SECTION OPTIONS"
.PP
The
"[NetDev]"
section accepts the following keys:
.PP
+\fIDescription=\fR
+.RS 4
+A free\-form description of the netdev\&.
+.RE
+.PP
\fIName=\fR
.RS 4
The interface name used when creating the netdev\&. This option is compulsory\&.
The netdev kind\&. Currently,
"bridge",
"bond",
-"vlan"
-and
-"macvlan"
+"vlan",
+"macvlan",
+"vxlan",
+"ipip",
+"gre",
+"sit",
+"vti",
+"veth", and
+"dummy"
are supported\&. This option is compulsory\&.
.RE
.PP
+\fIMTUBytes=\fR
+.RS 4
+The maximum transmission unit in bytes to set for the device\&. The usual suffixes K, M, G, are supported and are understood to the base of 1024\&.
+.RE
+.PP
+\fIMACAddress=\fR
+.RS 4
+The MAC address to use for the device\&. If none is given, one is generated based on the interface name and the
+\fBmachine-id\fR(5)\&.
+.RE
+.SH "[VLAN] SECTION OPTIONS"
+.PP
The
"[VLAN]"
section only applies for netdevs of kind
.RS 4
The VLAN ID to use\&. An integer in the range 0\(en4094\&. This option is compulsory\&.
.RE
+.SH "[MACVLAN] SECTION OPTIONS"
.PP
The
"[MACVLAN]"
and
"passthru"\&.
.RE
+.SH "[VXLAN] SECTION OPTIONS"
+.PP
+The
+"[VXLAN]"
+section only applies for netdevs of kind
+"vxlan", and accepts the following key:
+.PP
+\fIId=\fR
+.RS 4
+The VXLAN ID to use\&.
+.RE
+.PP
+\fIGroup=\fR
+.RS 4
+An assigned multicast group IP address\&.
+.RE
+.PP
+\fITOS=\fR
+.RS 4
+The Type Of Service byte value for a vxlan interface\&.
+.RE
+.PP
+\fITTL=\fR
+.RS 4
+A fixed Time To Live N on Virtual eXtensible Local Area Network packets\&. N is a number in the range 1\-255\&. 0 is a special value meaning that packets inherit the TTL value\&.
+.RE
+.PP
+\fIMacLearning=\fR
+.RS 4
+A boolean\&. When true, enables dynamic MAC learning to discover remote MAC addresses\&.
+.RE
+.SH "[TUNNEL] SECTION OPTIONS"
+.PP
+The
+"[Tunnel]"
+section only applies for netdevs of kind
+"ipip",
+"sit",
+"gre"
+and
+"vti"
+and accepts the following keys:
+.PP
+\fILocal=\fR
+.RS 4
+A static local address for tunneled packets\&. It must be an address on another interface of this host\&.
+.RE
+.PP
+\fIRemote=\fR
+.RS 4
+The remote endpoint of the tunnel\&.
+.RE
+.PP
+\fITOS=\fR
+.RS 4
+The Type Of Service byte value for a tunnel interface\&. For details about the TOS see the
+\m[blue]\fBType of Service in the Internet Protocol Suite\fR\m[]\&\s-2\u[1]\d\s+2
+document\&.
+.RE
+.PP
+\fITTL=\fR
+.RS 4
+A fixed Time To Live N on tunneled packets\&. N is a number in the range 1\-255\&. 0 is a special value meaning that packets inherit the TTL value\&. The default value for IPv4 tunnels is: inherit\&. The default value for IPv6 tunnels is: 64\&.
+.RE
+.PP
+\fIDiscoverPathMTU=\fR
+.RS 4
+A boolean\&. When true, enables Path MTU Discovery on the tunnel\&.
+.RE
+.SH "[PEER] SECTION OPTIONS"
+.PP
+The
+"[Peer]"
+section only applies for netdevs of kind
+"veth"
+and accepts the following key:
+.PP
+\fIName=\fR
+.RS 4
+The interface name used when creating the netdev\&. This option is compulsory\&.
+.RE
+.PP
+\fIMACAddress=\fR
+.RS 4
+The peer MACAddress, if not set it is generated in the same way as the MAC address of the main interface\&.
+.RE
+.SH "[TUN] SECTION OPTIONS"
+.PP
+The
+"[Tun]"
+section only applies for netdevs of kind
+"tun", and accepts the following keys:
+.PP
+\fIOneQueue=\fR
+.RS 4
+Takes a boolean argument\&. Configures whether all packets are queued at the device (enabled), or a fixed number of packets are queued at the device and the rest at the
+"qdisc"\&. Defaults to
+"no"\&.
+.RE
+.PP
+\fIMultiQueue=\fR
+.RS 4
+Takes a boolean argument\&. Configures whether to use multiple file descriptors (queues) to parallelize packets sending and receiving\&. Defaults to
+"no"\&.
+.RE
+.PP
+\fIPacketInfo=\fR
+.RS 4
+Takes a boolean argument\&. Configures whether packets should be prepened with four extra bytes (two flag bytes and two protocol bytes)\&. If disabled it indicates that the packets will be pure IP packets\&. Defaults to
+"no"\&.
+.RE
+.PP
+\fIUser=\fR
+.RS 4
+User to grant access to the
+/dev/net/tun
+device\&.
+.RE
+.PP
+\fIGroup=\fR
+.RS 4
+Group to grant access to the
+/dev/net/tun
+device\&.
+.RE
+.SH "[TAP] SECTION OPTIONS"
+.PP
+The
+"[Tap]"
+section only applies for netdevs of kind
+"tap", and accepts the same keys as the
+"[Tun]"
+section\&.
.SH "EXAMPLE"
.PP
\fBExample\ \&1.\ \&/etc/systemd/network/bridge.netdev\fR
.if n \{\
.RE
.\}
+.PP
+\fBExample\ \&3.\ \&/etc/systemd/network/ipip.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=ipip\-tun
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192\&.168\&.223\&.238
+Remote=192\&.169\&.224\&.239
+TTL=64
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&4.\ \&/etc/systemd/network/tap.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=tap\-test
+Kind=tap
+
+[Tap]
+MultiQueue=true
+PacketInfo=true
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&5.\ \&/etc/systemd/network/sit.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=sit\-tun
+Kind=sit
+MTUBytes=1480
+
+[Tunnel]
+Local=10\&.65\&.223\&.238
+Remote=10\&.65\&.223\&.239
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&6.\ \&/etc/systemd/network/gre.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=gre\-tun
+Kind=gre
+MTUBytes=1480
+
+[Tunnel]
+Local=10\&.65\&.223\&.238
+Remote=10\&.65\&.223\&.239
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&7.\ \&/etc/systemd/network/vti.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=vti\-tun
+Kind=vti
+MTUBytes=1480
+
+[Tunnel]
+Local=10\&.65\&.223\&.238
+Remote=10\&.65\&.223\&.239
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&8.\ \&/etc/systemd/network/veth.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=veth\-test
+Kind=veth
+
+[Peer]
+Name=veth\-peer
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&9.\ \&/etc/systemd/network/dummy.netdev\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[NetDev]
+Name=dummy\-test
+Kind=dummy
+MACAddress=12:34:56:78:9a:bc
+.fi
+.if n \{\
+.RE
+.\}
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsystemd-networkd\fR(8),
\fBsystemd.network\fR(5)
+.SH "NOTES"
+.IP " 1." 4
+Type of Service in the Internet Protocol Suite
+.RS 4
+\%http://tools.ietf.org/html/rfc1349
+.RE
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.netdev"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.netdev — Virtual Network Device configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>netdev</code></em>.netdev</code></p></div><div class="refsect1"><a name="idm214188018224"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Network setup is performed by
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.netdev"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.netdev — Virtual Network Device configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>netdev</code></em>.netdev</code></p></div><div class="refsect1"><a name="idm214175257200"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Network setup is performed by
<a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a>.
</p><p>Virtual Network Device files must have the extension
<code class="filename">.netdev</code>; other extensions are ignored. Virtual
system-supplied configuration file with a local file if needed; a symlink in
<code class="filename">/etc</code> with the same name as a configuration file in
<code class="filename">/usr/lib</code>, pointing to <code class="filename">/dev/null</code>,
- disables the configuration file entirely.</p><p>A virtual network device is only created if the
+ disables the configuration file entirely.</p></div><div class="refsect1"><a name="idm214175246240"></a><h2 id="[Match] Section Options">[Match] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BMatch%5D%20Section%20Options">¶</a></h2><p>A virtual network device is only created if the
"<code class="literal">[Match]</code>" section matches the current
environment, or if the section is empty. The following keys are accepted:</p><div class="variablelist"><dl class="variablelist"><dt id="Host="><span class="term"><code class="varname">Host=</code></span><a class="headerlink" title="Permalink to this term" href="#Host=">¶</a></dt><dd><p>Matches against the hostname or machine ID of the
host. See "<code class="literal">ConditionHost=</code>" in
architecture. See "<code class="literal">ConditionArchitecture=</code>" in
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
for details.
- </p></dd></dl></div><p>The "<code class="literal">[NetDev]</code>" section accepts the following
- keys:</p><div class="variablelist"><dl class="variablelist"><dt id="Name="><span class="term"><code class="varname">Name=</code></span><a class="headerlink" title="Permalink to this term" href="#Name=">¶</a></dt><dd><p>The interface name used when creating the
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214179182688"></a><h2 id="[NetDev] Section Options">[NetDev] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BNetDev%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[NetDev]</code>" section accepts the following
+ keys:</p><div class="variablelist"><dl class="variablelist"><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p>A free-form description of the netdev.
+ </p></dd><dt id="Name="><span class="term"><code class="varname">Name=</code></span><a class="headerlink" title="Permalink to this term" href="#Name=">¶</a></dt><dd><p>The interface name used when creating the
netdev. This option is compulsory.</p></dd><dt id="Kind="><span class="term"><code class="varname">Kind=</code></span><a class="headerlink" title="Permalink to this term" href="#Kind=">¶</a></dt><dd><p>The netdev kind. Currently, "<code class="literal">bridge</code>",
- "<code class="literal">bond</code>", "<code class="literal">vlan</code>" and
- "<code class="literal">macvlan</code>" are supported. This option
- is compulsory.</p></dd></dl></div><p>The "<code class="literal">[VLAN]</code>" section only applies for netdevs of kind "<code class="literal">vlan</code>",
+ "<code class="literal">bond</code>", "<code class="literal">vlan</code>",
+ "<code class="literal">macvlan</code>", "<code class="literal">vxlan</code>",
+ "<code class="literal">ipip</code>", "<code class="literal">gre</code>",
+ "<code class="literal">sit</code>", "<code class="literal">vti</code>",
+ "<code class="literal">veth</code>", and "<code class="literal">dummy</code>"
+ are supported. This option is compulsory.</p></dd><dt id="MTUBytes="><span class="term"><code class="varname">MTUBytes=</code></span><a class="headerlink" title="Permalink to this term" href="#MTUBytes=">¶</a></dt><dd><p>The maximum transmission unit in bytes to
+ set for the device. The usual suffixes K, M, G,
+ are supported and are understood to the base of
+ 1024.</p></dd><dt id="MACAddress="><span class="term"><code class="varname">MACAddress=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddress=">¶</a></dt><dd><p>The MAC address to use for the device.
+ If none is given, one is generated based on
+ the interface name and the
+ <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a>.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214179154848"></a><h2 id="[VLAN] Section Options">[VLAN] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BVLAN%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[VLAN]</code>" section only applies for netdevs of kind "<code class="literal">vlan</code>",
and accepts the following key:</p><div class="variablelist"><dl class="variablelist"><dt id="Id="><span class="term"><code class="varname">Id=</code></span><a class="headerlink" title="Permalink to this term" href="#Id=">¶</a></dt><dd><p>The VLAN ID to use. An integer in the range 0–4094.
- This option is compulsory.</p></dd></dl></div><p>The "<code class="literal">[MACVLAN]</code>" section only applies for netdevs of kind
+ This option is compulsory.</p></dd></dl></div></div><div class="refsect1"><a name="idm214179149536"></a><h2 id="[MACVLAN] Section Options">[MACVLAN] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BMACVLAN%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[MACVLAN]</code>" section only applies for netdevs of kind
"<code class="literal">macvlan</code>", and accepts the following key:</p><div class="variablelist"><dl class="variablelist"><dt id="Mode="><span class="term"><code class="varname">Mode=</code></span><a class="headerlink" title="Permalink to this term" href="#Mode=">¶</a></dt><dd><p>The MACVLAN mode to use. The supported options are
"<code class="literal">private</code>", "<code class="literal">vepa</code>",
"<code class="literal">bridge</code>" and "<code class="literal">passthru</code>".
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214190871728"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214190871056"></a><p class="title"><b>Example 1. /etc/systemd/network/bridge.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214174175360"></a><h2 id="[VXLAN] Section Options">[VXLAN] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BVXLAN%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[VXLAN]</code>" section only applies for netdevs of kind
+ "<code class="literal">vxlan</code>", and accepts the following key:</p><div class="variablelist"><dl class="variablelist"><dt id="Id="><span class="term"><code class="varname">Id=</code></span><a class="headerlink" title="Permalink to this term" href="#Id=">¶</a></dt><dd><p>The VXLAN ID to use.</p></dd><dt id="Group="><span class="term"><code class="varname">Group=</code></span><a class="headerlink" title="Permalink to this term" href="#Group=">¶</a></dt><dd><p>An assigned multicast group IP address.</p></dd><dt id="TOS="><span class="term"><code class="varname">TOS=</code></span><a class="headerlink" title="Permalink to this term" href="#TOS=">¶</a></dt><dd><p>The Type Of Service byte value for a vxlan interface.</p></dd><dt id="TTL="><span class="term"><code class="varname">TTL=</code></span><a class="headerlink" title="Permalink to this term" href="#TTL=">¶</a></dt><dd><p>A fixed Time To Live N on Virtual eXtensible Local Area Network packets.
+ N is a number in the range 1-255. 0 is a special value meaning that packets
+ inherit the TTL value.</p></dd><dt id="MacLearning="><span class="term"><code class="varname">MacLearning=</code></span><a class="headerlink" title="Permalink to this term" href="#MacLearning=">¶</a></dt><dd><p>A boolean. When true, enables dynamic MAC learning
+ to discover remote MAC addresses.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174163584"></a><h2 id="[Tunnel] Section Options">[Tunnel] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BTunnel%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Tunnel]</code>" section only applies for netdevs of kind
+ "<code class="literal">ipip</code>", "<code class="literal">sit</code>", "<code class="literal">gre</code>" and
+ "<code class="literal">vti</code>" and accepts the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="Local="><span class="term"><code class="varname">Local=</code></span><a class="headerlink" title="Permalink to this term" href="#Local=">¶</a></dt><dd><p>A static local address for tunneled packets.
+ It must be an address on another interface of this host.</p></dd><dt id="Remote="><span class="term"><code class="varname">Remote=</code></span><a class="headerlink" title="Permalink to this term" href="#Remote=">¶</a></dt><dd><p>The remote endpoint of the tunnel.</p></dd><dt id="TOS="><span class="term"><code class="varname">TOS=</code></span><a class="headerlink" title="Permalink to this term" href="#TOS=">¶</a></dt><dd><p>The Type Of Service byte value for a tunnel interface.
+ For details about the TOS see the
+ <a class="ulink" href="http://tools.ietf.org/html/rfc1349" target="_top">
+ Type of Service in the Internet Protocol Suite
+ </a> document.
+ </p></dd><dt id="TTL="><span class="term"><code class="varname">TTL=</code></span><a class="headerlink" title="Permalink to this term" href="#TTL=">¶</a></dt><dd><p>A fixed Time To Live N on tunneled packets.
+ N is a number in the range 1-255. 0 is a special value meaning that packets
+ inherit the TTL value. The default value for IPv4 tunnels is: inherit.
+ The default value for IPv6 tunnels is: 64.</p></dd><dt id="DiscoverPathMTU="><span class="term"><code class="varname">DiscoverPathMTU=</code></span><a class="headerlink" title="Permalink to this term" href="#DiscoverPathMTU=">¶</a></dt><dd><p>A boolean. When true, enables Path MTU Discovery on the tunnel.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174148736"></a><h2 id="[Peer] Section Options">[Peer] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BPeer%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Peer]</code>" section only applies for netdevs of kind "<code class="literal">veth</code>"
+ and accepts the following key:</p><div class="variablelist"><dl class="variablelist"><dt id="Name="><span class="term"><code class="varname">Name=</code></span><a class="headerlink" title="Permalink to this term" href="#Name=">¶</a></dt><dd><p>The interface name used when creating the netdev.
+ This option is compulsory.</p></dd><dt id="MACAddress="><span class="term"><code class="varname">MACAddress=</code></span><a class="headerlink" title="Permalink to this term" href="#MACAddress=">¶</a></dt><dd><p>The peer MACAddress, if not set it is generated in the same
+ way as the MAC address of the main interface.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174142064"></a><h2 id="[Tun] Section Options">[Tun] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BTun%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Tun]</code>" section only applies for netdevs of kind
+ "<code class="literal">tun</code>", and accepts the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="OneQueue="><span class="term"><code class="varname">OneQueue=</code></span><a class="headerlink" title="Permalink to this term" href="#OneQueue=">¶</a></dt><dd><p>Takes a boolean argument. Configures whether
+ all packets are queued at the device (enabled), or a fixed number
+ of packets are queued at the device and the rest at the
+ "<code class="literal">qdisc</code>". Defaults to "<code class="literal">no</code>".</p></dd><dt id="MultiQueue="><span class="term"><code class="varname">MultiQueue=</code></span><a class="headerlink" title="Permalink to this term" href="#MultiQueue=">¶</a></dt><dd><p>Takes a boolean argument. Configures whether to
+ use multiple file descriptors (queues) to parallelize packets
+ sending and receiving. Defaults to "<code class="literal">no</code>".</p></dd><dt id="PacketInfo="><span class="term"><code class="varname">PacketInfo=</code></span><a class="headerlink" title="Permalink to this term" href="#PacketInfo=">¶</a></dt><dd><p>Takes a boolean argument. Configures whether packets
+ should be prepened with four extra bytes (two flag bytes and two
+ protocol bytes). If disabled it indicates that the packets will be
+ pure IP packets. Defaults to "<code class="literal">no</code>".</p></dd><dt id="User="><span class="term"><code class="varname">User=</code></span><a class="headerlink" title="Permalink to this term" href="#User=">¶</a></dt><dd><p>User to grant access to the <code class="filename">/dev/net/tun</code>
+ device.</p></dd><dt id="Group="><span class="term"><code class="varname">Group=</code></span><a class="headerlink" title="Permalink to this term" href="#Group=">¶</a></dt><dd><p>Group to grant access to the <code class="filename">/dev/net/tun</code>
+ device.</p></dd></dl></div></div><div class="refsect1"><a name="idm214174126640"></a><h2 id="[Tap] Section Options">[Tap] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BTap%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Tap]</code>" section only applies for netdevs of kind
+ "<code class="literal">tap</code>", and accepts the same keys as the
+ "<code class="literal">[Tun]</code>" section.</p></div><div class="refsect1"><a name="idm214174123456"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214174122816"></a><p class="title"><b>Example 1. /etc/systemd/network/bridge.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
Name=bridge0
-Kind=bridge</pre></div></div><br class="example-break"><div class="example"><a name="idm214190869536"></a><p class="title"><b>Example 2. /etc/systemd/network/vlan1.netdev</b></p><div class="example-contents"><pre class="programlisting">[Match]
+Kind=bridge</pre></div></div><br class="example-break"><div class="example"><a name="idm214174121424"></a><p class="title"><b>Example 2. /etc/systemd/network/vlan1.netdev</b></p><div class="example-contents"><pre class="programlisting">[Match]
Virtualization=no
[NetDev]
Kind=vlan
[VLAN]
-Id=1</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214190867856"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+Id=1</pre></div></div><br class="example-break"><div class="example"><a name="idm214174119952"></a><p class="title"><b>Example 3. /etc/systemd/network/ipip.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=ipip-tun
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192.168.223.238
+Remote=192.169.224.239
+TTL=64</pre></div></div><br class="example-break"><div class="example"><a name="idm214174118432"></a><p class="title"><b>Example 4. /etc/systemd/network/tap.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=tap-test
+Kind=tap
+
+[Tap]
+MultiQueue=true
+PacketInfo=true</pre></div></div><br class="example-break"><div class="example"><a name="idm214174116960"></a><p class="title"><b>Example 5. /etc/systemd/network/sit.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=sit-tun
+Kind=sit
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</pre></div></div><br class="example-break"><div class="example"><a name="idm214174115456"></a><p class="title"><b>Example 6. /etc/systemd/network/gre.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=gre-tun
+Kind=gre
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</pre></div></div><br class="example-break"><div class="example"><a name="idm214174113952"></a><p class="title"><b>Example 7. /etc/systemd/network/vti.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=vti-tun
+Kind=vti
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</pre></div></div><br class="example-break"><div class="example"><a name="idm214174112448"></a><p class="title"><b>Example 8. /etc/systemd/network/veth.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=veth-test
+Kind=veth
+
+[Peer]
+Name=veth-peer</pre></div></div><br class="example-break"><div class="example"><a name="idm214174110976"></a><p class="title"><b>Example 9. /etc/systemd/network/dummy.netdev</b></p><div class="example-contents"><pre class="programlisting">[NetDev]
+Name=dummy-test
+Kind=dummy
+MACAddress=12:34:56:78:9a:bc</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214174109376"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a>,
<a href="systemd.network.html"><span class="citerefentry"><span class="refentrytitle">systemd.network</span>(5)</span></a>
<filename>/usr/lib</filename>, pointing to <filename>/dev/null</filename>,
disables the configuration file entirely.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>[Match] Section Options</title>
+
<para>A virtual network device is only created if the
<literal>[Match]</literal> section matches the current
environment, or if the section is empty. The following keys are accepted:</para>
</varlistentry>
</variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>[NetDev] Section Options</title>
+
<para>The <literal>[NetDev]</literal> section accepts the following
keys:</para>
<variablelist class='network-directives'>
+ <varlistentry>
+ <term><varname>Description=</varname></term>
+ <listitem>
+ <para>A free-form description of the netdev.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>Name=</varname></term>
<listitem>
<term><varname>Kind=</varname></term>
<listitem>
<para>The netdev kind. Currently, <literal>bridge</literal>,
- <literal>bond</literal>, <literal>vlan</literal> and
- <literal>macvlan</literal> are supported. This option
- is compulsory.</para>
+ <literal>bond</literal>, <literal>vlan</literal>,
+ <literal>macvlan</literal>, <literal>vxlan</literal>,
+ <literal>ipip</literal>, <literal>gre</literal>,
+ <literal>sit</literal>, <literal>vti</literal>,
+ <literal>veth</literal>, and <literal>dummy</literal>
+ are supported. This option is compulsory.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>MTUBytes=</varname></term>
+ <listitem>
+ <para>The maximum transmission unit in bytes to
+ set for the device. The usual suffixes K, M, G,
+ are supported and are understood to the base of
+ 1024.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>MACAddress=</varname></term>
+ <listitem>
+ <para>The MAC address to use for the device.
+ If none is given, one is generated based on
+ the interface name and the
+ <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+ </para>
</listitem>
</varlistentry>
</variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>[VLAN] Section Options</title>
<para>The <literal>[VLAN]</literal> section only applies for netdevs of kind <literal>vlan</literal>,
and accepts the following key:</para>
</varlistentry>
</variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>[MACVLAN] Section Options</title>
+
<para>The <literal>[MACVLAN]</literal> section only applies for netdevs of kind
<literal>macvlan</literal>, and accepts the following key:</para>
</variablelist>
</refsect1>
+ <refsect1>
+ <title>[VXLAN] Section Options</title>
+ <para>The <literal>[VXLAN]</literal> section only applies for netdevs of kind
+ <literal>vxlan</literal>, and accepts the following key:</para>
+
+ <variablelist class='network-directives'>
+ <varlistentry>
+ <term><varname>Id=</varname></term>
+ <listitem>
+ <para>The VXLAN ID to use.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>Group=</varname></term>
+ <listitem>
+ <para>An assigned multicast group IP address.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>TOS=</varname></term>
+ <listitem>
+ <para>The Type Of Service byte value for a vxlan interface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>TTL=</varname></term>
+ <listitem>
+ <para>A fixed Time To Live N on Virtual eXtensible Local Area Network packets.
+ N is a number in the range 1-255. 0 is a special value meaning that packets
+ inherit the TTL value.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>MacLearning=</varname></term>
+ <listitem>
+ <para>A boolean. When true, enables dynamic MAC learning
+ to discover remote MAC addresses.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>[Tunnel] Section Options</title>
+
+ <para>The <literal>[Tunnel]</literal> section only applies for netdevs of kind
+ <literal>ipip</literal>, <literal>sit</literal>, <literal>gre</literal> and
+ <literal>vti</literal> and accepts the following keys:</para>
+
+ <variablelist class='network-directives'>
+ <varlistentry>
+ <term><varname>Local=</varname></term>
+ <listitem>
+ <para>A static local address for tunneled packets.
+ It must be an address on another interface of this host.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>Remote=</varname></term>
+ <listitem>
+ <para>The remote endpoint of the tunnel.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>TOS=</varname></term>
+ <listitem>
+ <para>The Type Of Service byte value for a tunnel interface.
+ For details about the TOS see the
+ <ulink url="http://tools.ietf.org/html/rfc1349">
+ Type of Service in the Internet Protocol Suite
+ </ulink> document.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>TTL=</varname></term>
+ <listitem>
+ <para>A fixed Time To Live N on tunneled packets.
+ N is a number in the range 1-255. 0 is a special value meaning that packets
+ inherit the TTL value. The default value for IPv4 tunnels is: inherit.
+ The default value for IPv6 tunnels is: 64.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>DiscoverPathMTU=</varname></term>
+ <listitem>
+ <para>A boolean. When true, enables Path MTU Discovery on the tunnel.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>[Peer] Section Options</title>
+
+ <para>The <literal>[Peer]</literal> section only applies for netdevs of kind <literal>veth</literal>
+ and accepts the following key:</para>
+
+ <variablelist class='network-directives'>
+ <varlistentry>
+ <term><varname>Name=</varname></term>
+ <listitem>
+ <para>The interface name used when creating the netdev.
+ This option is compulsory.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>MACAddress=</varname></term>
+ <listitem>
+ <para>The peer MACAddress, if not set it is generated in the same
+ way as the MAC address of the main interface.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>[Tun] Section Options</title>
+
+ <para>The <literal>[Tun]</literal> section only applies for netdevs of kind
+ <literal>tun</literal>, and accepts the following keys:</para>
+
+ <variablelist class='network-directives'>
+ <varlistentry>
+ <term><varname>OneQueue=</varname></term>
+ <listitem><para>Takes a boolean argument. Configures whether
+ all packets are queued at the device (enabled), or a fixed number
+ of packets are queued at the device and the rest at the
+ <literal>qdisc</literal>. Defaults to <literal>no</literal>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>MultiQueue=</varname></term>
+ <listitem><para>Takes a boolean argument. Configures whether to
+ use multiple file descriptors (queues) to parallelize packets
+ sending and receiving. Defaults to <literal>no</literal>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>PacketInfo=</varname></term>
+ <listitem><para>Takes a boolean argument. Configures whether packets
+ should be prepened with four extra bytes (two flag bytes and two
+ protocol bytes). If disabled it indicates that the packets will be
+ pure IP packets. Defaults to <literal>no</literal>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>User=</varname></term>
+ <listitem><para>User to grant access to the <filename>/dev/net/tun</filename>
+ device.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>Group=</varname></term>
+ <listitem><para>Group to grant access to the <filename>/dev/net/tun</filename>
+ device.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </refsect1>
+
+ <refsect1>
+ <title>[Tap] Section Options</title>
+
+ <para>The <literal>[Tap]</literal> section only applies for netdevs of kind
+ <literal>tap</literal>, and accepts the same keys as the
+ <literal>[Tun]</literal> section.</para>
+ </refsect1>
<refsect1>
<title>Example</title>
[VLAN]
Id=1</programlisting>
</example>
+ <example>
+ <title>/etc/systemd/network/ipip.netdev</title>
+ <programlisting>[NetDev]
+Name=ipip-tun
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192.168.223.238
+Remote=192.169.224.239
+TTL=64</programlisting>
+ </example>
+ <example>
+ <title>/etc/systemd/network/tap.netdev</title>
+ <programlisting>[NetDev]
+Name=tap-test
+Kind=tap
- </refsect1>
+[Tap]
+MultiQueue=true
+PacketInfo=true</programlisting> </example>
+
+ <example>
+ <title>/etc/systemd/network/sit.netdev</title>
+ <programlisting>[NetDev]
+Name=sit-tun
+Kind=sit
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</programlisting>
+ </example>
+ <example>
+ <title>/etc/systemd/network/gre.netdev</title>
+ <programlisting>[NetDev]
+Name=gre-tun
+Kind=gre
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</programlisting>
+ </example>
+
+ <example>
+ <title>/etc/systemd/network/vti.netdev</title>
+
+ <programlisting>[NetDev]
+Name=vti-tun
+Kind=vti
+MTUBytes=1480
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239</programlisting>
+ </example>
+
+ <example>
+ <title>/etc/systemd/network/veth.netdev</title>
+ <programlisting>[NetDev]
+Name=veth-test
+Kind=veth
+
+[Peer]
+Name=veth-peer</programlisting>
+ </example>
+
+ <example>
+ <title>/etc/systemd/network/dummy.netdev</title>
+ <programlisting>[NetDev]
+Name=dummy-test
+Kind=dummy
+MACAddress=12:34:56:78:9a:bc</programlisting>
+ </example>
+
+ </refsect1>
<refsect1>
<title>See Also</title>
<para>
'\" t
-.TH "SYSTEMD\&.NETWORK" "5" "" "systemd 214" "systemd.network"
+.TH "SYSTEMD\&.NETWORK" "5" "" "systemd 215" "systemd.network"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
with the same name as a configuration file in
/usr/lib, pointing to
/dev/null, disables the configuration file entirely\&.
+.SH "[MATCH] SECTION OPTIONS"
.PP
The network file contains a
"[Match]"
\fBsystemd.unit\fR(5)
for details\&.
.RE
+.SH "[NETWORK] SECTION OPTIONS"
.PP
The
"[Network]"
.PP
\fIDHCP=\fR
.RS 4
-A boolean\&. When true, enables basic DHCPv4 support\&.
+Enables DHCPv4 and/or DHCPv6 support\&. Accepts
+"both",
+"none",
+"v4"
+or
+"v6"\&.
+.RE
+.PP
+\fIDHCPServer=\fR
+.RS 4
+A boolean\&. Enables a basic DHCPv4 server on the device\&. Mostly useful for handing out leases to container instances\&.
.RE
.PP
\fIIPv4LL=\fR
"/"
character\&. Specify this key more than once to configure several addresses\&. The format of the address must be as described in
\fBinet_pton\fR(3)\&. This is a short\-hand for an [Address] section only containing an Address key (see below)\&. This option may be specified more than once\&.
+.sp
+If the specified address is 0\&.0\&.0\&.0 (for IPv4) or [::] (for IPv6), a new address range of the requested size is automatically allocated from a system\-wide pool of unused ranges\&. The allocated range is checked against all current network interfaces and all known network configuration files to avoid address range conflicts\&. The default system\-wide pool consists of 192\&.168\&.0\&.0/16, 172\&.16\&.0\&.0/12 and 10\&.0\&.0\&.0/8 for IPv4, and fc00::/7 for IPv6\&. This functionality is useful to manage a large number of dynamically created network interfaces with the same network configuration and automatic address range assignment\&.
.RE
.PP
\fIGateway=\fR
The name of a MACVLAN to create on the link\&. This option may be specified more than once\&.
.RE
.PP
+\fIVXLAN=\fR
+.RS 4
+The name of a VXLAN to create on the link\&. This option may be specified more than once\&.
+.RE
+.PP
+\fITunnel=\fR
+.RS 4
+The name of a Tunnel to create on the link\&. This option may be specified more than once\&.
+.RE
+.SH "[ADDRESS] SECTION OPTIONS"
+.PP
An
"[Address]"
section accepts the following keys\&. Specify several
.RS 4
An address label\&.
.RE
+.SH "[ROUTE] SECTION OPTIONS"
.PP
The
"[Route]"
.RS 4
The destination prefix of the route\&. Possibly followed by a slash and the prefixlength\&. If ommitted, a full\-length host route is assumed\&.
.RE
+.SH "[DHCP] SECTION OPTIONS"
.PP
The
-"[DHCPv4]"
+"[DHCP]"
section accepts the following keys:
.PP
\fIUseDNS=\fR
When true, the interface maximum transmission unit from the DHCP server will be used on the current link\&. Defaults to false\&.
.RE
.PP
+\fISendHostname=\fR
+.RS 4
+When true (the default), the machine\*(Aqs hostname will be sent to the DHCP server
+.RE
+.PP
\fIUseHostname=\fR
.RS 4
When true (the default), the hostname received from the DHCP server will be used as the transient hostname\&.
.RE
.PP
+\fIUseRoutes=\fR
+.RS 4
+When true (the default), the static routes will be requested from the DHCP server and added to the routing table with metric of 1024\&.
+.RE
+.PP
\fICriticalConnection=\fR
.RS 4
When true, the connection will never be torn down even if the DHCP lease expires\&. This is contrary to the DHCP specification, but may be the best choice if, say, the root filesystem relies on this connection\&. Defaults to false\&.
.if n \{\
.RE
.\}
+.PP
+\fBExample\ \&5.\ \&/etc/systemd/network/ipip.network\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[Match]
+Name=em1
+
+[Network]
+Tunnel=ipip\-tun
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&6.\ \&/etc/systemd/network/sit.network\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[Match]
+Name=em1
+
+[Network]
+Tunnel=sit\-tun
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&7.\ \&/etc/systemd/network/gre.network\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[Match]
+Name=em1
+
+[Network]
+Tunnel=gre\-tun
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+\fBExample\ \&8.\ \&/etc/systemd/network/vti.network\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+[Match]
+Name=em1
+
+[Network]
+Tunnel=vti\-tun
+.fi
+.if n \{\
+.RE
+.\}
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.network"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.network — Network configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>network</code></em>.network</code></p></div><div class="refsect1"><a name="idm214190992336"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Network setup is performed by
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.network"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.network — Network configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>network</code></em>.network</code></p></div><div class="refsect1"><a name="idm214167761904"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Network setup is performed by
<a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a>.
</p><p>Network files must have the extension <code class="filename">.network</code>;
other extensions are ignored. Networks are applied to links whenever the links
system-supplied configuration file with a local file if needed; a symlink in
<code class="filename">/etc</code> with the same name as a configuration file in
<code class="filename">/usr/lib</code>, pointing to <code class="filename">/dev/null</code>,
- disables the configuration file entirely.</p><p>The network file contains a "<code class="literal">[Match]</code>" section,
+ disables the configuration file entirely.</p></div><div class="refsect1"><a name="idm214167750736"></a><h2 id="[Match] Section Options">[Match] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BMatch%5D%20Section%20Options">¶</a></h2><p>The network file contains a "<code class="literal">[Match]</code>" section,
which determines if a given network file may be applied to a given device;
and a "<code class="literal">[Network]</code>" section specifying how the device should
be configured. The first (in lexical order) of the network files that
architecture. See "<code class="literal">ConditionArchitecture=</code>" in
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
for details.
- </p></dd></dl></div><p>The "<code class="literal">[Network]</code>" section accepts the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p>A description of the device. This is only used for
- presentation purposes.</p></dd><dt id="DHCP="><span class="term"><code class="varname">DHCP=</code></span><a class="headerlink" title="Permalink to this term" href="#DHCP=">¶</a></dt><dd><p>A boolean. When true, enables basic DHCPv4 support.</p></dd><dt id="IPv4LL="><span class="term"><code class="varname">IPv4LL=</code></span><a class="headerlink" title="Permalink to this term" href="#IPv4LL=">¶</a></dt><dd><p>A boolean. When true, enables IPv4 link-local support.
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214171662832"></a><h2 id="[Network] Section Options">[Network] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BNetwork%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Network]</code>" section accepts the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p>A description of the device. This is only used for
+ presentation purposes.</p></dd><dt id="DHCP="><span class="term"><code class="varname">DHCP=</code></span><a class="headerlink" title="Permalink to this term" href="#DHCP=">¶</a></dt><dd><p>Enables DHCPv4 and/or DHCPv6 support. Accepts
+ "<code class="literal">both</code>", "<code class="literal">none</code>",
+ "<code class="literal">v4</code>" or "<code class="literal">v6</code>".</p></dd><dt id="DHCPServer="><span class="term"><code class="varname">DHCPServer=</code></span><a class="headerlink" title="Permalink to this term" href="#DHCPServer=">¶</a></dt><dd><p>A boolean. Enables a basic DHCPv4 server on the
+ device. Mostly useful for handing out leases to container
+ instances.</p></dd><dt id="IPv4LL="><span class="term"><code class="varname">IPv4LL=</code></span><a class="headerlink" title="Permalink to this term" href="#IPv4LL=">¶</a></dt><dd><p>A boolean. When true, enables IPv4 link-local support.
If "<code class="literal">DHCP=</code>" is also true, acquiring DHCP address
will deprecate previously acquired IPv4 link-local address or
stop acquiring process if one has not been acquired before.
This is a short-hand for an [Address] section only containing
an Address key (see below). This option may be specified
more than once.
- </p></dd><dt id="Gateway="><span class="term"><code class="varname">Gateway=</code></span><a class="headerlink" title="Permalink to this term" href="#Gateway=">¶</a></dt><dd><p>The gateway address, which must be in the format described in
+ </p><p>If the specified
+ address is 0.0.0.0
+ (for IPv4) or [::]
+ (for IPv6), a new
+ address range of the
+ requested size is
+ automatically
+ allocated from a
+ system-wide pool of
+ unused ranges. The
+ allocated range is
+ checked against all
+ current network
+ interfaces and all
+ known network
+ configuration files to
+ avoid address range
+ conflicts. The default
+ system-wide pool
+ consists of
+ 192.168.0.0/16,
+ 172.16.0.0/12 and
+ 10.0.0.0/8 for IPv4,
+ and fc00::/7 for
+ IPv6. This
+ functionality is
+ useful to manage a
+ large number of
+ dynamically created
+ network interfaces
+ with the same network
+ configuration and
+ automatic address
+ range
+ assignment.</p></dd><dt id="Gateway="><span class="term"><code class="varname">Gateway=</code></span><a class="headerlink" title="Permalink to this term" href="#Gateway=">¶</a></dt><dd><p>The gateway address, which must be in the format described in
<a href="inet_pton.html"><span class="citerefentry"><span class="refentrytitle">inet_pton</span>(3)</span></a>.
This is a short-hand for a [Route] section only containing a Gateway
key. This option may be specified more than once.</p></dd><dt id="DNS="><span class="term"><code class="varname">DNS=</code></span><a class="headerlink" title="Permalink to this term" href="#DNS=">¶</a></dt><dd><p>A DNS server address, which must be in the format described in
<a href="inet_pton.html"><span class="citerefentry"><span class="refentrytitle">inet_pton</span>(3)</span></a>.
This option may be specified more than once.</p></dd><dt id="Bridge="><span class="term"><code class="varname">Bridge=</code></span><a class="headerlink" title="Permalink to this term" href="#Bridge=">¶</a></dt><dd><p>The name of the bridge to add the link to.</p></dd><dt id="Bond="><span class="term"><code class="varname">Bond=</code></span><a class="headerlink" title="Permalink to this term" href="#Bond=">¶</a></dt><dd><p>The name of the bond to add the link to.</p></dd><dt id="VLAN="><span class="term"><code class="varname">VLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#VLAN=">¶</a></dt><dd><p>The name of a VLAN to create on the link. This option
may be specified more than once.</p></dd><dt id="MACVLAN="><span class="term"><code class="varname">MACVLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#MACVLAN=">¶</a></dt><dd><p>The name of a MACVLAN to create on the link. This option
- may be specified more than once.</p></dd></dl></div><p>An "<code class="literal">[Address]</code>" section accepts the following keys.
+ may be specified more than once.</p></dd><dt id="VXLAN="><span class="term"><code class="varname">VXLAN=</code></span><a class="headerlink" title="Permalink to this term" href="#VXLAN=">¶</a></dt><dd><p>The name of a VXLAN to create on the link. This option
+ may be specified more than once.</p></dd><dt id="Tunnel="><span class="term"><code class="varname">Tunnel=</code></span><a class="headerlink" title="Permalink to this term" href="#Tunnel=">¶</a></dt><dd><p>The name of a Tunnel to create on the link. This option
+ may be specified more than once.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166659648"></a><h2 id="[Address] Section Options">[Address] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BAddress%5D%20Section%20Options">¶</a></h2><p>An "<code class="literal">[Address]</code>" section accepts the following keys.
Specify several "<code class="literal">[Address]</code>" sections to configure several
addresses.</p><div class="variablelist"><dl class="variablelist"><dt id="Address="><span class="term"><code class="varname">Address=</code></span><a class="headerlink" title="Permalink to this term" href="#Address=">¶</a></dt><dd><p>As in the "<code class="literal">[Network]</code>" section. This key is mandatory.</p></dd><dt id="Broadcast="><span class="term"><code class="varname">Broadcast=</code></span><a class="headerlink" title="Permalink to this term" href="#Broadcast=">¶</a></dt><dd><p>The broadcast address, which must be in the format described in
<a href="inet_pton.html"><span class="citerefentry"><span class="refentrytitle">inet_pton</span>(3)</span></a>.
This key only applies to IPv4 addresses. If it is not given, it is
- derived from the "<code class="literal">Address</code>" key.</p></dd><dt id="Label="><span class="term"><code class="varname">Label=</code></span><a class="headerlink" title="Permalink to this term" href="#Label=">¶</a></dt><dd><p>An address label.</p></dd></dl></div><p>The "<code class="literal">[Route]</code>" section accepts the following keys. Specify
+ derived from the "<code class="literal">Address</code>" key.</p></dd><dt id="Label="><span class="term"><code class="varname">Label=</code></span><a class="headerlink" title="Permalink to this term" href="#Label=">¶</a></dt><dd><p>An address label.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166649296"></a><h2 id="[Route] Section Options">[Route] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BRoute%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[Route]</code>" section accepts the following keys. Specify
several "<code class="literal">[Route]</code>" sections to configure several routes.</p><div class="variablelist"><dl class="variablelist"><dt id="Gateway="><span class="term"><code class="varname">Gateway=</code></span><a class="headerlink" title="Permalink to this term" href="#Gateway=">¶</a></dt><dd><p>As in the "<code class="literal">[Network]</code>" section. This key is mandatory.</p></dd><dt id="Destination="><span class="term"><code class="varname">Destination=</code></span><a class="headerlink" title="Permalink to this term" href="#Destination=">¶</a></dt><dd><p>The destination prefix of the route. Possibly followed by a slash and the
- prefixlength. If ommitted, a full-length host route is assumed.</p></dd></dl></div><p>The "<code class="literal">[DHCPv4]</code>" section accepts the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="UseDNS="><span class="term"><code class="varname">UseDNS=</code></span><a class="headerlink" title="Permalink to this term" href="#UseDNS=">¶</a></dt><dd><p>When true (the default), the DNS servers received from the DHCP server will
+ prefixlength. If ommitted, a full-length host route is assumed.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166642016"></a><h2 id="[DHCP] Section Options">[DHCP] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BDHCP%5D%20Section%20Options">¶</a></h2><p>The "<code class="literal">[DHCP]</code>" section accepts the following keys:</p><div class="variablelist"><dl class="variablelist"><dt id="UseDNS="><span class="term"><code class="varname">UseDNS=</code></span><a class="headerlink" title="Permalink to this term" href="#UseDNS=">¶</a></dt><dd><p>When true (the default), the DNS servers received from the DHCP server will
be used and take precedence over any statically configured ones.</p></dd><dt id="UseMTU="><span class="term"><code class="varname">UseMTU=</code></span><a class="headerlink" title="Permalink to this term" href="#UseMTU=">¶</a></dt><dd><p>When true, the interface maximum transmission unit from the DHCP server will
- be used on the current link. Defaults to false.</p></dd><dt id="UseHostname="><span class="term"><code class="varname">UseHostname=</code></span><a class="headerlink" title="Permalink to this term" href="#UseHostname=">¶</a></dt><dd><p>When true (the default), the hostname received from the DHCP server
- will be used as the transient hostname.</p></dd><dt id="CriticalConnection="><span class="term"><code class="varname">CriticalConnection=</code></span><a class="headerlink" title="Permalink to this term" href="#CriticalConnection=">¶</a></dt><dd><p>When true, the connection will never be torn down even if the DHCP lease
+ be used on the current link. Defaults to false.</p></dd><dt id="SendHostname="><span class="term"><code class="varname">SendHostname=</code></span><a class="headerlink" title="Permalink to this term" href="#SendHostname=">¶</a></dt><dd><p>When true (the default), the machine's hostname will be sent to the DHCP
+ server</p></dd><dt id="UseHostname="><span class="term"><code class="varname">UseHostname=</code></span><a class="headerlink" title="Permalink to this term" href="#UseHostname=">¶</a></dt><dd><p>When true (the default), the hostname received from the DHCP server
+ will be used as the transient hostname.</p></dd><dt id="UseRoutes="><span class="term"><code class="varname">UseRoutes=</code></span><a class="headerlink" title="Permalink to this term" href="#UseRoutes=">¶</a></dt><dd><p>When true (the default), the static routes will be requested from the DHCP server
+ and added to the routing table with metric of 1024.</p></dd><dt id="CriticalConnection="><span class="term"><code class="varname">CriticalConnection=</code></span><a class="headerlink" title="Permalink to this term" href="#CriticalConnection=">¶</a></dt><dd><p>When true, the connection will never be torn down even if the DHCP lease
expires. This is contrary to the DHCP specification, but may be the best choice
- if, say, the root filesystem relies on this connection. Defaults to false.</p></dd></dl></div></div><div class="refsect1"><a name="idm214189480736"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214189480096"></a><p class="title"><b>Example 1. /etc/systemd/network/50-static.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+ if, say, the root filesystem relies on this connection. Defaults to false.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166628384"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214166627744"></a><p class="title"><b>Example 1. /etc/systemd/network/50-static.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
Name=enp2s0
[Network]
Address=192.168.0.15/24
-Gateway=192.168.0.1</pre></div></div><br class="example-break"><div class="example"><a name="idm214189478608"></a><p class="title"><b>Example 2. /etc/systemd/network/80-dhcp.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+Gateway=192.168.0.1</pre></div></div><br class="example-break"><div class="example"><a name="idm214166626256"></a><p class="title"><b>Example 2. /etc/systemd/network/80-dhcp.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
Name=en*
[Network]
-DHCP=yes</pre></div></div><br class="example-break"><div class="example"><a name="idm214189477216"></a><p class="title"><b>Example 3. /etc/systemd/network/bridge-static.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+DHCP=yes</pre></div></div><br class="example-break"><div class="example"><a name="idm214166624864"></a><p class="title"><b>Example 3. /etc/systemd/network/bridge-static.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
Name=bridge0
[Network]
Address=192.168.0.15/24
Gateway=192.168.0.1
-DNS=192.168.0.1</pre></div></div><br class="example-break"><div class="example"><a name="idm214189475712"></a><p class="title"><b>Example 4. /etc/systemd/network/bridge-slave-interface.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+DNS=192.168.0.1</pre></div></div><br class="example-break"><div class="example"><a name="idm214166623360"></a><p class="title"><b>Example 4. /etc/systemd/network/bridge-slave-interface.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
Name=enp2s0
[Network]
-Bridge=bridge0</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214189474192"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+Bridge=bridge0</pre></div></div><br class="example-break"><div class="example"><a name="idm214166621968"></a><p class="title"><b>Example 5. /etc/systemd/network/ipip.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+Name=em1
+
+[Network]
+Tunnel=ipip-tun</pre></div></div><br class="example-break"><div class="example"><a name="idm214166620576"></a><p class="title"><b>Example 6. /etc/systemd/network/sit.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+Name=em1
+
+[Network]
+Tunnel=sit-tun</pre></div></div><br class="example-break"><div class="example"><a name="idm214166619184"></a><p class="title"><b>Example 7. /etc/systemd/network/gre.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+Name=em1
+
+[Network]
+Tunnel=gre-tun</pre></div></div><br class="example-break"><div class="example"><a name="idm214166617792"></a><p class="title"><b>Example 8. /etc/systemd/network/vti.network</b></p><div class="example-contents"><pre class="programlisting">[Match]
+Name=em1
+
+[Network]
+Tunnel=vti-tun</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214166616272"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-networkd.html"><span class="citerefentry"><span class="refentrytitle">systemd-networkd</span>(8)</span></a>,
<a href="systemd.netdev.html"><span class="citerefentry"><span class="refentrytitle">systemd.netdev</span>(5)</span></a>
<filename>/usr/lib</filename>, pointing to <filename>/dev/null</filename>,
disables the configuration file entirely.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>[Match] Section Options</title>
+
<para>The network file contains a <literal>[Match]</literal> section,
which determines if a given network file may be applied to a given device;
and a <literal>[Network]</literal> section specifying how the device should
</varlistentry>
</variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>[Network] Section Options</title>
+
<para>The <literal>[Network]</literal> section accepts the following keys:</para>
<variablelist class='network-directives'>
<varlistentry>
<term><varname>DHCP=</varname></term>
<listitem>
- <para>A boolean. When true, enables basic DHCPv4 support.</para>
+ <para>Enables DHCPv4 and/or DHCPv6 support. Accepts
+ <literal>both</literal>, <literal>none</literal>,
+ <literal>v4</literal> or <literal>v6</literal>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>DHCPServer=</varname></term>
+ <listitem>
+ <para>A boolean. Enables a basic DHCPv4 server on the
+ device. Mostly useful for handing out leases to container
+ instances.</para>
</listitem>
</varlistentry>
<varlistentry>
an Address key (see below). This option may be specified
more than once.
</para>
+
+ <para>If the specified
+ address is 0.0.0.0
+ (for IPv4) or [::]
+ (for IPv6), a new
+ address range of the
+ requested size is
+ automatically
+ allocated from a
+ system-wide pool of
+ unused ranges. The
+ allocated range is
+ checked against all
+ current network
+ interfaces and all
+ known network
+ configuration files to
+ avoid address range
+ conflicts. The default
+ system-wide pool
+ consists of
+ 192.168.0.0/16,
+ 172.16.0.0/12 and
+ 10.0.0.0/8 for IPv4,
+ and fc00::/7 for
+ IPv6. This
+ functionality is
+ useful to manage a
+ large number of
+ dynamically created
+ network interfaces
+ with the same network
+ configuration and
+ automatic address
+ range
+ assignment.</para>
+
</listitem>
</varlistentry>
<varlistentry>
This option may be specified more than once.</para>
</listitem>
</varlistentry>
+<!-- TODO: document NTP= option when it is actually used somewhere -->
<varlistentry>
<term><varname>Bridge=</varname></term>
<listitem>
may be specified more than once.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>VXLAN=</varname></term>
+ <listitem>
+ <para>The name of a VXLAN to create on the link. This option
+ may be specified more than once.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>Tunnel=</varname></term>
+ <listitem>
+ <para>The name of a Tunnel to create on the link. This option
+ may be specified more than once.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>[Address] Section Options</title>
+
<para>An <literal>[Address]</literal> section accepts the following keys.
Specify several <literal>[Address]</literal> sections to configure several
addresses.</para>
</listitem>
</varlistentry>
</variablelist>
+ </refsect1>
+ <refsect1>
+ <title>[Route] Section Options</title>
<para>The <literal>[Route]</literal> section accepts the following keys. Specify
several <literal>[Route]</literal> sections to configure several routes.</para>
</listitem>
</varlistentry>
</variablelist>
+ </refsect1>
- <para>The <literal>[DHCPv4]</literal> section accepts the following keys:</para>
+ <refsect1>
+ <title>[DHCP] Section Options</title>
+ <para>The <literal>[DHCP]</literal> section accepts the following keys:</para>
<variablelist class='network-directives'>
<varlistentry>
be used on the current link. Defaults to false.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>SendHostname=</varname></term>
+ <listitem>
+ <para>When true (the default), the machine's hostname will be sent to the DHCP
+ server</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>UseHostname=</varname></term>
<listitem>
will be used as the transient hostname.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>UseRoutes=</varname></term>
+ <listitem>
+ <para>When true (the default), the static routes will be requested from the DHCP server
+ and added to the routing table with metric of 1024.</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>CriticalConnection=</varname></term>
<listitem>
[Network]
Bridge=bridge0</programlisting>
</example>
+ <example>
+ <title>/etc/systemd/network/ipip.network</title>
+
+ <programlisting>[Match]
+Name=em1
+
+[Network]
+Tunnel=ipip-tun</programlisting>
+ </example>
+
+ <example>
+ <title>/etc/systemd/network/sit.network</title>
+
+ <programlisting>[Match]
+Name=em1
+
+[Network]
+Tunnel=sit-tun</programlisting>
+ </example>
+
+ <example>
+ <title>/etc/systemd/network/gre.network</title>
+
+ <programlisting>[Match]
+Name=em1
+
+[Network]
+Tunnel=gre-tun</programlisting>
+ </example>
+
+ <example>
+ <title>/etc/systemd/network/vti.network</title>
+
+ <programlisting>[Match]
+Name=em1
+
+[Network]
+Tunnel=vti-tun</programlisting>
+ </example>
</refsect1>
<refsect1>
'\" t
-.TH "SYSTEMD\&.PATH" "5" "" "systemd 214" "systemd.path"
+.TH "SYSTEMD\&.PATH" "5" "" "systemd 215" "systemd.path"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.path"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.path — Path unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>path</code></em>.path</code></p></div><div class="refsect1"><a name="idm214189184768"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.path"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.path — Path unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>path</code></em>.path</code></p></div><div class="refsect1"><a name="idm214171559104"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.path</code>" encodes information about
a path monitored by systemd, for
path-based activation.</p><p>This man page lists the configuration options
that path units are terminated cleanly prior to system
shutdown. Only path units involved with early boot or
late system shutdown should disable this option.
- </p></div><div class="refsect1"><a name="idm214189174128"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Path files must include a [Path] section,
+ </p></div><div class="refsect1"><a name="idm214171147168"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Path files must include a [Path] section,
which carries information about the path(s) it
monitors. The options specific to the [Path] section
of path units are the following:</p><div class="variablelist"><dl class="variablelist"><dt id="PathExists="><span class="term"><code class="varname">PathExists=</code>, </span><span class="term"><code class="varname">PathExistsGlob=</code>, </span><span class="term"><code class="varname">PathChanged=</code>, </span><span class="term"><code class="varname">PathModified=</code>, </span><span class="term"><code class="varname">DirectoryNotEmpty=</code></span><a class="headerlink" title="Permalink to this term" href="#PathExists=">¶</a></dt><dd><p>Defines paths to
create the directories in
question. Takes an access mode in
octal notation. Defaults to
- <code class="option">0755</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214193125264"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="option">0755</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214171452944"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.PRESET" "5" "" "systemd 214" "systemd.preset"
+.TH "SYSTEMD\&.PRESET" "5" "" "systemd 215" "systemd.preset"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.preset"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.preset — Service enablement presets</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/system-preset/*.preset</code></p><p><code class="filename">/run/systemd/system-preset/*.preset</code></p><p><code class="filename">/usr/lib/systemd/system-preset/*.preset</code></p><p><code class="filename">/etc/systemd/user-preset/*.preset</code></p><p><code class="filename">/run/systemd/user-preset/*.preset</code></p><p><code class="filename">/usr/lib/systemd/user-preset/*.preset</code></p></div><div class="refsect1"><a name="idm214186940592"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Preset files may be used to encode policy which
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.preset"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.preset — Service enablement presets</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/systemd/system-preset/*.preset</code></p><p><code class="filename">/run/systemd/system-preset/*.preset</code></p><p><code class="filename">/usr/lib/systemd/system-preset/*.preset</code></p><p><code class="filename">/etc/systemd/user-preset/*.preset</code></p><p><code class="filename">/run/systemd/user-preset/*.preset</code></p><p><code class="filename">/usr/lib/systemd/user-preset/*.preset</code></p></div><div class="refsect1"><a name="idm214173617984"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Preset files may be used to encode policy which
units shall be enabled by default and which ones
shall be disabled. They are read by <span class="command"><strong>systemctl
preset</strong></span> (for more information see
units shall rather be disabled, it is necessary to ship
a preset file with a single, catchall
"<code class="filename">disable *</code>" line. (See example 1,
- below.)</p></div><div class="refsect1"><a name="idm214186932608"></a><h2 id="Preset File Format">Preset File Format<a class="headerlink" title="Permalink to this headline" href="#Preset%20File%20Format">¶</a></h2><p>The preset files contain a list of
+ below.)</p></div><div class="refsect1"><a name="idm214172493824"></a><h2 id="Preset File Format">Preset File Format<a class="headerlink" title="Permalink to this headline" href="#Preset%20File%20Format">¶</a></h2><p>The preset files contain a list of
directives consisting of either the word
"<code class="literal">enable</code>" or
"<code class="literal">disable</code>" followed by a space and a
file supplied by the vendor, the recommended way is to
place a symlink to <code class="filename">/dev/null</code> in
<code class="filename">/etc/systemd/system-preset/</code>
- bearing the same filename.</p></div><div class="refsect1"><a name="idm214190816080"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214190815408"></a><p class="title"><b>Example 1. Default off example <code class="filename">/usr/lib/systemd/system-preset/99-default.preset</code>:</b></p><div class="example-contents"><pre class="programlisting">disable *</pre></div></div><br class="example-break"><p>This disables all units. Due to the filename
+ bearing the same filename.</p></div><div class="refsect1"><a name="idm214172649696"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214173353776"></a><p class="title"><b>Example 1. Default off example <code class="filename">/usr/lib/systemd/system-preset/99-default.preset</code>:</b></p><div class="example-contents"><pre class="programlisting">disable *</pre></div></div><br class="example-break"><p>This disables all units. Due to the filename
prefix "<code class="literal">99-</code>", it will be read last and
hence can easily be overridden by spin or
- administrator preset policy or suchlike.</p><div class="example"><a name="idm214190812016"></a><p class="title"><b>Example 2. A GNOME spin example <code class="filename">/usr/lib/systemd/system-preset/50-gnome.preset</code>:</b></p><div class="example-contents"><pre class="programlisting">enable gdm.service
+ administrator preset policy or suchlike.</p><div class="example"><a name="idm214172611440"></a><p class="title"><b>Example 2. A GNOME spin example <code class="filename">/usr/lib/systemd/system-preset/50-gnome.preset</code>:</b></p><div class="example-contents"><pre class="programlisting">enable gdm.service
enable colord.service
enable accounts-daemon.service
enable avahi-daemon.*</pre></div></div><br class="example-break"><p>This enables the three mentioned units, plus all
enabled as they are installed. It leaves all other
units untouched, and subject to other (later) preset
files, for example like the one from the first example
- above.</p><div class="example"><a name="idm214190800992"></a><p class="title"><b>Example 3. Administrator policy <code class="filename">/etc/systemd/system-preset/00-lennart.preset</code>:</b></p><div class="example-contents"><pre class="programlisting">enable httpd.service
+ above.</p><div class="example"><a name="idm214172886672"></a><p class="title"><b>Example 3. Administrator policy <code class="filename">/etc/systemd/system-preset/00-lennart.preset</code>:</b></p><div class="example-contents"><pre class="programlisting">enable httpd.service
enable sshd.service
enable postfix.service
disable *</pre></div></div><br class="example-break"><p>This enables three specific services and
to specifically select the units to enable, and
disable all others. Due to the filename prefix
"<code class="literal">00-</code>" it will be read early and hence
- overrides all other preset policy files.</p></div><div class="refsect1"><a name="idm214190797280"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ overrides all other preset policy files.</p></div><div class="refsect1"><a name="idm214173400832"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>
'\" t
-.TH "SYSTEMD\&.RESOURCE\-CONTROL" "5" "" "systemd 214" "systemd.resource-control"
+.TH "SYSTEMD\&.RESOURCE\-CONTROL" "5" "" "systemd 215" "systemd.resource-control"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.resource-control"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.resource-control — Resource control unit settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p>
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.resource-control"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.resource-control — Resource control unit settings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p>
<code class="filename"><em class="replaceable"><code>slice</code></em>.slice</code>,
<code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code>,
<code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
<code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code>,
<code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code>,
<code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code>
- </p></div><div class="refsect1"><a name="idm214188347712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Unit configuration files for services, slices, scopes,
+ </p></div><div class="refsect1"><a name="idm214193410544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Unit configuration files for services, slices, scopes,
sockets, mount points, and swap devices share a subset of
configuration options for resource control of spawned
processes. Internally, this relies on the Control Groups
[Slice], [Scope], [Service], [Socket], [Mount], or [Swap]
sections, depending on the unit type.</p><p>See the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/" target="_top">New
Control Group Interfaces</a> for an introduction on how to make
- use of resource control APIs from programs.</p></div><div class="refsect1"><a name="idm214188338544"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Units of the types listed above can have settings
+ use of resource control APIs from programs.</p></div><div class="refsect1"><a name="idm214190908640"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Units of the types listed above can have settings
for resource control configuration:</p><div class="variablelist"><dl class="variablelist"><dt id="CPUAccounting="><span class="term"><code class="varname">CPUAccounting=</code></span><a class="headerlink" title="Permalink to this term" href="#CPUAccounting=">¶</a></dt><dd><p>Turn on CPU usage accounting for this unit. Takes a
boolean argument. Note that turning on CPU accounting for
one unit might also implicitly turn it on for all units
settings applied.</p><p>For units of type slice, the only accepted value for
this setting is the parent slice. Since the name of a slice
unit implies the parent slice, it is hence redundant to ever
- set this parameter directly for slice units.</p></dd></dl></div></div><div class="refsect1"><a name="idm214187240864"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ set this parameter directly for slice units.</p></dd></dl></div></div><div class="refsect1"><a name="idm214191662576"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
<a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.SCOPE" "5" "" "systemd 214" "systemd.scope"
+.TH "SYSTEMD\&.SCOPE" "5" "" "systemd 215" "systemd.scope"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.scope"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.scope — Scope unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></p></div><div class="refsect1"><a name="idm214199277184"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Scope units are not configured via unit configuration files,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.scope"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.scope — Scope unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></p></div><div class="refsect1"><a name="idm214193636544"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Scope units are not configured via unit configuration files,
but are only created programmatically using the bus interfaces of
systemd. They are named similar to filenames. A unit whose name
ends in "<code class="literal">.scope</code>" refers to a scope unit. Scopes
that scope units are removed prior to system
shutdown. Only scope units involved with early boot or
late system shutdown should disable this option.
- </p></div><div class="refsect1"><a name="idm214199269680"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214192881920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-run.html"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.SERVICE" "5" "" "systemd 214" "systemd.service"
+.TH "SYSTEMD\&.SERVICE" "5" "" "systemd 215" "systemd.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
T}
.TE
.sp 1
-In addition to the above settings, the service will not be restarted if the exit code or signal is specified in
+As exceptions to the setting above the service will not be restarted if the exit code or signal is specified in
\fIRestartPreventExitStatus=\fR
+(see below)\&. Also, the services will always be restarted if the exit code or signal is specified in
+\fIRestartForceExitStatus=\fR
(see below)\&.
.sp
Setting this to
\fBon\-failure\fR
-is the recommended choice for long\-running services, in order to increase reliability by attempting automatic recovery from errors\&. For services that shall be able to terminate on their own choice (and avoiding immediate restart)
+is the recommended choice for long\-running services, in order to increase reliability by attempting automatic recovery from errors\&. For services that shall be able to terminate on their own choice (and avoid immediate restarting),
\fBon\-abnormal\fR
is an alternative choice\&.
.RE
.RS 4
.\}
.nf
-SuccessExitStatus=1 2 8 \fBSIGKILL\fR
+SuccessExitStatus=1 2 8 SIGKILL
.fi
.if n \{\
.RE
\fIRestartPreventExitStatus=\fR
.RS 4
Takes a list of exit status definitions that when returned by the main service process will prevent automatic service restarts, regardless of the restart setting configured with
-\fIRestart=\fR\&. Exit status definitions can either be numeric exit codes or termination signal names, and are separated by spaces\&. Defaults to the empty list, so that, by default, no exit status is excluded from the configured restart logic\&. Example:
-"RestartPreventExitStatus=1 6 SIGABRT", ensures that exit codes 1 and 6 and the termination signal
+\fIRestart=\fR\&. Exit status definitions can either be numeric exit codes or termination signal names, and are separated by spaces\&. Defaults to the empty list, so that, by default, no exit status is excluded from the configured restart logic\&. For example:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+RestartPreventExitStatus=1 6 SIGABRT
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+ensures that exit codes 1 and 6 and the termination signal
\fBSIGABRT\fR
will not result in automatic service restarting\&. This option may appear more than once, in which case the list of restart\-preventing statuses is merged\&. If the empty string is assigned to this option, the list is reset and all prior assignments of this option will have no effect\&.
.RE
.PP
+\fIRestartForceExitStatus=\fR
+.RS 4
+Takes a list of exit status definitions that when returned by the main service process will force automatic service restarts, regardless of the restart setting configured with
+\fIRestart=\fR\&. The argument format is similar to
+\fIRestartPreventExitStatus=\fR\&.
+.RE
+.PP
\fIPermissionsStartOnly=\fR
.RS 4
Takes a boolean argument\&. If true, the permission\-related execution options, as configured with
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.service — Service unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code></p></div><div class="refsect1"><a name="idm214184384128"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.service"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.service — Service unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code></p></div><div class="refsect1"><a name="idm214197490064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
<code class="filename">.service</code> encodes information
about a process controlled and supervised by
systemd.</p><p>This man page lists the configuration options
comprehensive but not 100%. For details about the
incompatibilities, see the <a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities" target="_top">Incompatibilities
with SysV</a> document.
- </p></div><div class="refsect1"><a name="idm214188267056"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Service files must include a
+ </p></div><div class="refsect1"><a name="idm214201426880"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Service files must include a
"<code class="literal">[Service]</code>" section, which carries
information about the service and the process it
supervises. A number of options that may be used in
will be restarted regardless of
whether it exited cleanly or not, got
terminated abnormally by a signal, or
- hit a timeout.</p><div class="table"><a name="idm214183204432"></a><p class="title"><b>Table 1. Exit causes and the effect of the <code class="varname">Restart=</code> settings on them</b></p><div class="table-contents"><table summary="Exit causes and the effect of the Restart= settings on them" border="1"><colgroup><col class="path"><col class="expl"></colgroup><thead><tr><th>Restart settings/Exit causes</th><th><code class="option">no</code></th><th><code class="option">always</code></th><th><code class="option">on-success</code></th><th><code class="option">on-failure</code></th><th><code class="option">on-abnormal</code></th><th><code class="option">on-abort</code></th><th><code class="option">on-watchdog</code></th></tr></thead><tbody><tr><td>Clean exit code or signal</td><td> </td><td>X</td><td>X</td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>Unclean exit code</td><td> </td><td>X</td><td> </td><td>X</td><td> </td><td> </td><td> </td></tr><tr><td>Unclean signal</td><td> </td><td>X</td><td> </td><td>X</td><td>X</td><td>X</td><td> </td></tr><tr><td>Timeout</td><td> </td><td>X</td><td> </td><td>X</td><td>X</td><td> </td><td> </td></tr><tr><td>Watchdog</td><td> </td><td>X</td><td> </td><td>X</td><td>X</td><td> </td><td>X</td></tr></tbody></table></div></div><br class="table-break"><p>In addition to the above settings,
- the service will not be restarted if the
- exit code or signal is specified in
+ hit a timeout.</p><div class="table"><a name="idm214196309824"></a><p class="title"><b>Table 1. Exit causes and the effect of the <code class="varname">Restart=</code> settings on them</b></p><div class="table-contents"><table summary="Exit causes and the effect of the Restart= settings on them" border="1"><colgroup><col class="path"><col class="expl"></colgroup><thead><tr><th>Restart settings/Exit causes</th><th><code class="option">no</code></th><th><code class="option">always</code></th><th><code class="option">on-success</code></th><th><code class="option">on-failure</code></th><th><code class="option">on-abnormal</code></th><th><code class="option">on-abort</code></th><th><code class="option">on-watchdog</code></th></tr></thead><tbody><tr><td>Clean exit code or signal</td><td> </td><td>X</td><td>X</td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>Unclean exit code</td><td> </td><td>X</td><td> </td><td>X</td><td> </td><td> </td><td> </td></tr><tr><td>Unclean signal</td><td> </td><td>X</td><td> </td><td>X</td><td>X</td><td>X</td><td> </td></tr><tr><td>Timeout</td><td> </td><td>X</td><td> </td><td>X</td><td>X</td><td> </td><td> </td></tr><tr><td>Watchdog</td><td> </td><td>X</td><td> </td><td>X</td><td>X</td><td> </td><td>X</td></tr></tbody></table></div></div><br class="table-break"><p>As exceptions to the setting
+ above the service will not be
+ restarted if the exit code or signal
+ is specified in
<code class="varname">RestartPreventExitStatus=</code>
+ (see below). Also, the services will
+ always be restarted if the exit code
+ or signal is specified in
+ <code class="varname">RestartForceExitStatus=</code>
(see below).</p><p>Setting this to
<code class="option">on-failure</code> is the
recommended choice for long-running
reliability by attempting automatic
recovery from errors. For services
that shall be able to terminate on
- their own choice (and avoiding
- immediate restart)
+ their own choice (and avoid
+ immediate restarting),
<code class="option">on-abnormal</code> is an
alternative choice.</p></dd><dt id="SuccessExitStatus="><span class="term"><code class="varname">SuccessExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#SuccessExitStatus=">¶</a></dt><dd><p>Takes a list of exit
status definitions that when returned
definitions can either be numeric exit
codes or termination signal names,
separated by spaces. For example:
- </p><pre class="programlisting">SuccessExitStatus=1 2 8 <code class="constant">SIGKILL</code></pre><p>
+ </p><pre class="programlisting">SuccessExitStatus=1 2 8 SIGKILL</pre><p>
ensures that exit codes 1, 2, 8 and
the termination signal
<code class="constant">SIGKILL</code> are
spaces. Defaults to the empty list, so
that, by default, no exit status is
excluded from the configured restart
- logic. Example:
- "<code class="literal">RestartPreventExitStatus=1 6
- SIGABRT</code>", ensures that exit
+ logic. For example:
+ </p><pre class="programlisting">RestartPreventExitStatus=1 6 SIGABRT</pre><p> ensures that exit
codes 1 and 6 and the termination
signal <code class="constant">SIGABRT</code> will
not result in automatic service
string is assigned to this option, the
list is reset and all prior assignments
of this option will have no
- effect.</p></dd><dt id="PermissionsStartOnly="><span class="term"><code class="varname">PermissionsStartOnly=</code></span><a class="headerlink" title="Permalink to this term" href="#PermissionsStartOnly=">¶</a></dt><dd><p>Takes a boolean
+ effect.</p></dd><dt id="RestartForceExitStatus="><span class="term"><code class="varname">RestartForceExitStatus=</code></span><a class="headerlink" title="Permalink to this term" href="#RestartForceExitStatus=">¶</a></dt><dd><p>Takes a list of exit
+ status definitions that when returned
+ by the main service process will force
+ automatic service restarts, regardless
+ of the restart setting configured with
+ <code class="varname">Restart=</code>. The
+ argument format is similar to
+ <code class="varname">RestartPreventExitStatus=</code>.</p></dd><dt id="PermissionsStartOnly="><span class="term"><code class="varname">PermissionsStartOnly=</code></span><a class="headerlink" title="Permalink to this term" href="#PermissionsStartOnly=">¶</a></dt><dd><p>Takes a boolean
argument. If true, the permission-related
execution options, as
configured with
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
and
<a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>
- for more settings.</p></div><div class="refsect1"><a name="idm214183108928"></a><h2 id="Compatibility Options">Compatibility Options<a class="headerlink" title="Permalink to this headline" href="#Compatibility%20Options">¶</a></h2><p>The following options are also available in the
+ for more settings.</p></div><div class="refsect1"><a name="idm214196210688"></a><h2 id="Compatibility Options">Compatibility Options<a class="headerlink" title="Permalink to this headline" href="#Compatibility%20Options">¶</a></h2><p>The following options are also available in the
"<code class="literal">[Service]</code>" section, but exist purely
for compatibility reasons and should not be used in
newly written service files.</p><div class="variablelist"><dl class="variablelist"><dt id="SysVStartPriority="><span class="term"><code class="varname">SysVStartPriority=</code></span><a class="headerlink" title="Permalink to this term" href="#SysVStartPriority=">¶</a></dt><dd><p>Set the SysV start
instead. For more details, see
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>.
If used, pass an integer value in the
- range 0-99.</p></dd></dl></div></div><div class="refsect1"><a name="idm214183102224"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ range 0-99.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196203136"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
</tgroup>
</table>
- <para>In addition to the above settings,
- the service will not be restarted if the
- exit code or signal is specified in
+ <para>As exceptions to the setting
+ above the service will not be
+ restarted if the exit code or signal
+ is specified in
<varname>RestartPreventExitStatus=</varname>
+ (see below). Also, the services will
+ always be restarted if the exit code
+ or signal is specified in
+ <varname>RestartForceExitStatus=</varname>
(see below).</para>
<para>Setting this to
reliability by attempting automatic
recovery from errors. For services
that shall be able to terminate on
- their own choice (and avoiding
- immediate restart)
+ their own choice (and avoid
+ immediate restarting),
<option>on-abnormal</option> is an
alternative choice.</para>
</listitem>
definitions can either be numeric exit
codes or termination signal names,
separated by spaces. For example:
- <programlisting>SuccessExitStatus=1 2 8 <constant>SIGKILL</constant></programlisting>
+ <programlisting>SuccessExitStatus=1 2 8 SIGKILL</programlisting>
ensures that exit codes 1, 2, 8 and
the termination signal
<constant>SIGKILL</constant> are
spaces. Defaults to the empty list, so
that, by default, no exit status is
excluded from the configured restart
- logic. Example:
- <literal>RestartPreventExitStatus=1 6
- SIGABRT</literal>, ensures that exit
+ logic. For example:
+ <programlisting>RestartPreventExitStatus=1 6 SIGABRT</programlisting> ensures that exit
codes 1 and 6 and the termination
signal <constant>SIGABRT</constant> will
not result in automatic service
effect.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>RestartForceExitStatus=</varname></term>
+ <listitem><para>Takes a list of exit
+ status definitions that when returned
+ by the main service process will force
+ automatic service restarts, regardless
+ of the restart setting configured with
+ <varname>Restart=</varname>. The
+ argument format is similar to
+ <varname>RestartPreventExitStatus=</varname>.</para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>PermissionsStartOnly=</varname></term>
<listitem><para>Takes a boolean
'\" t
-.TH "SYSTEMD\&.SLICE" "5" "" "systemd 214" "systemd.slice"
+.TH "SYSTEMD\&.SLICE" "5" "" "systemd 215" "systemd.slice"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.slice"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.slice — Slice unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>slice</code></em>.slice</code></p></div><div class="refsect1"><a name="idm214178621056"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.slice"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.slice — Slice unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>slice</code></em>.slice</code></p></div><div class="refsect1"><a name="idm214176181488"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.slice</code>" encodes information about a slice which
is a concept for hierarchically managing resources of a group of
processes. This management is performed by creating a node in the
that slice units are removed prior to system
shutdown. Only slice units involved with early boot or
late system shutdown should disable this option.
- </p></div><div class="refsect1"><a name="idm214178605920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214172331440"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
<a href="systemd.resource-control.html"><span class="citerefentry"><span class="refentrytitle">systemd.resource-control</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.SNAPSHOT" "5" "" "systemd 214" "systemd.snapshot"
+.TH "SYSTEMD\&.SNAPSHOT" "5" "" "systemd 215" "systemd.snapshot"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.snapshot"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.snapshot — Snapshot unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>snapshot</code></em>.snapshot</code></p></div><div class="refsect1"><a name="idm214171878912"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Snapshot units are not configured via unit
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.snapshot"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.snapshot — Snapshot unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>snapshot</code></em>.snapshot</code></p></div><div class="refsect1"><a name="idm214193697152"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>Snapshot units are not configured via unit
configuration files. Nonetheless they are named
similar to filenames. A unit whose name ends in
"<code class="literal">.snapshot</code>" refers to a dynamic
<span class="command"><strong>systemctl isolate</strong></span>. They are
useful to roll back to a defined state after
temporarily starting/stopping services or
- similar.</p></div><div class="refsect1"><a name="idm214171873904"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ similar.</p></div><div class="refsect1"><a name="idm214193691984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.SOCKET" "5" "" "systemd 214" "systemd.socket"
+.TH "SYSTEMD\&.SOCKET" "5" "" "systemd 215" "systemd.socket"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fISocketUser=\fR, \fISocketGroup=\fR
.RS 4
-Takes a UNIX user/group name\&. When specified all AF_UNIX sockets and FIFO nodes in the file system are owned by the specified user and group\&. If unset (the default), the nodes are owned by the root user/group (if run in system context) or the invoking user/group (if run in user context)\&. If only a user is specified but no group, then the group is derived from the user\*(Aqs default group\&.
+Takes a UNIX user/group name\&. When specified, all AF_UNIX sockets and FIFO nodes in the file system are owned by the specified user and group\&. If unset (the default), the nodes are owned by the root user/group (if run in system context) or the invoking user/group (if run in user context)\&. If only a user is specified but no group, then the group is derived from the user\*(Aqs default group\&.
.RE
.PP
\fISocketMode=\fR
.PP
\fIRemoveOnStop=\fR
.RS 4
-Takes a boolean argument\&. If enabled any file nodes created by this socket unit are removed when it is stopped\&. This applies to AF_UNIX sockets in the file system, POSIX message queues as well as FIFOs, as well as any symlinks to them configured with
-\fISymlinks=\fR\&. Normally it should not be necessary to use this option, and is not recommended as services might continue to run after the socket unit has been terminated and it should still be possible to communicate with them via their file system node\&. Defaults to off\&.
+Takes a boolean argument\&. If enabled, any file nodes created by this socket unit are removed when it is stopped\&. This applies to AF_UNIX sockets in the file system, POSIX message queues, FIFOs, as well as any symlinks to them configured with
+\fISymlinks=\fR\&. Normally, it should not be necessary to use this option, and is not recommended as services might continue to run after the socket unit has been terminated and it should still be possible to communicate with them via their file system node\&. Defaults to off\&.
.RE
.PP
\fISymlinks=\fR
.RS 4
-Takes a list of file system paths\&. The specified paths will be created as symlinks to the AF_UNIX socket path or FIFO path of this socket unit\&. If this setting is used only one AF_UNIX socket in the file system or one FIFO may be configured for the socket unit\&. Use this option to manage one or more symlinked alias names for a socket, binding their lifecycle together\&. Defaults to the empty list\&.
+Takes a list of file system paths\&. The specified paths will be created as symlinks to the AF_UNIX socket path or FIFO path of this socket unit\&. If this setting is used, only one AF_UNIX socket in the file system or one FIFO may be configured for the socket unit\&. Use this option to manage one or more symlinked alias names for a socket, binding their lifecycle together\&. Defaults to the empty list\&.
.RE
.PP
Check
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.socket"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.socket — Socket unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code></p></div><div class="refsect1"><a name="idm214174500608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.socket"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.socket — Socket unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code></p></div><div class="refsect1"><a name="idm214183103728"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.socket</code>" encodes information about
an IPC or network socket or a file system FIFO
controlled and supervised by systemd, for socket-based
<a href="inetd.html"><span class="citerefentry"><span class="refentrytitle">inetd</span>(8)</span></a>-style
socket passing (i.e. sockets passed in via standard input and
output, using <code class="varname">StandardInput=socket</code>
- in the service file).</p></div><div class="refsect1"><a name="idm214178372784"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Socket files must include a [Socket] section,
+ in the service file).</p></div><div class="refsect1"><a name="idm214183195712"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Socket files must include a [Socket] section,
which carries information about the socket or FIFO it
supervises. A number of options that may be used in
this section are shared with other unit types. These
device unit
(<a href="systemd.device.html"><span class="citerefentry"><span class="refentrytitle">systemd.device</span>(5)</span></a>
is created.</p></dd><dt id="SocketUser="><span class="term"><code class="varname">SocketUser=</code>, </span><span class="term"><code class="varname">SocketGroup=</code></span><a class="headerlink" title="Permalink to this term" href="#SocketUser=">¶</a></dt><dd><p>Takes a UNIX
- user/group name. When specified
+ user/group name. When specified,
all AF_UNIX sockets and FIFO nodes in
the file system are owned by the
specified user and group. If unset
suffix replaced). In most cases, it
should not be necessary to use this
option.</p></dd><dt id="RemoveOnStop="><span class="term"><code class="varname">RemoveOnStop=</code></span><a class="headerlink" title="Permalink to this term" href="#RemoveOnStop=">¶</a></dt><dd><p>Takes a boolean
- argument. If enabled any file nodes
+ argument. If enabled, any file nodes
created by this socket unit are
removed when it is stopped. This
applies to AF_UNIX sockets in the file
- system, POSIX message queues as well
- as FIFOs, as well as any symlinks to
+ system, POSIX message queues, FIFOs,
+ as well as any symlinks to
them configured with
- <code class="varname">Symlinks=</code>. Normally
+ <code class="varname">Symlinks=</code>. Normally,
it should not be necessary to use this
option, and is not recommended as
services might continue to run after
system paths. The specified paths will
be created as symlinks to the AF_UNIX
socket path or FIFO path of this
- socket unit. If this setting is used
+ socket unit. If this setting is used,
only one AF_UNIX socket in the file
system or one FIFO may be configured
for the socket unit. Use this option
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
and
<a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>
- for more settings.</p></div><div class="refsect1"><a name="idm214173311424"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ for more settings.</p></div><div class="refsect1"><a name="idm214178079200"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
<term><varname>SocketGroup=</varname></term>
<listitem><para>Takes a UNIX
- user/group name. When specified
+ user/group name. When specified,
all AF_UNIX sockets and FIFO nodes in
the file system are owned by the
specified user and group. If unset
<varlistentry>
<term><varname>RemoveOnStop=</varname></term>
<listitem><para>Takes a boolean
- argument. If enabled any file nodes
+ argument. If enabled, any file nodes
created by this socket unit are
removed when it is stopped. This
applies to AF_UNIX sockets in the file
- system, POSIX message queues as well
- as FIFOs, as well as any symlinks to
+ system, POSIX message queues, FIFOs,
+ as well as any symlinks to
them configured with
- <varname>Symlinks=</varname>. Normally
+ <varname>Symlinks=</varname>. Normally,
it should not be necessary to use this
option, and is not recommended as
services might continue to run after
system paths. The specified paths will
be created as symlinks to the AF_UNIX
socket path or FIFO path of this
- socket unit. If this setting is used
+ socket unit. If this setting is used,
only one AF_UNIX socket in the file
system or one FIFO may be configured
for the socket unit. Use this option
'\" t
-.TH "SYSTEMD\&.SPECIAL" "7" "" "systemd 214" "systemd.special"
+.TH "SYSTEMD\&.SPECIAL" "7" "" "systemd 215" "systemd.special"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
bluetooth\&.target,
ctrl\-alt\-del\&.target,
cryptsetup\&.target,
+cryptsetup\-pre\&.target,
dbus\&.service,
dbus\&.socket,
default\&.target,
sysroot\-usr\&.mount
and all mount points found in
/etc/fstab
-that have the
-\fBauto\fR
-and
+that have
\fBx\-initrd\&.mount\fR
+and not have
+\fBnoauto\fR
mount options set\&.
.RE
.PP
"systemctl start time\-sync\&.target"
will fail with an error\&. They can only be pulled in by dependency\&. This is enforced since they exist for ordering purposes only and thus are not useful as only unit within a transaction\&.
.PP
+cryptsetup\-pre\&.target
+.RS 4
+This passive target unit may be pulled in by services that want to run before any encrypted block device is set up\&. All encrypted block devices are set up after this target has been reached\&. Since the shutdown order is implicitly the reverse start\-up order between units, this target is particularly useful to ensure that a service is shut down only after all encrypted block devices are fully stopped\&.
+.RE
+.PP
local\-fs\-pre\&.target
.RS 4
This target unit is automatically ordered before all local mount points marked with
.PP
machine\&.slice
.RS 4
-By defalt, all virtual machines and containers registered with
+By default, all virtual machines and containers registered with
\fBsystemd\-machined\fR
are found in this slice\&.
.RE
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.special"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.special — Special systemd units</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">basic.target</code>,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.special"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.special — Special systemd units</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">basic.target</code>,
<code class="filename">bluetooth.target</code>,
<code class="filename">ctrl-alt-del.target</code>,
<code class="filename">cryptsetup.target</code>,
+ <code class="filename">cryptsetup-pre.target</code>,
<code class="filename">dbus.service</code>,
<code class="filename">dbus.socket</code>,
<code class="filename">default.target</code>,
<code class="filename">-.slice</code>,
<code class="filename">system.slice</code>,
<code class="filename">user.slice</code>,
- <code class="filename">machine.slice</code></p></div><div class="refsect1"><a name="idm214190107648"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A few units are treated specially by
+ <code class="filename">machine.slice</code></p></div><div class="refsect1"><a name="idm214177962192"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A few units are treated specially by
systemd. They have special internal semantics and
- cannot be renamed.</p></div><div class="refsect1"><a name="idm214190106304"></a><h2 id="Special System Units">Special System Units<a class="headerlink" title="Permalink to this headline" href="#Special%20System%20Units">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="basic.target"><span class="term"><code class="filename">basic.target</code></span><a class="headerlink" title="Permalink to this term" href="#basic.target">¶</a></dt><dd><p>A special target unit
+ cannot be renamed.</p></div><div class="refsect1"><a name="idm214177960848"></a><h2 id="Special System Units">Special System Units<a class="headerlink" title="Permalink to this headline" href="#Special%20System%20Units">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="basic.target"><span class="term"><code class="filename">basic.target</code></span><a class="headerlink" title="Permalink to this term" href="#basic.target">¶</a></dt><dd><p>A special target unit
covering basic boot-up.</p><p>systemd automatically
adds dependencies of the types
<code class="varname">Requires=</code>
<code class="filename">sysroot-usr.mount</code>
and all mount points found in
<code class="filename">/etc/fstab</code>
- that have the
- <code class="option">auto</code> and
+ that have
<code class="option">x-initrd.mount</code>
- mount options set.
- </p></dd><dt id="kbrequest.target"><span class="term"><code class="filename">kbrequest.target</code></span><a class="headerlink" title="Permalink to this term" href="#kbrequest.target">¶</a></dt><dd><p>systemd starts this
+ and not have <code class="option">noauto</code>
+ mount options set.</p></dd><dt id="kbrequest.target"><span class="term"><code class="filename">kbrequest.target</code></span><a class="headerlink" title="Permalink to this term" href="#kbrequest.target">¶</a></dt><dd><p>systemd starts this
target whenever Alt+ArrowUp is
pressed on the console. This
is a good candidate to be
their mount unit, which is
implicitly done when
<code class="varname">DefaultDependencies=yes</code>
- is set (the default).</p></dd></dl></div></div><div class="refsect1"><a name="idm214185044752"></a><h2 id="Special System Units for Devices">Special System Units for Devices<a class="headerlink" title="Permalink to this headline" href="#Special%20System%20Units%20for%20Devices">¶</a></h2><p>Some target units are automatically pulled in as
+ is set (the default).</p></dd></dl></div></div><div class="refsect1"><a name="idm214172840096"></a><h2 id="Special System Units for Devices">Special System Units for Devices<a class="headerlink" title="Permalink to this headline" href="#Special%20System%20Units%20for%20Devices">¶</a></h2><p>Some target units are automatically pulled in as
devices of certain kinds show up in the system. These
may be used to automatically activate various services
based on the specific type of the available
boot.</p><p>This may be used to pull
in audio management daemons
dynamically when audio
- hardware is found.</p></dd></dl></div></div><div class="refsect1"><a name="idm214185031600"></a><h2 id="Special Passive System Units ">Special Passive System Units <a class="headerlink" title="Permalink to this headline" href="#Special%20Passive%20System%20Units%20">¶</a></h2><p>A number of special system targets are defined
+ hardware is found.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172826944"></a><h2 id="Special Passive System Units ">Special Passive System Units <a class="headerlink" title="Permalink to this headline" href="#Special%20Passive%20System%20Units%20">¶</a></h2><p>A number of special system targets are defined
that can be used to properly order boot-up of optional
services. These targets are generally not part of the
initial boot transaction, unless they are explicitly
error. They can only be pulled in by dependency. This
is enforced since they exist for ordering purposes
only and thus are not useful as only unit within a
- transaction.</p><div class="variablelist"><dl class="variablelist"><dt id="local-fs-pre.target"><span class="term"><code class="filename">local-fs-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#local-fs-pre.target">¶</a></dt><dd><p>This target unit is
+ transaction.</p><div class="variablelist"><dl class="variablelist"><dt id="cryptsetup-pre.target"><span class="term"><code class="filename">cryptsetup-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#cryptsetup-pre.target">¶</a></dt><dd><p>This passive target unit
+ may be pulled in by services
+ that want to run before any
+ encrypted block device is set
+ up. All encrypted block
+ devices are set up after this
+ target has been reached. Since
+ the shutdown order is
+ implicitly the reverse
+ start-up order between units,
+ this target is particularly
+ useful to ensure that a
+ service is shut down only
+ after all encrypted block
+ devices are fully
+ stopped.</p></dd><dt id="local-fs-pre.target"><span class="term"><code class="filename">local-fs-pre.target</code></span><a class="headerlink" title="Permalink to this term" href="#local-fs-pre.target">¶</a></dt><dd><p>This target unit is
automatically ordered before
all local mount points marked
with <code class="option">auto</code>
init script service units with
an LSB header referring to the
"<code class="literal">$time</code>"
- facility. </p></dd></dl></div></div><div class="refsect1"><a name="idm214184985344"></a><h2 id="Special User Units">Special User Units<a class="headerlink" title="Permalink to this headline" href="#Special%20User%20Units">¶</a></h2><p>When systemd runs as a user instance, the
+ facility. </p></dd></dl></div></div><div class="refsect1"><a name="idm214172785472"></a><h2 id="Special User Units">Special User Units<a class="headerlink" title="Permalink to this headline" href="#Special%20User%20Units">¶</a></h2><p>When systemd runs as a user instance, the
following special units are available, which have
similar definitions as their system counterparts:
<code class="filename">default.target</code>,
which in turn should be
conflicted by all units that
want to be shut down on
- user service manager exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184972448"></a><h2 id="Special Slice Units">Special Slice Units<a class="headerlink" title="Permalink to this headline" href="#Special%20Slice%20Units">¶</a></h2><p>There are four "<code class="literal">.slice</code>" units
+ user service manager exit.</p></dd></dl></div></div><div class="refsect1"><a name="idm214172772576"></a><h2 id="Special Slice Units">Special Slice Units<a class="headerlink" title="Permalink to this headline" href="#Special%20Slice%20Units">¶</a></h2><p>There are four "<code class="literal">.slice</code>" units
which form the basis of the hierarchy for assignment
of resources for services, users, and virtual machines
or containers.</p><div class="variablelist"><dl class="variablelist"><dt id="-.slice"><span class="term"><code class="filename">-.slice</code></span><a class="headerlink" title="Permalink to this term" href="#-.slice">¶</a></dt><dd><p>The root slice is the
on behalf of the user,
including the per-user systemd
instance are found in this
- slice.</p></dd><dt id="machine.slice"><span class="term"><code class="filename">machine.slice</code></span><a class="headerlink" title="Permalink to this term" href="#machine.slice">¶</a></dt><dd><p>By defalt, all virtual
+ slice.</p></dd><dt id="machine.slice"><span class="term"><code class="filename">machine.slice</code></span><a class="headerlink" title="Permalink to this term" href="#machine.slice">¶</a></dt><dd><p>By default, all virtual
machines and containers
registered with
<span class="command"><strong>systemd-machined</strong></span>
are found in this slice.
- </p></dd></dl></div></div><div class="refsect1"><a name="idm214184959984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></dd></dl></div></div><div class="refsect1"><a name="idm214172760096"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
<a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
<filename>bluetooth.target</filename>,
<filename>ctrl-alt-del.target</filename>,
<filename>cryptsetup.target</filename>,
+ <filename>cryptsetup-pre.target</filename>,
<filename>dbus.service</filename>,
<filename>dbus.socket</filename>,
<filename>default.target</filename>,
<filename>sysroot-usr.mount</filename>
and all mount points found in
<filename>/etc/fstab</filename>
- that have the
- <option>auto</option> and
+ that have
<option>x-initrd.mount</option>
- mount options set.
- </para>
+ and not have <option>noauto</option>
+ mount options set.</para>
</listitem>
</varlistentry>
<varlistentry>
transaction.</para>
<variablelist>
+ <varlistentry>
+ <term><filename>cryptsetup-pre.target</filename></term>
+ <listitem>
+ <para>This passive target unit
+ may be pulled in by services
+ that want to run before any
+ encrypted block device is set
+ up. All encrypted block
+ devices are set up after this
+ target has been reached. Since
+ the shutdown order is
+ implicitly the reverse
+ start-up order between units,
+ this target is particularly
+ useful to ensure that a
+ service is shut down only
+ after all encrypted block
+ devices are fully
+ stopped.</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><filename>local-fs-pre.target</filename></term>
<listitem>
<varlistentry>
<term><filename>machine.slice</filename></term>
<listitem>
- <para>By defalt, all virtual
+ <para>By default, all virtual
machines and containers
registered with
<command>systemd-machined</command>
'\" t
-.TH "SYSTEMD\&.SWAP" "5" "" "systemd 214" "systemd.swap"
+.TH "SYSTEMD\&.SWAP" "5" "" "systemd 215" "systemd.swap"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.swap"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.swap — Swap unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code></p></div><div class="refsect1"><a name="idm214193803712"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.swap"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.swap — Swap unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code></p></div><div class="refsect1"><a name="idm214170852608"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.swap</code>" encodes information about a
swap device or file for memory paging controlled and
supervised by systemd.</p><p>This man page lists the configuration options
<code class="varname">DefaultDependencies=</code> enabled
implicitly acquire a conflicting dependency to
<code class="filename">umount.target</code> so that they are
- deactivated at shutdown.</p></div><div class="refsect1"><a name="idm214193790848"></a><h2 id="fstab"><code class="filename">fstab</code><a class="headerlink" title="Permalink to this headline" href="#fstab">¶</a></h2><p>Swap units may either be configured via unit
+ deactivated at shutdown.</p></div><div class="refsect1"><a name="idm214167005072"></a><h2 id="fstab"><code class="filename">fstab</code><a class="headerlink" title="Permalink to this headline" href="#fstab">¶</a></h2><p>Swap units may either be configured via unit
files, or via <code class="filename">/etc/fstab</code> (see
<a href="fstab.html"><span class="citerefentry"><span class="refentrytitle">fstab</span>(5)</span></a>
for details). Swaps listed in
<code class="filename">/etc/fstab</code> are also added as
requirements to <code class="filename">swap.target</code>, so
that they are waited for and activated during
- boot.</p></div><div class="refsect1"><a name="idm214197684176"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Swap files must include a [Swap] section, which
+ boot.</p></div><div class="refsect1"><a name="idm214170949104"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Swap files must include a [Swap] section, which
carries information about the swap device it
supervises. A number of options that may be used in
this section are shared with other unit types. These
<a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>
and
<a href="systemd.kill.html"><span class="citerefentry"><span class="refentrytitle">systemd.kill</span>(5)</span></a>
- for more settings.</p></div><div class="refsect1"><a name="idm214197659856"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ for more settings.</p></div><div class="refsect1"><a name="idm214170924512"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.TARGET" "5" "" "systemd 214" "systemd.target"
+.TH "SYSTEMD\&.TARGET" "5" "" "systemd 215" "systemd.target"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.target"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.target — Target unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>target</code></em>.target</code></p></div><div class="refsect1"><a name="idm214176231744"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.target"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.target — Target unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>target</code></em>.target</code></p></div><div class="refsect1"><a name="idm214170922224"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.target</code>" encodes information about
a target unit of systemd, which is used for grouping
units and as well-known synchronization points during
dependencies of type <code class="varname">After=</code> if the
units in question also have
<code class="varname">DefaultDependencies=true</code>.
- </p></div><div class="refsect1"><a name="idm214176222064"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214167077728"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.TIME" "7" "" "systemd 214" "systemd.time"
+.TH "SYSTEMD\&.TIME" "7" "" "systemd 215" "systemd.time"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.time — Time and date specifications</p></div><div class="refsect1"><a name="idm214188406976"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>In systemd, timestamps, time spans, and calendar
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.time"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.time — Time and date specifications</p></div><div class="refsect1"><a name="idm214177369584"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>In systemd, timestamps, time spans, and calendar
events are displayed and may be specified in closely
- related syntaxes.</p></div><div class="refsect1"><a name="idm214188405632"></a><h2 id="Displaying Time Spans">Displaying Time Spans<a class="headerlink" title="Permalink to this headline" href="#Displaying%20Time%20Spans">¶</a></h2><p>Time spans refer to time durations. On display,
+ related syntaxes.</p></div><div class="refsect1"><a name="idm214173533376"></a><h2 id="Displaying Time Spans">Displaying Time Spans<a class="headerlink" title="Permalink to this headline" href="#Displaying%20Time%20Spans">¶</a></h2><p>Time spans refer to time durations. On display,
systemd will present time spans as a space-separated
series of time values each suffixed by a time
unit.</p><pre class="programlisting">2h 30min</pre><p>All specified time values are meant to be added
- up. The above hence refers to 150 minutes.</p></div><div class="refsect1"><a name="idm214188403136"></a><h2 id="Parsing Time Spans">Parsing Time Spans<a class="headerlink" title="Permalink to this headline" href="#Parsing%20Time%20Spans">¶</a></h2><p>When parsing, systemd will accept the same
+ up. The above hence refers to 150 minutes.</p></div><div class="refsect1"><a name="idm214173530880"></a><h2 id="Parsing Time Spans">Parsing Time Spans<a class="headerlink" title="Permalink to this headline" href="#Parsing%20Time%20Spans">¶</a></h2><p>When parsing, systemd will accept the same
time span syntax. Separating spaces may be omitted. The
following time units are understood:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>usec, us</p></li><li class="listitem"><p>msec, ms</p></li><li class="listitem"><p>seconds, second, sec, s</p></li><li class="listitem"><p>minutes, minute, min, m</p></li><li class="listitem"><p>hours, hour, hr, h</p></li><li class="listitem"><p>days, day, d</p></li><li class="listitem"><p>weeks, week, w</p></li><li class="listitem"><p>months, month</p></li><li class="listitem"><p>years, year, y</p></li></ul></div><p>If no time unit is specified, generally seconds
are assumed, but some exceptions exist and are marked
48hr
1y 12month
55s500ms
-300ms20s 5day</pre></div><div class="refsect1"><a name="idm214188393472"></a><h2 id="Displaying Timestamps">Displaying Timestamps<a class="headerlink" title="Permalink to this headline" href="#Displaying%20Timestamps">¶</a></h2><p>Timestamps refer to specific, unique points in
+300ms20s 5day</pre></div><div class="refsect1"><a name="idm214173521216"></a><h2 id="Displaying Timestamps">Displaying Timestamps<a class="headerlink" title="Permalink to this headline" href="#Displaying%20Timestamps">¶</a></h2><p>Timestamps refer to specific, unique points in
time. On display, systemd will format these in the
local timezone as follows:</p><pre class="programlisting">Fri 2012-11-23 23:02:15 CET</pre><p>The weekday is printed according to the locale
- choice of the user.</p></div><div class="refsect1"><a name="idm214188391024"></a><h2 id="Parsing Timestamps">Parsing Timestamps<a class="headerlink" title="Permalink to this headline" href="#Parsing%20Timestamps">¶</a></h2><p>When parsing systemd will accept a similar
+ choice of the user.</p></div><div class="refsect1"><a name="idm214173518768"></a><h2 id="Parsing Timestamps">Parsing Timestamps<a class="headerlink" title="Permalink to this headline" href="#Parsing%20Timestamps">¶</a></h2><p>When parsing systemd will accept a similar
timestamp syntax, but excluding any timezone
specification (this limitation might be removed
eventually). The weekday specification is optional,
of invocation of the command) instead or in addition
to an absolute timestamp as described above. A
relative timestamp is formatted as follows:</p><p>2 months 5 days ago</p><p>Note that any relative timestamp will also parse
- correctly where a timestamp is expected. (see above)</p></div><div class="refsect1"><a name="idm214192249904"></a><h2 id="Calendar Events">Calendar Events<a class="headerlink" title="Permalink to this headline" href="#Calendar%20Events">¶</a></h2><p>Calendar events may be used to refer to one or
+ correctly where a timestamp is expected. (see above)</p></div><div class="refsect1"><a name="idm214177428256"></a><h2 id="Calendar Events">Calendar Events<a class="headerlink" title="Permalink to this headline" href="#Calendar%20Events">¶</a></h2><p>Calendar events may be used to refer to one or
more points in time in a single expression. They form
a superset of the absolute timestamps explained above:</p><pre class="programlisting">Thu,Fri 2012-*-1,5 11:12:13</pre><p>The above refers to 11:12:13 of the first or
fifth day of any month of the year 2012, given that it
weekly → Mon *-*-* 00:00:00
*:2/3 → *-*-* *:02/3:00</pre><p>Calendar events are used by timer units, see
<a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>
- for details.</p></div><div class="refsect1"><a name="idm214187323696"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ for details.</p></div><div class="refsect1"><a name="idm214172453600"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="journalctl.html"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
<a href="systemd.timer.html"><span class="citerefentry"><span class="refentrytitle">systemd.timer</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.TIMER" "5" "" "systemd 214" "systemd.timer"
+.TH "SYSTEMD\&.TIMER" "5" "" "systemd 215" "systemd.timer"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.timer"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.timer — Timer unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>timer</code></em>.timer</code></p></div><div class="refsect1"><a name="idm214183002432"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.timer"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.timer — Timer unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>timer</code></em>.timer</code></p></div><div class="refsect1"><a name="idm214184246512"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file whose name ends in
"<code class="literal">.timer</code>" encodes information about
a timer controlled and supervised by systemd, for
timer-based activation.</p><p>This man page lists the configuration options
that timer units are stopped cleanly prior to system
shutdown. Only timer units involved with early boot or
late system shutdown should disable this
- option.</p></div><div class="refsect1"><a name="idm214182993248"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Timer files must include a [Timer] section,
+ option.</p></div><div class="refsect1"><a name="idm214180402560"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>Timer files must include a [Timer] section,
which carries information about the timer it
defines. The options specific to the [Timer] section
of timer units are the following:</p><div class="variablelist"><dl class="variablelist"><dt id="OnActiveSec="><span class="term"><code class="varname">OnActiveSec=</code>, </span><span class="term"><code class="varname">OnBootSec=</code>, </span><span class="term"><code class="varname">OnStartupSec=</code>, </span><span class="term"><code class="varname">OnUnitActiveSec=</code>, </span><span class="term"><code class="varname">OnUnitInactiveSec=</code></span><a class="headerlink" title="Permalink to this term" href="#OnActiveSec=">¶</a></dt><dd><p>Defines monotonic timers
suspending it again after any work
that is to be done is
finished. Defaults to
- <code class="varname">false</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186872976"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <code class="varname">false</code>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214184333120"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.unit.html"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
'\" t
-.TH "SYSTEMD\&.UNIT" "5" "" "systemd 214" "systemd.unit"
+.TH "SYSTEMD\&.UNIT" "5" "" "systemd 215" "systemd.unit"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
in service units) as the job timeout has no effect on the unit itself, only on the job that might be pending for it\&. Or in other words: unit\-specific timeouts are useful to abort unit state changes, and revert them\&. The job timeout set with this option however is useful to abort only the job waiting for the unit state to change\&.
.RE
.PP
-\fIConditionArchitecture=\fR, \fIConditionVirtualization=\fR, \fIConditionHost=\fR, \fIConditionKernelCommandLine=\fR, \fIConditionSecurity=\fR, \fIConditionCapability=\fR, \fIConditionACPower=\fR, \fIConditionPathExists=\fR, \fIConditionPathExistsGlob=\fR, \fIConditionPathIsDirectory=\fR, \fIConditionPathIsSymbolicLink=\fR, \fIConditionPathIsMountPoint=\fR, \fIConditionPathIsReadWrite=\fR, \fIConditionDirectoryNotEmpty=\fR, \fIConditionFileNotEmpty=\fR, \fIConditionFileIsExecutable=\fR, \fIConditionNull=\fR
+\fIConditionArchitecture=\fR, \fIConditionVirtualization=\fR, \fIConditionHost=\fR, \fIConditionKernelCommandLine=\fR, \fIConditionSecurity=\fR, \fIConditionCapability=\fR, \fIConditionACPower=\fR, \fIConditionNeedsUpdate=\fR, \fIConditionPathExists=\fR, \fIConditionPathExistsGlob=\fR, \fIConditionPathIsDirectory=\fR, \fIConditionPathIsSymbolicLink=\fR, \fIConditionPathIsMountPoint=\fR, \fIConditionPathIsReadWrite=\fR, \fIConditionDirectoryNotEmpty=\fR, \fIConditionFileNotEmpty=\fR, \fIConditionFileIsExecutable=\fR, \fIConditionNull=\fR
.RS 4
Before starting a unit verify that the specified condition is true\&. If it is not true, the starting of the unit will be skipped, however all ordering dependencies of it are still respected\&. A failing condition will not result in the unit being moved into a failure state\&. The condition is checked at the time the queued start job is to be executed\&.
.sp
\fItrue\fR, the condition will hold only if at least one AC connector of the system is connected to a power source, or if no AC connectors are known\&. Conversely, if set to
\fIfalse\fR, the condition will hold only if there is at least one AC connector known and all AC connectors are disconnected from a power source\&.
.sp
+\fIConditionNeedsUpdate=\fR
+takes one of
+/var
+or
+/etc
+as argument, possibly prefixed with a
+"!"
+(for inverting the condition)\&. This condition may be used to conditionalize units on whether the specified directory requires an update because
+/usr\*(Aqs modification time is newer than the stamp file
+\&.updated
+in the specified directory\&. This is useful to implement offline updates of the vendor operating system resources in
+/usr
+that require updating of
+/etc
+or
+/var
+on the next following boot\&. Units making use of this condition should order themselves before
+\fBsystemd-update-done.service\fR(8), to make sure they run before the stamp files\*(Aqs modification time gets reset indicating a completed update\&.
+.sp
With
\fIConditionPathExists=\fR
a file existence condition is checked before a unit is started\&. If the specified absolute path name does not exist, the condition will fail\&. If the absolute path name passed to
.PP
\fISourcePath=\fR
.RS 4
-A path to a configuration file this unit has been generated from\&. This is primarily useful for implementation of generator tools that convert configuration from an external configuration file format into native unit files\&. Thus functionality should not be used in normal units\&.
+A path to a configuration file this unit has been generated from\&. This is primarily useful for implementation of generator tools that convert configuration from an external configuration file format into native unit files\&. This functionality should not be used in normal units\&.
.RE
.SH "[INSTALL] SECTION OPTIONS"
.PP
This option may be used more than once, or a space\-separated list of unit names may be given\&.
.RE
.PP
+\fIDefaultInstance=\fR
+.RS 4
+In template unit files, this specifies for which instance the unit shall be enabled if the template is enabled without any explicitly set instance\&. This option has no effect in non\-template unit files\&. The specified string must be usable as instance identifier\&.
+.RE
+.PP
The following specifiers are interpreted in the Install section: %n, %N, %p, %i, %U, %u, %m, %H, %b, %v\&. For their meaning see the next section\&.
.SH "SPECIFIERS"
.PP
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="systemd.unit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.unit — Unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="systemd.unit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>systemd.unit — Unit configuration</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
<code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code>,
<code class="filename"><em class="replaceable"><code>device</code></em>.device</code>,
<code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code>,
<code class="filename">/run/systemd/user/*</code><br>
<code class="filename">/usr/lib/systemd/user/*</code><br>
<code class="filename">...</code><br>
- </p></div></div><div class="refsect1"><a name="idm214172899200"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file encodes information
+ </p></div></div><div class="refsect1"><a name="idm214201004864"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>A unit configuration file encodes information
about a service, a socket, a device, a mount point, an
automount point, a swap file or partition, a start-up
target, a watched file system path, a timer controlled
fully disable a unit, making it impossible to start it
even manually.</p><p>The unit file format is covered by the
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/InterfaceStabilityPromise" target="_top">Interface
- Stability Promise</a>.</p></div><div class="refsect1"><a name="idm214167896448"></a><h2 id="Unit Load Path">Unit Load Path<a class="headerlink" title="Permalink to this headline" href="#Unit%20Load%20Path">¶</a></h2><p>Unit files are loaded from a set of paths
+ Stability Promise</a>.</p></div><div class="refsect1"><a name="idm214195948752"></a><h2 id="Unit Load Path">Unit Load Path<a class="headerlink" title="Permalink to this headline" href="#Unit%20Load%20Path">¶</a></h2><p>Unit files are loaded from a set of paths
determined during compilation, described in the two
tables below. Unit files found in directories listed
earlier override files with the same name in
<code class="varname">$SYSTEMD_UNIT_PATH</code> is set, this
contents of this variable overrides the unit load
path.
- </p><div class="table"><a name="idm214167893840"></a><p class="title"><b>Table 1.
+ </p><div class="table"><a name="idm214195946144"></a><p class="title"><b>Table 1.
Load path when running in system mode (<code class="option">--system</code>).
</b></p><div class="table-contents"><table summary="
Load path when running in system mode (--system).
- " border="1"><colgroup><col class="path"><col class="expl"></colgroup><thead><tr><th>Path</th><th>Description</th></tr></thead><tbody><tr><td><code class="filename">/etc/systemd/system</code></td><td>Local configuration</td></tr><tr><td><code class="filename">/run/systemd/system</code></td><td>Runtime units</td></tr><tr><td><code class="filename">/usr/lib/systemd/system</code></td><td>Units of installed packages</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idm214167884592"></a><p class="title"><b>Table 2.
+ " border="1"><colgroup><col class="path"><col class="expl"></colgroup><thead><tr><th>Path</th><th>Description</th></tr></thead><tbody><tr><td><code class="filename">/etc/systemd/system</code></td><td>Local configuration</td></tr><tr><td><code class="filename">/run/systemd/system</code></td><td>Runtime units</td></tr><tr><td><code class="filename">/usr/lib/systemd/system</code></td><td>Units of installed packages</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idm214195936896"></a><p class="title"><b>Table 2.
Load path when running in user mode (<code class="option">--user</code>).
</b></p><div class="table-contents"><table summary="
Load path when running in user mode (--user).
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>. Also,
some units are dynamically created via generators
<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/Generators/" target="_top">Generators</a>.
- </p></div><div class="refsect1"><a name="idm214167869504"></a><h2 id="[Unit] Section Options">[Unit] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BUnit%5D%20Section%20Options">¶</a></h2><p>Unit file may include a [Unit] section, which
+ </p></div><div class="refsect1"><a name="idm214195921808"></a><h2 id="[Unit] Section Options">[Unit] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BUnit%5D%20Section%20Options">¶</a></h2><p>Unit file may include a [Unit] section, which
carries generic information about the unit that is not
dependent on the type of unit:</p><div class="variablelist"><dl class="variablelist"><dt id="Description="><span class="term"><code class="varname">Description=</code></span><a class="headerlink" title="Permalink to this term" href="#Description=">¶</a></dt><dd><p>A free-form string
describing the unit. This is intended
timeout set with this option however
is useful to abort only the job
waiting for the unit state to
- change.</p></dd><dt id="ConditionArchitecture="><span class="term"><code class="varname">ConditionArchitecture=</code>, </span><span class="term"><code class="varname">ConditionVirtualization=</code>, </span><span class="term"><code class="varname">ConditionHost=</code>, </span><span class="term"><code class="varname">ConditionKernelCommandLine=</code>, </span><span class="term"><code class="varname">ConditionSecurity=</code>, </span><span class="term"><code class="varname">ConditionCapability=</code>, </span><span class="term"><code class="varname">ConditionACPower=</code>, </span><span class="term"><code class="varname">ConditionPathExists=</code>, </span><span class="term"><code class="varname">ConditionPathExistsGlob=</code>, </span><span class="term"><code class="varname">ConditionPathIsDirectory=</code>, </span><span class="term"><code class="varname">ConditionPathIsSymbolicLink=</code>, </span><span class="term"><code class="varname">ConditionPathIsMountPoint=</code>, </span><span class="term"><code class="varname">ConditionPathIsReadWrite=</code>, </span><span class="term"><code class="varname">ConditionDirectoryNotEmpty=</code>, </span><span class="term"><code class="varname">ConditionFileNotEmpty=</code>, </span><span class="term"><code class="varname">ConditionFileIsExecutable=</code>, </span><span class="term"><code class="varname">ConditionNull=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionArchitecture=">¶</a></dt><dd><p>Before starting a unit
+ change.</p></dd><dt id="ConditionArchitecture="><span class="term"><code class="varname">ConditionArchitecture=</code>, </span><span class="term"><code class="varname">ConditionVirtualization=</code>, </span><span class="term"><code class="varname">ConditionHost=</code>, </span><span class="term"><code class="varname">ConditionKernelCommandLine=</code>, </span><span class="term"><code class="varname">ConditionSecurity=</code>, </span><span class="term"><code class="varname">ConditionCapability=</code>, </span><span class="term"><code class="varname">ConditionACPower=</code>, </span><span class="term"><code class="varname">ConditionNeedsUpdate=</code>, </span><span class="term"><code class="varname">ConditionPathExists=</code>, </span><span class="term"><code class="varname">ConditionPathExistsGlob=</code>, </span><span class="term"><code class="varname">ConditionPathIsDirectory=</code>, </span><span class="term"><code class="varname">ConditionPathIsSymbolicLink=</code>, </span><span class="term"><code class="varname">ConditionPathIsMountPoint=</code>, </span><span class="term"><code class="varname">ConditionPathIsReadWrite=</code>, </span><span class="term"><code class="varname">ConditionDirectoryNotEmpty=</code>, </span><span class="term"><code class="varname">ConditionFileNotEmpty=</code>, </span><span class="term"><code class="varname">ConditionFileIsExecutable=</code>, </span><span class="term"><code class="varname">ConditionNull=</code></span><a class="headerlink" title="Permalink to this term" href="#ConditionArchitecture=">¶</a></dt><dd><p>Before starting a unit
verify that the specified condition is
true. If it is not true, the starting
of the unit will be skipped, however
condition will hold only if there is
at least one AC connector known and
all AC connectors are disconnected
- from a power source.</p><p>With
+ from a power source.</p><p><code class="varname">ConditionNeedsUpdate=</code>
+ takes one of <code class="filename">/var</code>
+ or <code class="filename">/etc</code> as
+ argument, possibly prefixed with a
+ "<code class="literal">!</code>" (for inverting
+ the condition). This condition may be
+ used to conditionalize units on
+ whether the specified directory
+ requires an update because
+ <code class="filename">/usr</code>'s
+ modification time is newer than the
+ stamp file
+ <code class="filename">.updated</code> in the
+ specified directory. This is useful to
+ implement offline updates of the
+ vendor operating system resources in
+ <code class="filename">/usr</code> that require
+ updating of <code class="filename">/etc</code>
+ or <code class="filename">/var</code> on the
+ next following boot. Units making use
+ of this condition should order
+ themselves before
+ <a href="systemd-update-done.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-update-done.service</span>(8)</span></a>,
+ to make sure they run before the stamp
+ files's modification time gets reset
+ indicating a completed update.</p><p>With
<code class="varname">ConditionPathExists=</code>
a file existence condition is
checked before a unit is started. If
useful for implementation of generator
tools that convert configuration from
an external configuration file format
- into native unit files. Thus
+ into native unit files. This
functionality should not be used in
- normal units.</p></dd></dl></div></div><div class="refsect1"><a name="idm214167695584"></a><h2 id="[Install] Section Options">[Install] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BInstall%5D%20Section%20Options">¶</a></h2><p>Unit file may include a [Install] section, which
+ normal units.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195738800"></a><h2 id="[Install] Section Options">[Install] Section Options<a class="headerlink" title="Permalink to this headline" href="#%5BInstall%5D%20Section%20Options">¶</a></h2><p>Unit file may include a [Install] section, which
carries installation information for the unit. This
section is not interpreted by
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
well.</p><p>This option may be used more
than once, or a space-separated list
of unit names may be
- given.</p></dd></dl></div><p>The following specifiers are interpreted in the
+ given.</p></dd><dt id="DefaultInstance="><span class="term"><code class="varname">DefaultInstance=</code></span><a class="headerlink" title="Permalink to this term" href="#DefaultInstance=">¶</a></dt><dd><p>In template unit files,
+ this specifies for which instance the
+ unit shall be enabled if the template
+ is enabled without any explicitly set
+ instance. This option has no effect in
+ non-template unit files. The specified
+ string must be usable as instance
+ identifier.</p></dd></dl></div><p>The following specifiers are interpreted in the
Install section: %n, %N, %p, %i, %U, %u, %m, %H, %b, %v.
For their meaning see the next section.
- </p></div><div class="refsect1"><a name="idm214167669312"></a><h2 id="Specifiers">Specifiers<a class="headerlink" title="Permalink to this headline" href="#Specifiers">¶</a></h2><p>Many settings resolve specifiers which may be
+ </p></div><div class="refsect1"><a name="idm214195710624"></a><h2 id="Specifiers">Specifiers<a class="headerlink" title="Permalink to this headline" href="#Specifiers">¶</a></h2><p>Many settings resolve specifiers which may be
used to write generic unit files referring to runtime
or unit parameters that are replaced when the unit
files are loaded. The following specifiers are
- understood:</p><div class="table"><a name="idm214167668000"></a><p class="title"><b>Table 3. Specifiers available in unit files</b></p><div class="table-contents"><table summary="Specifiers available in unit files" border="1"><colgroup><col align="left" class="spec"><col align="left" class="mean"><col align="left" class="detail"></colgroup><thead><tr><th align="left">Specifier</th><th align="left">Meaning</th><th align="left">Details</th></tr></thead><tbody><tr><td align="left">"<code class="literal">%n</code>"</td><td align="left">Full unit name</td><td align="left"> </td></tr><tr><td align="left">"<code class="literal">%N</code>"</td><td align="left">Unescaped full unit name</td><td align="left">Same as "<code class="literal">%n</code>", but with escaping undone</td></tr><tr><td align="left">"<code class="literal">%p</code>"</td><td align="left">Prefix name</td><td align="left">For instantiated units, this refers to the string before the "<code class="literal">@</code>" character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed.</td></tr><tr><td align="left">"<code class="literal">%P</code>"</td><td align="left">Unescaped prefix name</td><td align="left">Same as "<code class="literal">%p</code>", but with escaping undone</td></tr><tr><td align="left">"<code class="literal">%i</code>"</td><td align="left">Instance name</td><td align="left">For instantiated units: this is the string between the "<code class="literal">@</code>" character and the suffix of the unit name.</td></tr><tr><td align="left">"<code class="literal">%I</code>"</td><td align="left">Unescaped instance name</td><td align="left">Same as "<code class="literal">%i</code>", but with escaping undone</td></tr><tr><td align="left">"<code class="literal">%f</code>"</td><td align="left">Unescaped filename</td><td align="left">This is either the unescaped instance name (if applicable) with <code class="filename">/</code> prepended (if applicable), or the prefix name prepended with <code class="filename">/</code>.</td></tr><tr><td align="left">"<code class="literal">%c</code>"</td><td align="left">Control group path of the unit</td><td align="left">This path does not include the <code class="filename">/sys/fs/cgroup/systemd/</code> prefix.</td></tr><tr><td align="left">"<code class="literal">%r</code>"</td><td align="left">Control group path of the slice the unit is placed in</td><td align="left">This usually maps to the parent cgroup path of "<code class="literal">%c</code>".</td></tr><tr><td align="left">"<code class="literal">%R</code>"</td><td align="left">Root control group path below which slices and units are placed</td><td align="left">For system instances, this resolves to <code class="filename">/</code>, except in containers, where this maps to the container's root control group path.</td></tr><tr><td align="left">"<code class="literal">%t</code>"</td><td align="left">Runtime directory</td><td align="left">This is either <code class="filename">/run</code> (for the system manager) or the path "<code class="literal">$XDG_RUNTIME_DIR</code>" resolves to (for user managers).</td></tr><tr><td align="left">"<code class="literal">%u</code>"</td><td align="left">User name</td><td align="left">This is the name of the configured user of the unit, or (if none is set) the user running the systemd instance.</td></tr><tr><td align="left">"<code class="literal">%U</code>"</td><td align="left">User UID</td><td align="left">This is the numeric UID of the configured user of the unit, or (if none is set) the user running the systemd user instance. Note that this specifier is not available for units run by the systemd system instance (as opposed to those run by a systemd user instance), unless the user has been configured as a numeric UID in the first place or the configured user is the root user.</td></tr><tr><td align="left">"<code class="literal">%h</code>"</td><td align="left">User home directory</td><td align="left">This is the home directory of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to "<code class="literal">%U</code>", this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</td></tr><tr><td align="left">"<code class="literal">%s</code>"</td><td align="left">User shell</td><td align="left">This is the shell of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to "<code class="literal">%U</code>", this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</td></tr><tr><td align="left">"<code class="literal">%m</code>"</td><td align="left">Machine ID</td><td align="left">The machine ID of the running system, formatted as string. See <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%b</code>"</td><td align="left">Boot ID</td><td align="left">The boot ID of the running system, formatted as string. See <a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%H</code>"</td><td align="left">Host name</td><td align="left">The hostname of the running system at the point in time the unit configuation is loaded.</td></tr><tr><td align="left">"<code class="literal">%v</code>"</td><td align="left">Kernel release</td><td align="left">Identical to <span class="command"><strong>uname -r</strong></span> output</td></tr><tr><td align="left">"<code class="literal">%%</code>"</td><td align="left">Single percent sign</td><td align="left">Use "<code class="literal">%%</code>" in place of "<code class="literal">%</code>" to specify a single percent sign.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect1"><a name="idm214167609920"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ understood:</p><div class="table"><a name="idm214195709312"></a><p class="title"><b>Table 3. Specifiers available in unit files</b></p><div class="table-contents"><table summary="Specifiers available in unit files" border="1"><colgroup><col align="left" class="spec"><col align="left" class="mean"><col align="left" class="detail"></colgroup><thead><tr><th align="left">Specifier</th><th align="left">Meaning</th><th align="left">Details</th></tr></thead><tbody><tr><td align="left">"<code class="literal">%n</code>"</td><td align="left">Full unit name</td><td align="left"> </td></tr><tr><td align="left">"<code class="literal">%N</code>"</td><td align="left">Unescaped full unit name</td><td align="left">Same as "<code class="literal">%n</code>", but with escaping undone</td></tr><tr><td align="left">"<code class="literal">%p</code>"</td><td align="left">Prefix name</td><td align="left">For instantiated units, this refers to the string before the "<code class="literal">@</code>" character of the unit name. For non-instantiated units, this refers to the name of the unit with the type suffix removed.</td></tr><tr><td align="left">"<code class="literal">%P</code>"</td><td align="left">Unescaped prefix name</td><td align="left">Same as "<code class="literal">%p</code>", but with escaping undone</td></tr><tr><td align="left">"<code class="literal">%i</code>"</td><td align="left">Instance name</td><td align="left">For instantiated units: this is the string between the "<code class="literal">@</code>" character and the suffix of the unit name.</td></tr><tr><td align="left">"<code class="literal">%I</code>"</td><td align="left">Unescaped instance name</td><td align="left">Same as "<code class="literal">%i</code>", but with escaping undone</td></tr><tr><td align="left">"<code class="literal">%f</code>"</td><td align="left">Unescaped filename</td><td align="left">This is either the unescaped instance name (if applicable) with <code class="filename">/</code> prepended (if applicable), or the prefix name prepended with <code class="filename">/</code>.</td></tr><tr><td align="left">"<code class="literal">%c</code>"</td><td align="left">Control group path of the unit</td><td align="left">This path does not include the <code class="filename">/sys/fs/cgroup/systemd/</code> prefix.</td></tr><tr><td align="left">"<code class="literal">%r</code>"</td><td align="left">Control group path of the slice the unit is placed in</td><td align="left">This usually maps to the parent cgroup path of "<code class="literal">%c</code>".</td></tr><tr><td align="left">"<code class="literal">%R</code>"</td><td align="left">Root control group path below which slices and units are placed</td><td align="left">For system instances, this resolves to <code class="filename">/</code>, except in containers, where this maps to the container's root control group path.</td></tr><tr><td align="left">"<code class="literal">%t</code>"</td><td align="left">Runtime directory</td><td align="left">This is either <code class="filename">/run</code> (for the system manager) or the path "<code class="literal">$XDG_RUNTIME_DIR</code>" resolves to (for user managers).</td></tr><tr><td align="left">"<code class="literal">%u</code>"</td><td align="left">User name</td><td align="left">This is the name of the configured user of the unit, or (if none is set) the user running the systemd instance.</td></tr><tr><td align="left">"<code class="literal">%U</code>"</td><td align="left">User UID</td><td align="left">This is the numeric UID of the configured user of the unit, or (if none is set) the user running the systemd user instance. Note that this specifier is not available for units run by the systemd system instance (as opposed to those run by a systemd user instance), unless the user has been configured as a numeric UID in the first place or the configured user is the root user.</td></tr><tr><td align="left">"<code class="literal">%h</code>"</td><td align="left">User home directory</td><td align="left">This is the home directory of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to "<code class="literal">%U</code>", this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</td></tr><tr><td align="left">"<code class="literal">%s</code>"</td><td align="left">User shell</td><td align="left">This is the shell of the configured user of the unit, or (if none is set) the user running the systemd user instance. Similar to "<code class="literal">%U</code>", this specifier is not available for units run by the systemd system instance, unless the configured user is the root user.</td></tr><tr><td align="left">"<code class="literal">%m</code>"</td><td align="left">Machine ID</td><td align="left">The machine ID of the running system, formatted as string. See <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%b</code>"</td><td align="left">Boot ID</td><td align="left">The boot ID of the running system, formatted as string. See <a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%H</code>"</td><td align="left">Host name</td><td align="left">The hostname of the running system at the point in time the unit configuation is loaded.</td></tr><tr><td align="left">"<code class="literal">%v</code>"</td><td align="left">Kernel release</td><td align="left">Identical to <span class="command"><strong>uname -r</strong></span> output</td></tr><tr><td align="left">"<code class="literal">%%</code>"</td><td align="left">Single percent sign</td><td align="left">Use "<code class="literal">%%</code>" in place of "<code class="literal">%</code>" to specify a single percent sign.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect1"><a name="idm214195651232"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(8)</span></a>,
<a href="systemd.special.html"><span class="citerefentry"><span class="refentrytitle">systemd.special</span>(7)</span></a>,
<term><varname>ConditionSecurity=</varname></term>
<term><varname>ConditionCapability=</varname></term>
<term><varname>ConditionACPower=</varname></term>
+ <term><varname>ConditionNeedsUpdate=</varname></term>
<term><varname>ConditionPathExists=</varname></term>
<term><varname>ConditionPathExistsGlob=</varname></term>
<term><varname>ConditionPathIsDirectory=</varname></term>
all AC connectors are disconnected
from a power source.</para>
+ <para><varname>ConditionNeedsUpdate=</varname>
+ takes one of <filename>/var</filename>
+ or <filename>/etc</filename> as
+ argument, possibly prefixed with a
+ <literal>!</literal> (for inverting
+ the condition). This condition may be
+ used to conditionalize units on
+ whether the specified directory
+ requires an update because
+ <filename>/usr</filename>'s
+ modification time is newer than the
+ stamp file
+ <filename>.updated</filename> in the
+ specified directory. This is useful to
+ implement offline updates of the
+ vendor operating system resources in
+ <filename>/usr</filename> that require
+ updating of <filename>/etc</filename>
+ or <filename>/var</filename> on the
+ next following boot. Units making use
+ of this condition should order
+ themselves before
+ <citerefentry><refentrytitle>systemd-update-done.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ to make sure they run before the stamp
+ files's modification time gets reset
+ indicating a completed update.</para>
+
<para>With
<varname>ConditionPathExists=</varname>
a file existence condition is
useful for implementation of generator
tools that convert configuration from
an external configuration file format
- into native unit files. Thus
+ into native unit files. This
functionality should not be used in
normal units.</para></listitem>
</varlistentry>
of unit names may be
given.</para></listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><varname>DefaultInstance=</varname></term>
+
+ <listitem><para>In template unit files,
+ this specifies for which instance the
+ unit shall be enabled if the template
+ is enabled without any explicitly set
+ instance. This option has no effect in
+ non-template unit files. The specified
+ string must be usable as instance
+ identifier.</para></listitem>
+ </varlistentry>
</variablelist>
<para>The following specifiers are interpreted in the
--- /dev/null
+'\" t
+.TH "SYSUSERS\&.D" "5" "" "systemd 215" "sysusers.d"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+sysusers.d \- Declarative allocation of system users and groups
+.SH "SYNOPSIS"
+.PP
+/usr/lib/sysusers\&.d/*\&.conf
+.SH "DESCRIPTION"
+.PP
+\fBsystemd\-sysusers\fR
+uses the files from
+/usr/lib/sysusers\&.d/
+to create system users and groups at package installation or boot time\&. This tool may be used for allocating system users and groups only, it is not useful for creating non\-system users and groups, as it accessed
+/etc/passwd
+and
+/etc/group
+directly, bypassing any more complex user database, for example any database involving NIS or LDAP\&.
+.SH "FILE FORMAT"
+.PP
+Each file shall be named in the style of
+\fIpackage\fR\&.conf\&.
+.PP
+All files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in\&. If multiple files specify the same user or group, the entry in the file with the lexicographically earliest name will be applied, all all other conflicting entries will be logged as errors\&. Users and groups are processed in the order they are listed\&.
+.PP
+The file format is one line per user or group containing name, ID and GECOS field description:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# Type Name ID GECOS
+u httpd 440 "HTTP User"
+u authd /usr/bin/authd "Authorization user"
+g input \- \-
+m authd input
+.fi
+.if n \{\
+.RE
+.\}
+.SS "Type"
+.PP
+The type consists of a single letter\&. The following line types are understood:
+.PP
+\fIu\fR
+.RS 4
+Create a system user and group of the specified name should they not exist yet\&. The user\*(Aqs primary group will be set to the group bearing the same name\&. The user\*(Aqs shell will be set to
+/sbin/login, the home directory to
+/\&. The account will be created disabled, so that logins are not allowed\&.
+.RE
+.PP
+\fIg\fR
+.RS 4
+Create a system group of the specified name should it not exist yet\&. Note that
+\fIu\fR
+implicitly create a matching group\&. The group will be created with no password set\&.
+.RE
+.PP
+\fIm\fR
+.RS 4
+Add a user to a group\&. If the user or group are not existing yet, they will be implicitly created\&.
+.RE
+.SS "Name"
+.PP
+The name field specifies the user or group name\&. It should be be shorter than 256 characters and avoid any non\-ASCII characters, and not begin with a numeric character\&. It is strongly recommended to pick user and group names that are unlikely to clash with normal users created by the administrator\&. A good scheme to guarantee this is by prefixing all system and group names with the underscore, and avoiding too generic names\&.
+.PP
+For
+\fIm\fR
+lines this field should contain the user name to add to a group\&.
+.SS "ID"
+.PP
+For
+\fIu\fR
+and
+\fIg\fR
+the numeric 32bit UID or GID of the user/group\&. Do not use IDs 65535 or 4294967295, as they have special placeholder meanings\&. Specify "\-" for automatic UID/GID allocation for the user or group\&. Alternatively, specify an absolute path in the file system\&. In this case the UID/GID is read from the path\*(Aqs owner/group\&. This is useful to create users whose UID/GID match the owners of pre\-existing files (such as SUID or SGID binaries)\&.
+.PP
+For
+\fIm\fR
+lines this field should contain the group name to add to a user to\&.
+.SS "GECOS"
+.PP
+A short, descriptive string for users to be created, enclosed in quotation marks\&. Note that this field may not contain colons\&.
+.PP
+Only applies to lines of type
+\fIu\fR
+and should otherwise be left unset\&.
+.SH "SEE ALSO"
+.PP
+\fBsystemd\fR(1),
+\fBsystemd-sysusers\fR(8)
--- /dev/null
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>sysusers.d</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
+ a.headerlink {
+ color: #c60f0f;
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+ visibility: hidden;
+ }
+
+ a.headerlink:hover {
+ background-color: #c60f0f;
+ color: white;
+ }
+
+ h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
+ visibility: visible;
+ }
+ </style><a href="index.html">Index </a>·
+ <a href="systemd.directives.html">Directives </a>·
+ <a href="../python-systemd/index.html">Python </a>·
+ <a href="../libudev/index.html">libudev </a>·
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sysusers.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sysusers.d — Declarative allocation of system users and groups</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/usr/lib/sysusers.d/*.conf</code></p></div><div class="refsect1"><a name="idm214170527280"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-sysusers</strong></span> uses the
+ files from <code class="filename">/usr/lib/sysusers.d/</code>
+ to create system users and groups at package
+ installation or boot time. This tool may be used for
+ allocating system users and groups only, it is not
+ useful for creating non-system users and groups, as it
+ accessed <code class="filename">/etc/passwd</code> and
+ <code class="filename">/etc/group</code> directly, bypassing
+ any more complex user database, for example any
+ database involving NIS or LDAP.</p></div><div class="refsect1"><a name="idm214170523056"></a><h2 id="File Format">File Format<a class="headerlink" title="Permalink to this headline" href="#File%20Format">¶</a></h2><p>Each file shall be named in the style of
+ <code class="filename"><em class="replaceable"><code>package</code></em>.conf</code>.</p><p>All files are sorted by their filename in
+ lexicographic order, regardless of which of the
+ directories they reside in. If multiple files specify
+ the same user or group, the entry in the file with the
+ lexicographically earliest name will be applied, all
+ all other conflicting entries will be logged as
+ errors. Users and groups are
+ processed in the order they are listed.</p><p>The file format is one line per user or group
+ containing name, ID and GECOS field description:</p><pre class="programlisting"># Type Name ID GECOS
+u httpd 440 "HTTP User"
+u authd /usr/bin/authd "Authorization user"
+g input - -
+m authd input</pre><div class="refsect2"><a name="idm214170518848"></a><h3 id="Type">Type<a class="headerlink" title="Permalink to this headline" href="#Type">¶</a></h3><p>The type consists of a single
+ letter. The following line types are
+ understood:</p><div class="variablelist"><dl class="variablelist"><dt id="u"><span class="term"><code class="varname">u</code></span><a class="headerlink" title="Permalink to this term" href="#u">¶</a></dt><dd><p>Create a
+ system user and group of the
+ specified name should they not
+ exist yet. The user's primary
+ group will be set to the group
+ bearing the same name. The
+ user's shell will be set to
+ <code class="filename">/sbin/login</code>,
+ the home directory to
+ <code class="filename">/</code>. The
+ account will be created
+ disabled, so that logins are
+ not allowed.</p></dd><dt id="g"><span class="term"><code class="varname">g</code></span><a class="headerlink" title="Permalink to this term" href="#g">¶</a></dt><dd><p>Create a
+ system group of the specified
+ name should it not exist
+ yet. Note that
+ <code class="varname">u</code>
+ implicitly create a matching
+ group. The group will be
+ created with no password
+ set.</p></dd><dt id="m"><span class="term"><code class="varname">m</code></span><a class="headerlink" title="Permalink to this term" href="#m">¶</a></dt><dd><p>Add a user to
+ a group. If the user or group
+ are not existing yet, they
+ will be implicitly
+ created.</p></dd></dl></div></div><div class="refsect2"><a name="idm214174461584"></a><h3 id="Name">Name<a class="headerlink" title="Permalink to this headline" href="#Name">¶</a></h3><p>The name field specifies the user or
+ group name. It should be be shorter than 256
+ characters and avoid any non-ASCII characters,
+ and not begin with a numeric character. It is
+ strongly recommended to pick user and group
+ names that are unlikely to clash with normal
+ users created by the administrator. A good
+ scheme to guarantee this is by prefixing all
+ system and group names with the underscore,
+ and avoiding too generic names.</p><p>For <code class="varname">m</code> lines this
+ field should contain the user name to add to a
+ group.</p></div><div class="refsect2"><a name="idm214174458848"></a><h3 id="ID">ID<a class="headerlink" title="Permalink to this headline" href="#ID">¶</a></h3><p>For <code class="varname">u</code> and
+ <code class="varname">g</code> the numeric 32bit UID or
+ GID of the user/group. Do not use IDs 65535 or
+ 4294967295, as they have special placeholder
+ meanings. Specify "-" for automatic UID/GID
+ allocation for the user or
+ group. Alternatively, specify an absolute path
+ in the file system. In this case the UID/GID
+ is read from the path's owner/group. This is
+ useful to create users whose UID/GID match the
+ owners of pre-existing files (such as SUID or
+ SGID binaries).</p><p>For <code class="varname">m</code> lines this
+ field should contain the group name to add to
+ a user to.</p></div><div class="refsect2"><a name="idm214174454560"></a><h3 id="GECOS">GECOS<a class="headerlink" title="Permalink to this headline" href="#GECOS">¶</a></h3><p>A short, descriptive string for users to
+ be created, enclosed in quotation marks. Note
+ that this field may not contain colons.</p><p>Only applies to lines of type
+ <code class="varname">u</code> and should otherwise be
+ left unset.</p></div></div><div class="refsect1"><a name="idm214174452288"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
+ <a href="systemd-sysusers.html"><span class="citerefentry"><span class="refentrytitle">systemd-sysusers</span>(8)</span></a>
+ </p></div></div></body></html>
--- /dev/null
+<?xml version="1.0"?>
+<!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+<!--
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+<refentry id="sysusers.d">
+
+ <refentryinfo>
+ <title>sysusers.d</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>sysusers.d</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>sysusers.d</refname>
+ <refpurpose>Declarative allocation of system users and groups</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>/usr/lib/sysusers.d/*.conf</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><command>systemd-sysusers</command> uses the
+ files from <filename>/usr/lib/sysusers.d/</filename>
+ to create system users and groups at package
+ installation or boot time. This tool may be used for
+ allocating system users and groups only, it is not
+ useful for creating non-system users and groups, as it
+ accessed <filename>/etc/passwd</filename> and
+ <filename>/etc/group</filename> directly, bypassing
+ any more complex user database, for example any
+ database involving NIS or LDAP.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>File Format</title>
+
+ <para>Each file shall be named in the style of
+ <filename><replaceable>package</replaceable>.conf</filename>.</para>
+
+ <para>All files are sorted by their filename in
+ lexicographic order, regardless of which of the
+ directories they reside in. If multiple files specify
+ the same user or group, the entry in the file with the
+ lexicographically earliest name will be applied, all
+ all other conflicting entries will be logged as
+ errors. Users and groups are
+ processed in the order they are listed.</para>
+
+ <para>The file format is one line per user or group
+ containing name, ID and GECOS field description:</para>
+
+ <programlisting># Type Name ID GECOS
+u httpd 440 "HTTP User"
+u authd /usr/bin/authd "Authorization user"
+g input - -
+m authd input</programlisting>
+
+ <refsect2>
+ <title>Type</title>
+
+ <para>The type consists of a single
+ letter. The following line types are
+ understood:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>u</varname></term>
+ <listitem><para>Create a
+ system user and group of the
+ specified name should they not
+ exist yet. The user's primary
+ group will be set to the group
+ bearing the same name. The
+ user's shell will be set to
+ <filename>/sbin/login</filename>,
+ the home directory to
+ <filename>/</filename>. The
+ account will be created
+ disabled, so that logins are
+ not allowed.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>g</varname></term>
+ <listitem><para>Create a
+ system group of the specified
+ name should it not exist
+ yet. Note that
+ <varname>u</varname>
+ implicitly create a matching
+ group. The group will be
+ created with no password
+ set.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>m</varname></term>
+ <listitem><para>Add a user to
+ a group. If the user or group
+ are not existing yet, they
+ will be implicitly
+ created.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
+ <refsect2>
+ <title>Name</title>
+
+ <para>The name field specifies the user or
+ group name. It should be be shorter than 256
+ characters and avoid any non-ASCII characters,
+ and not begin with a numeric character. It is
+ strongly recommended to pick user and group
+ names that are unlikely to clash with normal
+ users created by the administrator. A good
+ scheme to guarantee this is by prefixing all
+ system and group names with the underscore,
+ and avoiding too generic names.</para>
+
+ <para>For <varname>m</varname> lines this
+ field should contain the user name to add to a
+ group.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>ID</title>
+
+ <para>For <varname>u</varname> and
+ <varname>g</varname> the numeric 32bit UID or
+ GID of the user/group. Do not use IDs 65535 or
+ 4294967295, as they have special placeholder
+ meanings. Specify "-" for automatic UID/GID
+ allocation for the user or
+ group. Alternatively, specify an absolute path
+ in the file system. In this case the UID/GID
+ is read from the path's owner/group. This is
+ useful to create users whose UID/GID match the
+ owners of pre-existing files (such as SUID or
+ SGID binaries).</para>
+
+ <para>For <varname>m</varname> lines this
+ field should contain the group name to add to
+ a user to.</para>
+ </refsect2>
+
+ <refsect2>
+ <title>GECOS</title>
+
+ <para>A short, descriptive string for users to
+ be created, enclosed in quotation marks. Note
+ that this field may not contain colons.</para>
+
+ <para>Only applies to lines of type
+ <varname>u</varname> and should otherwise be
+ left unset.</para>
+ </refsect2>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-sysusers</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
'\" t
-.TH "TELINIT" "8" "" "systemd 214" "telinit"
+.TH "TELINIT" "8" "" "systemd 215" "telinit"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="telinit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>telinit — Change SysV runlevel</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">telinit [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214169975632"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>telinit</strong></span> may be used to change
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="telinit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>telinit — Change SysV runlevel</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">telinit [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214191885648"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>telinit</strong></span> may be used to change
the SysV system runlevel. Since the concept of SysV
runlevels is obsolete the runlevel requests
will be transparently translated into systemd unit
- activation requests.</p></div><div class="refsect1"><a name="idm214169973616"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
+ activation requests.</p></div><div class="refsect1"><a name="idm214191883632"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--help"><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#--help">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--no-wall"><span class="term"><code class="option">--no-wall</code></span><a class="headerlink" title="Permalink to this term" href="#--no-wall">¶</a></dt><dd><p>Do not send wall
message before
reboot/halt/power-off.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="0"><span class="term"><span class="command"><strong>0</strong></span></span><a class="headerlink" title="Permalink to this term" href="#0">¶</a></dt><dd><p>Power-off the
reexecute daemon and deserialize state
again. This is equivalent to
<span class="command"><strong>systemctl
- daemon-reexec</strong></span>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214173836432"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214173835248"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This is a legacy command available for compatibility
+ daemon-reexec</strong></span>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214195797504"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214195796320"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>This is a legacy command available for compatibility
only. It should not be used anymore, as the concept of
- runlevels is obsolete.</p></div><div class="refsect1"><a name="idm214173833888"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ runlevels is obsolete.</p></div><div class="refsect1"><a name="idm214195794960"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemctl.html"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
<a href="wall.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
'\" t
-.TH "TIMEDATECTL" "1" "" "systemd 214" "timedatectl"
+.TH "TIMEDATECTL" "1" "" "systemd 215" "timedatectl"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.PP
\fB\-H\fR, \fB\-\-host=\fR
.RS 4
-Execute the operation remotely\&. Specify a hostname, or username and hostname separated by
-"@", to connect to\&. This will use SSH to talk to the remote machine manager instance\&.
+Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by
+"@", to connect to\&. The hostname may optionally be suffixed by a container name, separated by
+":", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with
+\fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&.
.RE
.PP
\fB\-M\fR, \fB\-\-machine=\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="timedatectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>timedatectl — Control the system time and date</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">timedatectl [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214173771152"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>timedatectl</strong></span> may be used to
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="timedatectl"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>timedatectl — Control the system time and date</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">timedatectl [OPTIONS...] {COMMAND}</code> </p></div></div><div class="refsect1"><a name="idm214188218784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>timedatectl</strong></span> may be used to
query and change the system clock and its
- settings.</p></div><div class="refsect1"><a name="idm214173064848"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
+ settings.</p></div><div class="refsect1"><a name="idm214188216928"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="--no-ask-password"><span class="term"><code class="option">--no-ask-password</code></span><a class="headerlink" title="Permalink to this term" href="#--no-ask-password">¶</a></dt><dd><p>Do not query the user
for authentication for privileged
operations.</p></dd><dt id="--adjust-system-clock"><span class="term"><code class="option">--adjust-system-clock</code></span><a class="headerlink" title="Permalink to this term" href="#--adjust-system-clock">¶</a></dt><dd><p>If
<span class="command"><strong>set-local-rtc</strong></span> is
RTC again, taking the new setting into
account. Otherwise, the RTC is
synchronized from the system
- clock.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or
+ clock.</p></dd><dt id="-H"><span class="term"><code class="option">-H</code>, </span><span class="term"><code class="option">--host=</code></span><a class="headerlink" title="Permalink to this term" href="#-H">¶</a></dt><dd><p><a name="host-text"></a>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by "<code class="literal">@</code>", to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by "<code class="literal">:</code>", which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <span class="command"><strong>machinectl -H
+ <em class="replaceable"><code>HOST</code></em></strong></span>.</p></dd><dt id="-M"><span class="term"><code class="option">-M</code>, </span><span class="term"><code class="option">--machine=</code></span><a class="headerlink" title="Permalink to this term" href="#-M">¶</a></dt><dd><p><a name="machine-text"></a>Execute operation on a local container. Specify a
container name to connect to.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p><a name="help-text"></a>Print a short help text and exit.
</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p><a name="version-text"></a>Print a short version string and exit.</p></dd><dt id="--no-pager"><span class="term"><code class="option">--no-pager</code></span><a class="headerlink" title="Permalink to this term" href="#--no-pager">¶</a></dt><dd><p>Do not pipe output into a pager.</p></dd></dl></div><p>The following commands are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="status"><span class="term"><span class="command"><strong>status</strong></span></span><a class="headerlink" title="Permalink to this term" href="#status">¶</a></dt><dd><p>Show current settings
of the system clock and
argument. Controls whether NTP based
network time synchronization is
enabled (if
- available).</p></dd></dl></div></div><div class="refsect1"><a name="idm214173280544"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
- code otherwise.</p></div><div class="refsect1"><a name="idm214156331056"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
+ available).</p></dd></dl></div></div><div class="refsect1"><a name="idm214192134048"></a><h2 id="Exit status">Exit status<a class="headerlink" title="Permalink to this headline" href="#Exit%20status">¶</a></h2><p>On success, 0 is returned, a non-zero failure
+ code otherwise.</p></div><div class="refsect1"><a name="idm214173847264"></a><h2 id="Environment">Environment<a class="headerlink" title="Permalink to this headline" href="#Environment">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$SYSTEMD_PAGER"><span class="term"><code class="varname">$SYSTEMD_PAGER</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_PAGER">¶</a></dt><dd><p>Pager to use when
<code class="option">--no-pager</code> is not given;
overrides <code class="varname">$PAGER</code>. Setting
this to an empty string or the value
<code class="option">--no-pager</code>.</p></dd><dt id="$SYSTEMD_LESS"><span class="term"><code class="varname">$SYSTEMD_LESS</code></span><a class="headerlink" title="Permalink to this term" href="#%24SYSTEMD_LESS">¶</a></dt><dd><p>Override the default
options passed to
<span class="command"><strong>less</strong></span>
- ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214174396832"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Show current settings:
+ ("<code class="literal">FRSXMK</code>").</p></dd></dl></div></div><div class="refsect1"><a name="idm214192132352"></a><h2 id="Examples">Examples<a class="headerlink" title="Permalink to this headline" href="#Examples">¶</a></h2><p>Show current settings:
</p><pre class="programlisting">$ timedatectl
Local time: Fri, 2012-11-02 09:26:46 CET
Universal time: Fri, 2012-11-02 08:26:46 UTC
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
Active: active (running) since Fri, 2012-11-02 09:36:25 CET; 5s ago
...</pre><p>
- </p></div><div class="refsect1"><a name="idm214172994464"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ </p></div><div class="refsect1"><a name="idm214192127008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="hwclock.html"><span class="citerefentry"><span class="refentrytitle">hwclock</span>(8)</span></a>,
<a href="date.html"><span class="citerefentry"><span class="refentrytitle">date</span>(1)</span></a>,
'\" t
-.TH "TMPFILES\&.D" "5" "" "systemd 214" "tmpfiles.d"
+.TH "TMPFILES\&.D" "5" "" "systemd 215" "tmpfiles.d"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
/usr/lib/tmpfiles\&.d\&. Packages should install their configuration files in
/usr/lib/tmpfiles\&.d\&. Files in
/etc/tmpfiles\&.d
-are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages\&. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in\&. If multiple files specify the same path, the entry in the file with the lexicographically earliest name will be applied, all all other conflicting entries will be logged as errors\&. When two lines are prefix and suffix of each other, then the prefix is always processed first, the suffix later\&. Otherwise the files/directories are processed in the order they are listed\&.
+are reserved for the local administrator, who may use this logic to override the configuration files installed by vendor packages\&. All configuration files are sorted by their filename in lexicographic order, regardless of which of the directories they reside in\&. If multiple files specify the same path, the entry in the file with the lexicographically earliest name will be applied, all all other conflicting entries will be logged as errors\&. When two lines are prefix and suffix of each other, then the prefix is always processed first, the suffix later\&. Otherwise, the files/directories are processed in the order they are listed\&.
.PP
If the administrator wants to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to
/dev/null
Create or empty a directory\&.
.RE
.PP
-\fIp\fR
+\fIp\fR, \fIp+\fR
.RS 4
-Create a named pipe (FIFO) if it does not exist yet\&.
+Create a named pipe (FIFO) if it does not exist yet\&. If suffixed with
+\fI+\fR
+and a file already exists where the pipe is to be created, it will be removed and be replaced by the pipe\&.
.RE
.PP
-\fIL\fR
+\fIL\fR, \fIL+\fR
.RS 4
-Create a symlink if it does not exist yet\&.
+Create a symlink if it does not exist yet\&. If suffixed with
+\fI+\fR
+and a file already exists where the symlink is to be created, it will be removed and be replaced by the symlink\&. If the argument is omitted, symlinks to files with the same name residing in the directory
+/usr/share/factory/
+are created\&.
.RE
.PP
-\fIc\fR
+\fIc\fR, \fIc+\fR
.RS 4
-Create a character device node if it does not exist yet\&.
+Create a character device node if it does not exist yet\&. If suffixed with
+\fI+\fR
+and a file already exists where the device node is to be created, it will be removed and be replaced by the device node\&.
.RE
.PP
-\fIb\fR
+\fIb\fR, \fIb+\fR
.RS 4
-Create a block device node if it does not exist yet\&.
+Create a block device node if it does not exist yet\&. If suffixed with
+\fI+\fR
+and a file already exists where the device node is to be created, it will be removed and be replaced by the device node\&.
.RE
.PP
\fIC\fR
.RS 4
-Recursively copy a file or directory, if the destination files or directories don\*(Aqt exist yet\&.
+Recursively copy a file or directory, if the destination files or directories do not exist yet\&. Note that this command will not descend into subdirectories if the destination directory already exists\&. Instead, the entire copy operation is skipped\&. If the argument is omitted, files from the source directory
+/usr/share/factory/
+with the same name are copied\&.
.RE
.PP
\fIx\fR
lines\&.
.PP
Optionally, if prefixed with
-"~"
-the access mode is masked based on the already set access bits for existing file or directories: if the existing file has all executable bits unset then all executable bits are removed from the new access mode, too\&. Similar, if all read bits are removed from the old access mode they will be removed from the new access mode too, and if all write bits are removed, they will be removed from the new access mode too\&. In addition the sticky/suid/gid bit is removed unless applied to a directory\&. This functionality is particularly useful in conjunction with
+"~", the access mode is masked based on the already set access bits for existing file or directories: if the existing file has all executable bits unset, all executable bits are removed from the new access mode, too\&. Similarly, if all read bits are removed from the old access mode, they will be removed from the new access mode too, and if all write bits are removed, they will be removed from the new access mode too\&. In addition, the sticky/SUID/SGID bit is removed unless applied to a directory\&. This functionality is particularly useful in conjunction with
\fIZ\fR\&.
.SS "UID, GID"
.PP
\fIF\fR, and
\fIw\fR
may be used to specify a short string that is written to the file, suffixed by a newline\&. For
-\fIC\fR
-specifies the source file or directory\&. Ignored for all other lines\&.
+\fIC\fR, specifies the source file or directory\&. Ignored for all other lines\&.
.SH "EXAMPLE"
.PP
\fBExample\ \&1.\ \&/etc/tmpfiles.d/screen.conf example\fR
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="tmpfiles.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>tmpfiles.d — Configuration for creation, deletion and
- cleaning of volatile and temporary files</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/tmpfiles.d/*.conf</code></p><p><code class="filename">/run/tmpfiles.d/*.conf</code></p><p><code class="filename">/usr/lib/tmpfiles.d/*.conf</code></p></div><div class="refsect1"><a name="idm214168874640"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> uses the
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="tmpfiles.d"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>tmpfiles.d — Configuration for creation, deletion and
+ cleaning of volatile and temporary files</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/tmpfiles.d/*.conf</code></p><p><code class="filename">/run/tmpfiles.d/*.conf</code></p><p><code class="filename">/usr/lib/tmpfiles.d/*.conf</code></p></div><div class="refsect1"><a name="idm214189249856"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>systemd-tmpfiles</strong></span> uses the
configuration files from the above directories to describe the
creation, cleaning and removal of volatile and
temporary files and directories which usually reside
consider declaring them in their unit files using
<code class="varname">RuntimeDirectory=</code>
(see <a href="systemd.exec.html"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a> for details),
- if this is feasible.</p></div><div class="refsect1"><a name="idm214168863376"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>Each configuration file shall be named in the
+ if this is feasible.</p></div><div class="refsect1"><a name="idm214188157328"></a><h2 id="Configuration Format">Configuration Format<a class="headerlink" title="Permalink to this headline" href="#Configuration%20Format">¶</a></h2><p>Each configuration file shall be named in the
style of
<code class="filename"><em class="replaceable"><code>package</code></em>.conf</code>
or
all other conflicting entries will be logged as
errors. When two lines are prefix and suffix of each
other, then the prefix is always processed first, the
- suffix later. Otherwise the files/directories are
+ suffix later. Otherwise, the files/directories are
processed in the order they are listed.</p><p>If the administrator wants to disable a
configuration file supplied by the vendor, the
recommended way is to place a symlink to
containing type, path, mode, ownership, age, and argument
fields:</p><pre class="programlisting">#Type Path Mode UID GID Age Argument
d /run/user 0755 root root 10d -
-L /tmp/foobar - - - - /dev/null</pre><div class="refsect2"><a name="idm214172751296"></a><h3 id="Type">Type<a class="headerlink" title="Permalink to this headline" href="#Type">¶</a></h3><p>The type consists of a single letter and
+L /tmp/foobar - - - - /dev/null</pre><div class="refsect2"><a name="idm214192046416"></a><h3 id="Type">Type<a class="headerlink" title="Permalink to this headline" href="#Type">¶</a></h3><p>The type consists of a single letter and
optionally an exclamation mark.</p><p>The following line types are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="f"><span class="term"><code class="varname">f</code></span><a class="headerlink" title="Permalink to this term" href="#f">¶</a></dt><dd><p>Create a file if it does not exist yet. If the argument parameter is given, it will be written to the file.</p></dd><dt id="F"><span class="term"><code class="varname">F</code></span><a class="headerlink" title="Permalink to this term" href="#F">¶</a></dt><dd><p>Create or truncate a file. If the argument parameter is given, it will be written to the file.</p></dd><dt id="w"><span class="term"><code class="varname">w</code></span><a class="headerlink" title="Permalink to this term" href="#w">¶</a></dt><dd><p>Write the argument parameter to a file, if the file exists.
Lines of this type accept shell-style globs in place of normal path
names. The argument parameter will be written without a trailing
- newline. C-style backslash escapes are interpreted.</p></dd><dt id="d"><span class="term"><code class="varname">d</code></span><a class="headerlink" title="Permalink to this term" href="#d">¶</a></dt><dd><p>Create a directory if it does not exist yet.</p></dd><dt id="D"><span class="term"><code class="varname">D</code></span><a class="headerlink" title="Permalink to this term" href="#D">¶</a></dt><dd><p>Create or empty a directory.</p></dd><dt id="p"><span class="term"><code class="varname">p</code></span><a class="headerlink" title="Permalink to this term" href="#p">¶</a></dt><dd><p>Create a named pipe (FIFO) if it does not exist yet.</p></dd><dt id="L"><span class="term"><code class="varname">L</code></span><a class="headerlink" title="Permalink to this term" href="#L">¶</a></dt><dd><p>Create a symlink if it does not exist yet.</p></dd><dt id="c"><span class="term"><code class="varname">c</code></span><a class="headerlink" title="Permalink to this term" href="#c">¶</a></dt><dd><p>Create a character device node if it does not exist yet.</p></dd><dt id="b"><span class="term"><code class="varname">b</code></span><a class="headerlink" title="Permalink to this term" href="#b">¶</a></dt><dd><p>Create a block device node if it does not exist yet.</p></dd><dt id="C"><span class="term"><code class="varname">C</code></span><a class="headerlink" title="Permalink to this term" href="#C">¶</a></dt><dd><p>Recursively copy a file or directory, if the destination files or directories don't exist yet.</p></dd><dt id="x"><span class="term"><code class="varname">x</code></span><a class="headerlink" title="Permalink to this term" href="#x">¶</a></dt><dd><p>Ignore a path
+ newline. C-style backslash escapes are interpreted.</p></dd><dt id="d"><span class="term"><code class="varname">d</code></span><a class="headerlink" title="Permalink to this term" href="#d">¶</a></dt><dd><p>Create a directory if it does not exist yet.</p></dd><dt id="D"><span class="term"><code class="varname">D</code></span><a class="headerlink" title="Permalink to this term" href="#D">¶</a></dt><dd><p>Create or empty a directory.</p></dd><dt id="p"><span class="term"><code class="varname">p</code>, </span><span class="term"><code class="varname">p+</code></span><a class="headerlink" title="Permalink to this term" href="#p">¶</a></dt><dd><p>Create a named
+ pipe (FIFO) if it does not
+ exist yet. If suffixed with
+ <code class="varname">+</code> and a
+ file already exists where the
+ pipe is to be created, it will
+ be removed and be replaced by
+ the pipe.</p></dd><dt id="L"><span class="term"><code class="varname">L</code>, </span><span class="term"><code class="varname">L+</code></span><a class="headerlink" title="Permalink to this term" href="#L">¶</a></dt><dd><p>Create a
+ symlink if it does not exist
+ yet. If suffixed with
+ <code class="varname">+</code> and a
+ file already exists where the
+ symlink is to be created, it
+ will be removed and be
+ replaced by the
+ symlink. If the argument is omitted,
+ symlinks to files with the same name
+ residing in the directory
+ <code class="filename">/usr/share/factory/</code>
+ are created.</p></dd><dt id="c"><span class="term"><code class="varname">c</code>, </span><span class="term"><code class="varname">c+</code></span><a class="headerlink" title="Permalink to this term" href="#c">¶</a></dt><dd><p>Create a
+ character device node if it
+ does not exist yet. If
+ suffixed with
+ <code class="varname">+</code> and a
+ file already exists where the
+ device node is to be created,
+ it will be removed and be
+ replaced by the device
+ node.</p></dd><dt id="b"><span class="term"><code class="varname">b</code>, </span><span class="term"><code class="varname">b+</code></span><a class="headerlink" title="Permalink to this term" href="#b">¶</a></dt><dd><p>Create a block
+ device node if it does not
+ exist yet. If suffixed with
+ <code class="varname">+</code> and a
+ file already exists where the
+ device node is to be created,
+ it will be removed and be
+ replaced by the device
+ node.</p></dd><dt id="C"><span class="term"><code class="varname">C</code></span><a class="headerlink" title="Permalink to this term" href="#C">¶</a></dt><dd><p>Recursively
+ copy a file or directory, if
+ the destination files or
+ directories do not exist
+ yet. Note that this command
+ will not descend into
+ subdirectories if the
+ destination directory already
+ exists. Instead, the entire
+ copy operation is
+ skipped. If the argument is omitted,
+ files from the source directory
+ <code class="filename">/usr/share/factory/</code>
+ with the same name are copied.</p></dd><dt id="x"><span class="term"><code class="varname">x</code></span><a class="headerlink" title="Permalink to this term" href="#x">¶</a></dt><dd><p>Ignore a path
during cleaning. Use this type
to exclude paths from clean-up
as controlled with the Age
r! /tmp/.X[0-9]*-lock</pre><p>
The second line in contrast to the first one
would break a running system, and will only be
- executed with <code class="option">--boot</code>.</p></div><div class="refsect2"><a name="idm214167785216"></a><h3 id="Path">Path<a class="headerlink" title="Permalink to this headline" href="#Path">¶</a></h3><p>The file system path specification supports simple specifier
+ executed with <code class="option">--boot</code>.</p></div><div class="refsect2"><a name="idm214187362048"></a><h3 id="Path">Path<a class="headerlink" title="Permalink to this headline" href="#Path">¶</a></h3><p>The file system path specification supports simple specifier
expansion. The following expansions are
- understood:</p><div class="table"><a name="idm214167784016"></a><p class="title"><b>Table 1. Specifiers available</b></p><div class="table-contents"><table summary="Specifiers available" border="1"><colgroup><col align="left" class="spec"><col align="left" class="mean"><col align="left" class="detail"></colgroup><thead><tr><th align="left">Specifier</th><th align="left">Meaning</th><th align="left">Details</th></tr></thead><tbody><tr><td align="left">"<code class="literal">%m</code>"</td><td align="left">Machine ID</td><td align="left">The machine ID of the running system, formatted as string. See <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%b</code>"</td><td align="left">Boot ID</td><td align="left">The boot ID of the running system, formatted as string. See <a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%H</code>"</td><td align="left">Host name</td><td align="left">The hostname of the running system.</td></tr><tr><td align="left">"<code class="literal">%v</code>"</td><td align="left">Kernel release</td><td align="left">Identical to <span class="command"><strong>uname -r</strong></span> output.</td></tr><tr><td align="left">"<code class="literal">%%</code>"</td><td align="left">Escaped %</td><td align="left">Single percent sign.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect2"><a name="idm214167766304"></a><h3 id="Mode">Mode<a class="headerlink" title="Permalink to this headline" href="#Mode">¶</a></h3><p>The file access mode to use when
+ understood:</p><div class="table"><a name="idm214187360848"></a><p class="title"><b>Table 1. Specifiers available</b></p><div class="table-contents"><table summary="Specifiers available" border="1"><colgroup><col align="left" class="spec"><col align="left" class="mean"><col align="left" class="detail"></colgroup><thead><tr><th align="left">Specifier</th><th align="left">Meaning</th><th align="left">Details</th></tr></thead><tbody><tr><td align="left">"<code class="literal">%m</code>"</td><td align="left">Machine ID</td><td align="left">The machine ID of the running system, formatted as string. See <a href="machine-id.html"><span class="citerefentry"><span class="refentrytitle">machine-id</span>(5)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%b</code>"</td><td align="left">Boot ID</td><td align="left">The boot ID of the running system, formatted as string. See <a href="random.html"><span class="citerefentry"><span class="refentrytitle">random</span>(4)</span></a> for more information.</td></tr><tr><td align="left">"<code class="literal">%H</code>"</td><td align="left">Host name</td><td align="left">The hostname of the running system.</td></tr><tr><td align="left">"<code class="literal">%v</code>"</td><td align="left">Kernel release</td><td align="left">Identical to <span class="command"><strong>uname -r</strong></span> output.</td></tr><tr><td align="left">"<code class="literal">%%</code>"</td><td align="left">Escaped %</td><td align="left">Single percent sign.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="refsect2"><a name="idm214187343136"></a><h3 id="Mode">Mode<a class="headerlink" title="Permalink to this headline" href="#Mode">¶</a></h3><p>The file access mode to use when
creating this file or directory. If omitted or
when set to -, the default is used: 0755 for
directories, 0644 for all other file objects.
ignored for <code class="varname">x</code>,
<code class="varname">r</code>, <code class="varname">R</code>,
<code class="varname">L</code> lines.</p><p>Optionally, if prefixed with
- "<code class="literal">~</code>" the access mode is masked
+ "<code class="literal">~</code>", the access mode is masked
based on the already set access bits for
existing file or directories: if the existing
- file has all executable bits unset then all
+ file has all executable bits unset, all
executable bits are removed from the new
- access mode, too. Similar, if all read bits
- are removed from the old access mode they will
+ access mode, too. Similarly, if all read bits
+ are removed from the old access mode, they will
be removed from the new access mode too, and
if all write bits are removed, they will be
removed from the new access mode too. In
- addition the sticky/suid/gid bit is removed unless
+ addition, the sticky/SUID/SGID bit is removed unless
applied to a directory. This
functionality is particularly useful in
- conjunction with <code class="varname">Z</code>.</p></div><div class="refsect2"><a name="idm214167759424"></a><h3 id="UID, GID">UID, GID<a class="headerlink" title="Permalink to this headline" href="#UID,%20GID">¶</a></h3><p>The user and group to use for this file
+ conjunction with <code class="varname">Z</code>.</p></div><div class="refsect2"><a name="idm214187336352"></a><h3 id="UID, GID">UID, GID<a class="headerlink" title="Permalink to this headline" href="#UID,%20GID">¶</a></h3><p>The user and group to use for this file
or directory. This may either be a numeric
user/group ID or a user or group name. If
omitted or when set to "<code class="literal">-</code>",
parameters are ignored for
<code class="varname">x</code>, <code class="varname">r</code>,
<code class="varname">R</code>, <code class="varname">L</code>
- lines.</p></div><div class="refsect2"><a name="idm214167754784"></a><h3 id="Age">Age<a class="headerlink" title="Permalink to this headline" href="#Age">¶</a></h3><p>The date field, when set, is used to
+ lines.</p></div><div class="refsect2"><a name="idm214187331808"></a><h3 id="Age">Age<a class="headerlink" title="Permalink to this headline" href="#Age">¶</a></h3><p>The date field, when set, is used to
decide what files to delete when cleaning. If
a file or directory is older than the current
time minus the age field, it is deleted. The
is only applied to files and directories one
level inside the directory specified, but not
the files and directories immediately inside
- it.</p></div><div class="refsect2"><a name="idm214167743728"></a><h3 id="Argument">Argument<a class="headerlink" title="Permalink to this headline" href="#Argument">¶</a></h3><p>For <code class="varname">L</code> lines
+ it.</p></div><div class="refsect2"><a name="idm214187320928"></a><h3 id="Argument">Argument<a class="headerlink" title="Permalink to this headline" href="#Argument">¶</a></h3><p>For <code class="varname">L</code> lines
determines the destination path of the
symlink. For <code class="varname">c</code>,
<code class="varname">b</code> determines the
and <code class="varname">w</code> may be used to
specify a short string that is written to the
file, suffixed by a newline. For
- <code class="varname">C</code> specifies the source file
+ <code class="varname">C</code>, specifies the source file
or directory. Ignored for all other
- lines.</p></div></div><div class="refsect1"><a name="idm214167737888"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214167737248"></a><p class="title"><b>Example 1. /etc/tmpfiles.d/screen.conf example</b></p><div class="example-contents"><p><span class="command"><strong>screen</strong></span> needs two directories created at boot with specific modes and ownership.</p><pre class="programlisting">d /run/screens 1777 root root 10d
-d /run/uscreens 0755 root root 10d12h</pre></div></div><br class="example-break"><div class="example"><a name="idm214167734784"></a><p class="title"><b>Example 2. /etc/tmpfiles.d/abrt.conf example</b></p><div class="example-contents"><p><span class="command"><strong>abrt</strong></span> needs a directory created at boot with specific mode and ownership and its content should be preserved.</p><pre class="programlisting">d /var/tmp/abrt 0755 abrt abrt
-x /var/tmp/abrt/*</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214167732256"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ lines.</p></div></div><div class="refsect1"><a name="idm214187315088"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214187314448"></a><p class="title"><b>Example 1. /etc/tmpfiles.d/screen.conf example</b></p><div class="example-contents"><p><span class="command"><strong>screen</strong></span> needs two directories created at boot with specific modes and ownership.</p><pre class="programlisting">d /run/screens 1777 root root 10d
+d /run/uscreens 0755 root root 10d12h</pre></div></div><br class="example-break"><div class="example"><a name="idm214187311984"></a><p class="title"><b>Example 2. /etc/tmpfiles.d/abrt.conf example</b></p><div class="example-contents"><p><span class="command"><strong>abrt</strong></span> needs a directory created at boot with specific mode and ownership and its content should be preserved.</p><pre class="programlisting">d /var/tmp/abrt 0755 abrt abrt
+x /var/tmp/abrt/*</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214187309456"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-tmpfiles.html"><span class="citerefentry"><span class="refentrytitle">systemd-tmpfiles</span>(8)</span></a>,
<a href="systemd-delta.html"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>,
all other conflicting entries will be logged as
errors. When two lines are prefix and suffix of each
other, then the prefix is always processed first, the
- suffix later. Otherwise the files/directories are
+ suffix later. Otherwise, the files/directories are
processed in the order they are listed.</para>
<para>If the administrator wants to disable a
<varlistentry>
<term><varname>p</varname></term>
- <listitem><para>Create a named pipe (FIFO) if it does not exist yet.</para></listitem>
+ <term><varname>p+</varname></term>
+ <listitem><para>Create a named
+ pipe (FIFO) if it does not
+ exist yet. If suffixed with
+ <varname>+</varname> and a
+ file already exists where the
+ pipe is to be created, it will
+ be removed and be replaced by
+ the pipe.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>L</varname></term>
- <listitem><para>Create a symlink if it does not exist yet.</para></listitem>
+ <term><varname>L+</varname></term>
+ <listitem><para>Create a
+ symlink if it does not exist
+ yet. If suffixed with
+ <varname>+</varname> and a
+ file already exists where the
+ symlink is to be created, it
+ will be removed and be
+ replaced by the
+ symlink. If the argument is omitted,
+ symlinks to files with the same name
+ residing in the directory
+ <filename>/usr/share/factory/</filename>
+ are created.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>c</varname></term>
- <listitem><para>Create a character device node if it does not exist yet.</para></listitem>
+ <term><varname>c+</varname></term>
+ <listitem><para>Create a
+ character device node if it
+ does not exist yet. If
+ suffixed with
+ <varname>+</varname> and a
+ file already exists where the
+ device node is to be created,
+ it will be removed and be
+ replaced by the device
+ node.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>b</varname></term>
- <listitem><para>Create a block device node if it does not exist yet.</para></listitem>
+ <term><varname>b+</varname></term>
+ <listitem><para>Create a block
+ device node if it does not
+ exist yet. If suffixed with
+ <varname>+</varname> and a
+ file already exists where the
+ device node is to be created,
+ it will be removed and be
+ replaced by the device
+ node.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>C</varname></term>
- <listitem><para>Recursively copy a file or directory, if the destination files or directories don't exist yet.</para></listitem>
+ <listitem><para>Recursively
+ copy a file or directory, if
+ the destination files or
+ directories do not exist
+ yet. Note that this command
+ will not descend into
+ subdirectories if the
+ destination directory already
+ exists. Instead, the entire
+ copy operation is
+ skipped. If the argument is omitted,
+ files from the source directory
+ <filename>/usr/share/factory/</filename>
+ with the same name are copied.</para></listitem>
</varlistentry>
<varlistentry>
<varname>L</varname> lines.</para>
<para>Optionally, if prefixed with
- <literal>~</literal> the access mode is masked
+ <literal>~</literal>, the access mode is masked
based on the already set access bits for
existing file or directories: if the existing
- file has all executable bits unset then all
+ file has all executable bits unset, all
executable bits are removed from the new
- access mode, too. Similar, if all read bits
- are removed from the old access mode they will
+ access mode, too. Similarly, if all read bits
+ are removed from the old access mode, they will
be removed from the new access mode too, and
if all write bits are removed, they will be
removed from the new access mode too. In
- addition the sticky/suid/gid bit is removed unless
+ addition, the sticky/SUID/SGID bit is removed unless
applied to a directory. This
functionality is particularly useful in
conjunction with <varname>Z</varname>.</para>
and <varname>w</varname> may be used to
specify a short string that is written to the
file, suffixed by a newline. For
- <varname>C</varname> specifies the source file
+ <varname>C</varname>, specifies the source file
or directory. Ignored for all other
lines.</para>
</refsect2>
'\" t
-.TH "UDEV" "7" "" "systemd 214" "udev"
+.TH "UDEV" "7" "" "systemd 215" "udev"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="udev"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>udev — Dynamic device management</p></div><div class="refsect1"><a name="idm214182478784"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>udev supplies the system software with device events, manages permissions
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="udev"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>udev — Dynamic device management</p></div><div class="refsect1"><a name="idm214191469312"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>udev supplies the system software with device events, manages permissions
of device nodes and may create additional symlinks in the <code class="filename">/dev</code>
directory, or renames network interfaces. The kernel usually just assigns unpredictable
device names based on the order of discovery. Meaningful symlinks or network device
provide additional device information to be stored in the udev database or
to be used to create meaningful symlink names.</p><p>All device information udev processes is stored in the udev database and
sent out to possible event subscribers. Access to all stored data and the event
- sources is provided by the library libudev.</p></div><div class="refsect1"><a name="idm214182474192"></a><h2 id="Rules Files">Rules Files<a class="headerlink" title="Permalink to this headline" href="#Rules%20Files">¶</a></h2><p>The udev rules are read from the files located in the
+ sources is provided by the library libudev.</p></div><div class="refsect1"><a name="idm214191424784"></a><h2 id="Rules Files">Rules Files<a class="headerlink" title="Permalink to this headline" href="#Rules%20Files">¶</a></h2><p>The udev rules are read from the files located in the
system rules directory <code class="filename">/usr/lib/udev/rules.d</code>,
the volatile runtime directory <code class="filename">/run/udev/rules.d</code>
and the local administration directory <code class="filename">/etc/udev/rules.d</code>.
If the number is followed by the "<code class="literal">+</code>" character, this part plus all remaining parts
of the result string are substituted: "<code class="literal">%c{N+}</code>".</p></dd><dt id="$parent, %P"><span class="term"><code class="option">$parent</code>, <code class="option">%P</code></span><a class="headerlink" title="Permalink to this term" href="#%24parent,%20%P">¶</a></dt><dd><p>The node name of the parent device.</p></dd><dt id="$name"><span class="term"><code class="option">$name</code></span><a class="headerlink" title="Permalink to this term" href="#%24name">¶</a></dt><dd><p>The current name of the device. If not changed by a rule, it is the
name of the kernel device.</p></dd><dt id="$links"><span class="term"><code class="option">$links</code></span><a class="headerlink" title="Permalink to this term" href="#%24links">¶</a></dt><dd><p>A space-separated list of the current symlinks. The value is
- only set during a remove event or if an earlier rule assigned a value.</p></dd><dt id="$root, %r"><span class="term"><code class="option">$root</code>, <code class="option">%r</code></span><a class="headerlink" title="Permalink to this term" href="#%24root,%20%r">¶</a></dt><dd><p>The udev_root value.</p></dd><dt id="$sys, %S"><span class="term"><code class="option">$sys</code>, <code class="option">%S</code></span><a class="headerlink" title="Permalink to this term" href="#%24sys,%20%S">¶</a></dt><dd><p>The sysfs mount point.</p></dd><dt id="$devnode, %N"><span class="term"><code class="option">$devnode</code>, <code class="option">%N</code></span><a class="headerlink" title="Permalink to this term" href="#%24devnode,%20%N">¶</a></dt><dd><p>The name of the device node.</p></dd><dt id="%%"><span class="term"><code class="option">%%</code></span><a class="headerlink" title="Permalink to this term" href="#%%">¶</a></dt><dd><p>The "<code class="literal">%</code>" character itself.</p></dd><dt id="$$"><span class="term"><code class="option">$$</code></span><a class="headerlink" title="Permalink to this term" href="#%24%24">¶</a></dt><dd><p>The "<code class="literal">$</code>" character itself.</p></dd></dl></div></div><div class="refsect1"><a name="idm214181258176"></a><h2 id="Hardware Database Files">Hardware Database Files<a class="headerlink" title="Permalink to this headline" href="#Hardware%20Database%20Files">¶</a></h2><p>The hwdb files are read from the files located in the
+ only set during a remove event or if an earlier rule assigned a value.</p></dd><dt id="$root, %r"><span class="term"><code class="option">$root</code>, <code class="option">%r</code></span><a class="headerlink" title="Permalink to this term" href="#%24root,%20%r">¶</a></dt><dd><p>The udev_root value.</p></dd><dt id="$sys, %S"><span class="term"><code class="option">$sys</code>, <code class="option">%S</code></span><a class="headerlink" title="Permalink to this term" href="#%24sys,%20%S">¶</a></dt><dd><p>The sysfs mount point.</p></dd><dt id="$devnode, %N"><span class="term"><code class="option">$devnode</code>, <code class="option">%N</code></span><a class="headerlink" title="Permalink to this term" href="#%24devnode,%20%N">¶</a></dt><dd><p>The name of the device node.</p></dd><dt id="%%"><span class="term"><code class="option">%%</code></span><a class="headerlink" title="Permalink to this term" href="#%%">¶</a></dt><dd><p>The "<code class="literal">%</code>" character itself.</p></dd><dt id="$$"><span class="term"><code class="option">$$</code></span><a class="headerlink" title="Permalink to this term" href="#%24%24">¶</a></dt><dd><p>The "<code class="literal">$</code>" character itself.</p></dd></dl></div></div><div class="refsect1"><a name="idm214186759088"></a><h2 id="Hardware Database Files">Hardware Database Files<a class="headerlink" title="Permalink to this headline" href="#Hardware%20Database%20Files">¶</a></h2><p>The hwdb files are read from the files located in the
system hwdb directory <code class="filename">/usr/lib/udev/hwdb.d</code>,
the volatile runtime directory <code class="filename">/run/udev/hwdb.d</code>
and the local administration directory <code class="filename">/etc/udev/hwdb.d</code>.
of a record. Lines beginning with "<code class="literal">#</code>" are ignored.</p><p>The content of all hwdb files is read by
<a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a>
and compiled to a binary database located at <code class="filename">/etc/udev/hwdb.bin</code>.
- During runtime only the binary database is used.</p></div><div class="refsect1"><a name="idm214181245744"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ During runtime only the binary database is used.</p></div><div class="refsect1"><a name="idm214186746656"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a>,
<a href="udevadm.html"><span class="citerefentry"><span class="refentrytitle">udevadm</span>(8)</span></a>
<a href="systemd.link.html"><span class="citerefentry"><span class="refentrytitle">systemd.link</span>(5)</span></a>
'\" t
-.TH "UDEVADM" "8" "" "systemd 214" "udevadm"
+.TH "UDEVADM" "8" "" "systemd 215" "udevadm"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="udevadm"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>udevadm — udev management tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">udevadm</code> [<code class="option">--debug</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div><div class="cmdsynopsis"><p><code class="command">udevadm info <em class="replaceable"><code>options</code></em></code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm trigger [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm settle [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm control <em class="replaceable"><code>command</code></em></code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm monitor [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm hwdb [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm test [<span class="optional">options</span>] <em class="replaceable"><code>devpath</code></em></code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm test-builtin [<span class="optional">options</span>] <em class="replaceable"><code>command</code></em> <em class="replaceable"><code>devpath</code></em></code> </p></div></div><div class="refsect1"><a name="idm214197770064"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>udevadm</strong></span> expects a command and command
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="udevadm"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>udevadm — udev management tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">udevadm</code> [<code class="option">--debug</code>] [<code class="option">--version</code>] [<code class="option">--help</code>]</p></div><div class="cmdsynopsis"><p><code class="command">udevadm info <em class="replaceable"><code>options</code></em></code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm trigger [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm settle [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm control <em class="replaceable"><code>command</code></em></code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm monitor [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm hwdb [<span class="optional">options</span>]</code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm test [<span class="optional">options</span>] <em class="replaceable"><code>devpath</code></em></code> </p></div><div class="cmdsynopsis"><p><code class="command">udevadm test-builtin [<span class="optional">options</span>] <em class="replaceable"><code>command</code></em> <em class="replaceable"><code>devpath</code></em></code> </p></div></div><div class="refsect1"><a name="idm214169730704"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><span class="command"><strong>udevadm</strong></span> expects a command and command
specific options. It controls the runtime behavior of
<span class="command"><strong>systemd-udevd</strong></span>, requests kernel events, manages
- the event queue, and provides simple debugging mechanisms.</p></div><div class="refsect1"><a name="idm214197767536"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p>Print version number.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div><div class="refsect2"><a name="idm214197760800"></a><h3 id="udevadm info [OPTIONS] [DEVPATH|FILE]">udevadm info [<span class="optional"><em class="replaceable"><code>OPTIONS</code></em></span>] [<span class="optional"><em class="replaceable"><code>DEVPATH</code></em>|<em class="replaceable"><code>FILE</code></em></span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20info%20%5BOPTIONS%5D%20%5BDEVPATH%7CFILE%5D">¶</a></h3><p>Queries the udev database for device information
+ the event queue, and provides simple debugging mechanisms.</p></div><div class="refsect1"><a name="idm214169728176"></a><h2 id="OPTIONS">OPTIONS<a class="headerlink" title="Permalink to this headline" href="#OPTIONS">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="--debug"><span class="term"><code class="option">--debug</code></span><a class="headerlink" title="Permalink to this term" href="#--debug">¶</a></dt><dd><p>Print debug messages to standard error.</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p>Print version number.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div><div class="refsect2"><a name="idm214173624144"></a><h3 id="udevadm info [OPTIONS] [DEVPATH|FILE]">udevadm info [<span class="optional"><em class="replaceable"><code>OPTIONS</code></em></span>] [<span class="optional"><em class="replaceable"><code>DEVPATH</code></em>|<em class="replaceable"><code>FILE</code></em></span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20info%20%5BOPTIONS%5D%20%5BDEVPATH%7CFILE%5D">¶</a></h3><p>Queries the udev database for device information
stored in the udev database. It can also query the properties
of a device from its sysfs representation to help creating udev
rules that match this device.</p><div class="variablelist"><dl class="variablelist"><dt id="-q"><span class="term"><code class="option">-q</code>, </span><span class="term"><code class="option">--query=<em class="replaceable"><code>TYPE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-q">¶</a></dt><dd><p>Query the database for the specified type of device
query.</p></dd><dt id="-a"><span class="term"><code class="option">-a</code>, </span><span class="term"><code class="option">--attribute-walk</code></span><a class="headerlink" title="Permalink to this term" href="#-a">¶</a></dt><dd><p>Print all sysfs properties of the specified device that can be used
in udev rules to match the specified device. It prints all devices
along the chain, up to the root of sysfs that can be used in udev rules.</p></dd><dt id="-x"><span class="term"><code class="option">-x</code>, </span><span class="term"><code class="option">--export</code></span><a class="headerlink" title="Permalink to this term" href="#-x">¶</a></dt><dd><p>Print output as key/value pairs. Values are enclosed in single quotes.</p></dd><dt id="-P"><span class="term"><code class="option">-P</code>, </span><span class="term"><code class="option">--export-prefix=<em class="replaceable"><code>NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-P">¶</a></dt><dd><p>Add a prefix to the key name of exported values.</p></dd><dt id="-d"><span class="term"><code class="option">-d</code>, </span><span class="term"><code class="option">--device-id-of-file=<em class="replaceable"><code>FILE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-d">¶</a></dt><dd><p>Print major/minor numbers of the underlying device, where the file
- lives on.</p></dd><dt id="-e"><span class="term"><code class="option">-e</code>, </span><span class="term"><code class="option">--export-db</code></span><a class="headerlink" title="Permalink to this term" href="#-e">¶</a></dt><dd><p>Export the content of the udev database.</p></dd><dt id="-c"><span class="term"><code class="option">-c</code>, </span><span class="term"><code class="option">--cleanup-db</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p>Cleanup the udev database.</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p>Print version.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192795712"></a><h3 id="udevadm trigger [options]">udevadm trigger [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20trigger%20%5Boptions%5D">¶</a></h3><p>Request device events from the kernel. Primarily used to replay events at system coldplug time.</p><div class="variablelist"><dl class="variablelist"><dt id="-v"><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--verbose</code></span><a class="headerlink" title="Permalink to this term" href="#-v">¶</a></dt><dd><p>Print the list of devices which will be triggered.</p></dd><dt id="-n"><span class="term"><code class="option">-n</code>, </span><span class="term"><code class="option">--dry-run</code></span><a class="headerlink" title="Permalink to this term" href="#-n">¶</a></dt><dd><p>Do not actually trigger the event.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--type=<em class="replaceable"><code>TYPE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Trigger a specific type of devices. Valid types are:
+ lives on.</p></dd><dt id="-e"><span class="term"><code class="option">-e</code>, </span><span class="term"><code class="option">--export-db</code></span><a class="headerlink" title="Permalink to this term" href="#-e">¶</a></dt><dd><p>Export the content of the udev database.</p></dd><dt id="-c"><span class="term"><code class="option">-c</code>, </span><span class="term"><code class="option">--cleanup-db</code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p>Cleanup the udev database.</p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="#--version">¶</a></dt><dd><p>Print version.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168948752"></a><h3 id="udevadm trigger [options]">udevadm trigger [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20trigger%20%5Boptions%5D">¶</a></h3><p>Request device events from the kernel. Primarily used to replay events at system coldplug time.</p><div class="variablelist"><dl class="variablelist"><dt id="-v"><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--verbose</code></span><a class="headerlink" title="Permalink to this term" href="#-v">¶</a></dt><dd><p>Print the list of devices which will be triggered.</p></dd><dt id="-n"><span class="term"><code class="option">-n</code>, </span><span class="term"><code class="option">--dry-run</code></span><a class="headerlink" title="Permalink to this term" href="#-n">¶</a></dt><dd><p>Do not actually trigger the event.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--type=<em class="replaceable"><code>TYPE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Trigger a specific type of devices. Valid types are:
<span class="command"><strong>devices</strong></span>, <span class="command"><strong>subsystems</strong></span>.
The default value is <span class="command"><strong>devices</strong></span>.</p></dd><dt id="-c"><span class="term"><code class="option">-c</code>, </span><span class="term"><code class="option">--action=<em class="replaceable"><code>ACTION</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-c">¶</a></dt><dd><p>Type of event to be triggered. The default value is
<span class="command"><strong>change</strong></span>.</p></dd><dt id="-s"><span class="term"><code class="option">-s</code>, </span><span class="term"><code class="option">--subsystem-match=<em class="replaceable"><code>SUBSYSTEM</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-s">¶</a></dt><dd><p>Trigger events for devices which belong to a
option can be specified multiple times.</p></dd><dt id="-y"><span class="term"><code class="option">-y</code>, </span><span class="term"><code class="option">--sysname-match=<em class="replaceable"><code>NAME</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-y">¶</a></dt><dd><p>Trigger events for devices with a matching sys
device name. This option can be specified multiple times
and supports shell style pattern matching.</p></dd><dt id="-b"><span class="term"><code class="option">-b</code>, </span><span class="term"><code class="option">--parent-match=<em class="replaceable"><code>SYSPATH</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-b">¶</a></dt><dd><p>Trigger events for all children of a given
- device.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192757696"></a><h3 id="udevadm settle [options]">udevadm settle [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20settle%20%5Boptions%5D">¶</a></h3><p>Watches the udev event queue, and exits if all current events are handled.</p><div class="variablelist"><dl class="variablelist"><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--timeout=<em class="replaceable"><code>SECONDS</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Maximum number of seconds to wait for the event
+ device.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168910848"></a><h3 id="udevadm settle [options]">udevadm settle [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20settle%20%5Boptions%5D">¶</a></h3><p>Watches the udev event queue, and exits if all current events are handled.</p><div class="variablelist"><dl class="variablelist"><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--timeout=<em class="replaceable"><code>SECONDS</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Maximum number of seconds to wait for the event
queue to become empty. The default value is 120 seconds. A
value of 0 will check if the queue is empty and always
- return immediately.</p></dd><dt id="-E"><span class="term"><code class="option">-E</code>, </span><span class="term"><code class="option">--exit-if-exists=<em class="replaceable"><code>FILE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-E">¶</a></dt><dd><p>Stop waiting if file exists.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192748752"></a><h3 id="udevadm control command">udevadm control <em class="replaceable"><code>command</code></em><a class="headerlink" title="Permalink to this headline" href="#udevadm%20control%20command">¶</a></h3><p>Modify the internal state of the running udev daemon.</p><div class="variablelist"><dl class="variablelist"><dt id="-x"><span class="term"><code class="option">-x</code>, </span><span class="term"><code class="option">--exit</code></span><a class="headerlink" title="Permalink to this term" href="#-x">¶</a></dt><dd><p>Signal and wait for systemd-udevd to exit.</p></dd><dt id="-l"><span class="term"><code class="option">-l</code>, </span><span class="term"><code class="option">--log-priority=<em class="replaceable"><code>value</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-l">¶</a></dt><dd><p>Set the internal log level of systemd-udevd. Valid values are the numerical
+ return immediately.</p></dd><dt id="-E"><span class="term"><code class="option">-E</code>, </span><span class="term"><code class="option">--exit-if-exists=<em class="replaceable"><code>FILE</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-E">¶</a></dt><dd><p>Stop waiting if file exists.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168901904"></a><h3 id="udevadm control command">udevadm control <em class="replaceable"><code>command</code></em><a class="headerlink" title="Permalink to this headline" href="#udevadm%20control%20command">¶</a></h3><p>Modify the internal state of the running udev daemon.</p><div class="variablelist"><dl class="variablelist"><dt id="-x"><span class="term"><code class="option">-x</code>, </span><span class="term"><code class="option">--exit</code></span><a class="headerlink" title="Permalink to this term" href="#-x">¶</a></dt><dd><p>Signal and wait for systemd-udevd to exit.</p></dd><dt id="-l"><span class="term"><code class="option">-l</code>, </span><span class="term"><code class="option">--log-priority=<em class="replaceable"><code>value</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-l">¶</a></dt><dd><p>Set the internal log level of systemd-udevd. Valid values are the numerical
syslog priorities or their textual representations: <code class="option">err</code>,
<code class="option">info</code> and <code class="option">debug</code>.</p></dd><dt id="-s"><span class="term"><code class="option">-s</code>, </span><span class="term"><code class="option">--stop-exec-queue</code></span><a class="headerlink" title="Permalink to this term" href="#-s">¶</a></dt><dd><p>Signal systemd-udevd to stop executing new events. Incoming events
will be queued.</p></dd><dt id="-S"><span class="term"><code class="option">-S</code>, </span><span class="term"><code class="option">--start-exec-queue</code></span><a class="headerlink" title="Permalink to this term" href="#-S">¶</a></dt><dd><p>Signal systemd-udevd to enable the execution of events.</p></dd><dt id="-R"><span class="term"><code class="option">-R</code>, </span><span class="term"><code class="option">--reload</code></span><a class="headerlink" title="Permalink to this term" href="#-R">¶</a></dt><dd><p>Signal systemd-udevd to reload the rules files and other databases like the kernel
module index. Reloading rules and databases does not apply any changes to already
existing devices; the new configuration will only be applied to new events.</p></dd><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--property=<em class="replaceable"><code>KEY</code></em>=<em class="replaceable"><code>value</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Set a global property for all events.</p></dd><dt id="-m"><span class="term"><code class="option">-m</code>, </span><span class="term"><code class="option">--children-max=</code><em class="replaceable"><code>value</code></em></span><a class="headerlink" title="Permalink to this term" href="#-m">¶</a></dt><dd><p>Set the maximum number of events, systemd-udevd will handle at the
- same time.</p></dd><dt id="--timeout=seconds"><span class="term"><code class="option">--timeout=</code><em class="replaceable"><code>seconds</code></em></span><a class="headerlink" title="Permalink to this term" href="#--timeout=seconds">¶</a></dt><dd><p>The maximum number of seconds to wait for a reply from systemd-udevd.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192724784"></a><h3 id="udevadm monitor [options]">udevadm monitor [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20monitor%20%5Boptions%5D">¶</a></h3><p>Listens to the kernel uevents and events sent out by a udev rule
+ same time.</p></dd><dt id="--timeout=seconds"><span class="term"><code class="option">--timeout=</code><em class="replaceable"><code>seconds</code></em></span><a class="headerlink" title="Permalink to this term" href="#--timeout=seconds">¶</a></dt><dd><p>The maximum number of seconds to wait for a reply from systemd-udevd.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168877936"></a><h3 id="udevadm monitor [options]">udevadm monitor [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20monitor%20%5Boptions%5D">¶</a></h3><p>Listens to the kernel uevents and events sent out by a udev rule
and prints the devpath of the event to the console. It can be used to analyze the
event timing, by comparing the timestamps of the kernel uevent and the udev event.
- </p><div class="variablelist"><dl class="variablelist"><dt id="-k"><span class="term"><code class="option">-k</code>, </span><span class="term"><code class="option">--kernel</code></span><a class="headerlink" title="Permalink to this term" href="#-k">¶</a></dt><dd><p>Print the kernel uevents.</p></dd><dt id="-u"><span class="term"><code class="option">-u</code>, </span><span class="term"><code class="option">--udev</code></span><a class="headerlink" title="Permalink to this term" href="#-u">¶</a></dt><dd><p>Print the udev event after the rule processing.</p></dd><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--property</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Also print the properties of the event.</p></dd><dt id="-s"><span class="term"><code class="option">-s</code>, </span><span class="term"><code class="option">--subsystem-match=<em class="replaceable"><code>string[/string]</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-s">¶</a></dt><dd><p>Filter events by subsystem[/devtype]. Only udev events with a matching subsystem value will pass.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--tag-match=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Filter events by property. Only udev events with a given tag attached will pass.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192709168"></a><h3 id="udevadm hwdb [options]">udevadm hwdb [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20hwdb%20%5Boptions%5D">¶</a></h3><p>Maintain the hardware database index in <code class="filename">/etc/udev/hwdb.bin</code>.</p><div class="variablelist"><dl class="variablelist"><dt id="-u"><span class="term"><code class="option">-u</code>, </span><span class="term"><code class="option">--update</code></span><a class="headerlink" title="Permalink to this term" href="#-u">¶</a></dt><dd><p>Compile the hardware database information located in /usr/lib/udev/hwdb.d/,
+ </p><div class="variablelist"><dl class="variablelist"><dt id="-k"><span class="term"><code class="option">-k</code>, </span><span class="term"><code class="option">--kernel</code></span><a class="headerlink" title="Permalink to this term" href="#-k">¶</a></dt><dd><p>Print the kernel uevents.</p></dd><dt id="-u"><span class="term"><code class="option">-u</code>, </span><span class="term"><code class="option">--udev</code></span><a class="headerlink" title="Permalink to this term" href="#-u">¶</a></dt><dd><p>Print the udev event after the rule processing.</p></dd><dt id="-p"><span class="term"><code class="option">-p</code>, </span><span class="term"><code class="option">--property</code></span><a class="headerlink" title="Permalink to this term" href="#-p">¶</a></dt><dd><p>Also print the properties of the event.</p></dd><dt id="-s"><span class="term"><code class="option">-s</code>, </span><span class="term"><code class="option">--subsystem-match=<em class="replaceable"><code>string[/string]</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-s">¶</a></dt><dd><p>Filter events by subsystem[/devtype]. Only udev events with a matching subsystem value will pass.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--tag-match=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Filter events by property. Only udev events with a given tag attached will pass.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168862224"></a><h3 id="udevadm hwdb [options]">udevadm hwdb [<span class="optional">options</span>]<a class="headerlink" title="Permalink to this headline" href="#udevadm%20hwdb%20%5Boptions%5D">¶</a></h3><p>Maintain the hardware database index in <code class="filename">/etc/udev/hwdb.bin</code>.</p><div class="variablelist"><dl class="variablelist"><dt id="-u"><span class="term"><code class="option">-u</code>, </span><span class="term"><code class="option">--update</code></span><a class="headerlink" title="Permalink to this term" href="#-u">¶</a></dt><dd><p>Compile the hardware database information located in /usr/lib/udev/hwdb.d/,
/etc/udev/hwdb.d/ and store it in <code class="filename">/etc/udev/hwdb.bin</code>. This should be done after
any update to the source files; it will not be called automatically. The running
udev daemon will detect a new database on its own and does not need to be
notified about it.</p></dd><dt id="-t"><span class="term"><code class="option">-t</code>, </span><span class="term"><code class="option">--test=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-t">¶</a></dt><dd><p>Query the database with a modalias string, and print the
- retrieved properties.</p></dd><dt id="-r"><span class="term"><code class="option">-r</code>, </span><span class="term"><code class="option">--root=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-r">¶</a></dt><dd><p>Alternative root path in the file system for reading and writing files.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192696448"></a><h3 id="udevadm test [options] devpath">udevadm test [<span class="optional">options</span>] <em class="replaceable"><code>devpath</code></em><a class="headerlink" title="Permalink to this headline" href="#udevadm%20test%20%5Boptions%5D%20devpath">¶</a></h3><p>Simulate a udev event run for the given device, and print debug output.</p><div class="variablelist"><dl class="variablelist"><dt id="-a"><span class="term"><code class="option">-a</code>, </span><span class="term"><code class="option">--action=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-a">¶</a></dt><dd><p>The action string.</p></dd><dt id="-N"><span class="term"><code class="option">-N</code>, </span><span class="term"><code class="option">--resolve-names=<code class="constant">early</code>|<code class="constant">late</code>|<code class="constant">never</code></code></span><a class="headerlink" title="Permalink to this term" href="#-N">¶</a></dt><dd><p>Specify when udevadm should resolve names of users
+ retrieved properties.</p></dd><dt id="-r"><span class="term"><code class="option">-r</code>, </span><span class="term"><code class="option">--root=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-r">¶</a></dt><dd><p>Alternative root path in the file system for reading and writing files.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168849504"></a><h3 id="udevadm test [options] devpath">udevadm test [<span class="optional">options</span>] <em class="replaceable"><code>devpath</code></em><a class="headerlink" title="Permalink to this headline" href="#udevadm%20test%20%5Boptions%5D%20devpath">¶</a></h3><p>Simulate a udev event run for the given device, and print debug output.</p><div class="variablelist"><dl class="variablelist"><dt id="-a"><span class="term"><code class="option">-a</code>, </span><span class="term"><code class="option">--action=<em class="replaceable"><code>string</code></em></code></span><a class="headerlink" title="Permalink to this term" href="#-a">¶</a></dt><dd><p>The action string.</p></dd><dt id="-N"><span class="term"><code class="option">-N</code>, </span><span class="term"><code class="option">--resolve-names=<code class="constant">early</code>|<code class="constant">late</code>|<code class="constant">never</code></code></span><a class="headerlink" title="Permalink to this term" href="#-N">¶</a></dt><dd><p>Specify when udevadm should resolve names of users
and groups. When set to <code class="constant">early</code> (the
default), names will be resolved when the rules are
parsed. When set to <code class="constant">late</code>, names will
be resolved for every event. When set to
<code class="constant">never</code>, names will never be resolved
- and all devices will be owned by root.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214192684944"></a><h3 id="udevadm test-builtin [options] COMMAND DEVPATH">udevadm test-builtin [<span class="optional">options</span>] <em class="replaceable"><code>COMMAND</code></em> <em class="replaceable"><code>DEVPATH</code></em><a class="headerlink" title="Permalink to this headline" href="#udevadm%20test-builtin%20%5Boptions%5D%20COMMAND%20DEVPATH">¶</a></h3><p>Run a built-in command <em class="replaceable"><code>COMMAND</code></em>
+ and all devices will be owned by root.</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div><div class="refsect2"><a name="idm214168838000"></a><h3 id="udevadm test-builtin [options] COMMAND DEVPATH">udevadm test-builtin [<span class="optional">options</span>] <em class="replaceable"><code>COMMAND</code></em> <em class="replaceable"><code>DEVPATH</code></em><a class="headerlink" title="Permalink to this headline" href="#udevadm%20test-builtin%20%5Boptions%5D%20COMMAND%20DEVPATH">¶</a></h3><p>Run a built-in command <em class="replaceable"><code>COMMAND</code></em>
for device <em class="replaceable"><code>DEVPATH</code></em>, and print debug
- output.</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div></div><div class="refsect1"><a name="idm214192679440"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>,
+ output.</p><div class="variablelist"><dl class="variablelist"><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="#-h">¶</a></dt><dd><p>Print help text.</p></dd></dl></div></div></div><div class="refsect1"><a name="idm214168832496"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p><a href="udev.html"><span class="citerefentry"><span class="refentrytitle">udev</span>(7)</span></a>,
<a href="systemd-udevd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-udevd.service</span>(8)</span></a></p></div></div></body></html>
<term><option>--host=</option></term>
<listitem id='host-text'>
- <para>Execute the operation remotely. Specify a hostname, or
+ <para>Execute the operation remotely. Specify a hostname, or a
username and hostname separated by <literal>@</literal>, to
- connect to. This will use SSH to talk to the remote machine
- manager instance.</para>
+ connect to. The hostname may optionally be suffixed by a
+ container name, separated by <literal>:</literal>, which
+ connects directly to a specific container on the specified
+ host. This will use SSH to talk to the remote machine manager
+ instance. Container names may be enumerated with
+ <command>machinectl -H
+ <replaceable>HOST</replaceable></command>.</para>
</listitem>
</varlistentry>
'\" t
-.TH "VCONSOLE\&.CONF" "5" "" "systemd 214" "vconsole.conf"
+.TH "VCONSOLE\&.CONF" "5" "" "systemd 215" "vconsole.conf"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
- <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="vconsole.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>vconsole.conf — Configuration file for the virtual console</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/vconsole.conf</code></p></div><div class="refsect1"><a name="idm214196236976"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/vconsole.conf</code> file
+ <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="vconsole.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>vconsole.conf — Configuration file for the virtual console</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><p><code class="filename">/etc/vconsole.conf</code></p></div><div class="refsect1"><a name="idm214188601936"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p>The <code class="filename">/etc/vconsole.conf</code> file
configures the virtual console, i.e. keyboard mapping
and console font. It is applied at boot by
<a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a>.</p><p>The basic file format of the
to override the console settings at boot.</p><p>Depending on the operating system other
configuration files might be checked for configuration
of the virtual console as well, however only as
- fallback.</p></div><div class="refsect1"><a name="idm214196667504"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="KEYMAP="><span class="term"><code class="varname">KEYMAP=</code>, </span><span class="term"><code class="varname">KEYMAP_TOGGLE=</code></span><a class="headerlink" title="Permalink to this term" href="#KEYMAP=">¶</a></dt><dd><p>Configures the key
+ fallback.</p></div><div class="refsect1"><a name="idm214188594400"></a><h2 id="Options">Options<a class="headerlink" title="Permalink to this headline" href="#Options">¶</a></h2><p>The following options are understood:</p><div class="variablelist"><dl class="variablelist"><dt id="KEYMAP="><span class="term"><code class="varname">KEYMAP=</code>, </span><span class="term"><code class="varname">KEYMAP_TOGGLE=</code></span><a class="headerlink" title="Permalink to this term" href="#KEYMAP=">¶</a></dt><dd><p>Configures the key
mapping table for the
keyboard. <code class="varname">KEYMAP=</code>
defaults to "<code class="literal">us</code>" if
keymap and is by default
unset.</p></dd><dt id="FONT="><span class="term"><code class="varname">FONT=</code>, </span><span class="term"><code class="varname">FONT_MAP=</code>, </span><span class="term"><code class="varname">FONT_UNIMAP=</code></span><a class="headerlink" title="Permalink to this term" href="#FONT=">¶</a></dt><dd><p>Configures the console
font, the console map and the unicode
- font map.</p></dd></dl></div></div><div class="refsect1"><a name="idm214196442416"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214195705424"></a><p class="title"><b>Example 1. German keyboard and console</b></p><div class="example-contents"><p><code class="filename">/etc/vconsole.conf</code>:</p><pre class="programlisting">KEYMAP=de-latin1
-FONT=latarcyrheb-sun16</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214196297840"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
+ font map.</p></dd></dl></div></div><div class="refsect1"><a name="idm214192540192"></a><h2 id="Example">Example<a class="headerlink" title="Permalink to this headline" href="#Example">¶</a></h2><div class="example"><a name="idm214192539520"></a><p class="title"><b>Example 1. German keyboard and console</b></p><div class="example-contents"><p><code class="filename">/etc/vconsole.conf</code>:</p><pre class="programlisting">KEYMAP=de-latin1
+FONT=latarcyrheb-sun16</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm214192536928"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="systemd-vconsole-setup.service.html"><span class="citerefentry"><span class="refentrytitle">systemd-vconsole-setup.service</span>(8)</span></a>,
<a href="loadkeys.html"><span class="citerefentry"><span class="refentrytitle">loadkeys</span>(1)</span></a>,
Name=host0
[Network]
-DHCP=yes
+DHCP=both
IPv4LL=yes
Driver=veth
[Network]
+Address=0.0.0.0/28
IPv4LL=yes
+DHCPServer=yes
--- /dev/null
+# German translation for systemd.
+# Copyright (C) 2014 systemd's COPYRIGHT HOLDER
+# This file is distributed under the same license as the systemd package.
+# Christian Kirbach <Christian.Kirbach@gmail.com>, 2014.
+# Benjamin Steinwender <b@stbe.at>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: systemd master\n"
+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
+"product=systemd&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2014-06-02 10:25+0000\n"
+"PO-Revision-Date: 2014-06-02 22:43+0100\n"
+"Last-Translator: Benjamin Steinwender <b@stbe.at>\n"
+"Language-Team: German <gnome-de@gnome.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.6.5\n"
+
+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1
+msgid "Set host name"
+msgstr "Rechnername festlegen"
+
+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2
+msgid "Authentication is required to set the local host name."
+msgstr "Legitimierung ist zum Festlegen des lokalen Rechnernamens notwendig"
+
+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3
+msgid "Set static host name"
+msgstr "Statischen Rechnernamen festlegen"
+
+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4
+msgid ""
+"Authentication is required to set the statically configured local host name, "
+"as well as the pretty host name."
+msgstr ""
+"Authentifizierung ist erforderlich, um den statisch geänderten, lokalen "
+"Rechnernamen, sowie den beschönigten Rechnernamen festzulegen."
+
+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5
+msgid "Set machine information"
+msgstr "Maschinen-Information festlegen"
+
+#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6
+msgid "Authentication is required to set local machine information."
+msgstr ""
+"Legitimierung ist zum Festlegen der lokalen Maschinen-Information "
+"erforderlich."
+
+#: ../src/locale/org.freedesktop.locale1.policy.in.h:1
+msgid "Set system locale"
+msgstr "Die lokale Sprachumgebung festlegen"
+
+#: ../src/locale/org.freedesktop.locale1.policy.in.h:2
+msgid "Authentication is required to set the system locale."
+msgstr ""
+"Legitimierung ist zum Festlegen der systemweiten Spracheinstellungen "
+"erforderlich."
+
+#: ../src/locale/org.freedesktop.locale1.policy.in.h:3
+msgid "Set system keyboard settings"
+msgstr "Tastatureinstellungen des Systems festlegen"
+
+#: ../src/locale/org.freedesktop.locale1.policy.in.h:4
+msgid "Authentication is required to set the system keyboard settings."
+msgstr ""
+"Legitimierung ist zum Festlegen der Tastatureinstellungen des Systems "
+"erforderlich."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:1
+msgid "Allow applications to inhibit system shutdown"
+msgstr "Anwendungen dürfen das Herunterfahren des Systems unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:2
+msgid ""
+"Authentication is required to allow an application to inhibit system "
+"shutdown."
+msgstr ""
+"Legitimierung ist notwendig, um Anwendungen das Herunterfahren des Systems "
+"zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:3
+msgid "Allow applications to delay system shutdown"
+msgstr "Anwendungen dürfen das Herunterfahren des Systems verzögern"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:4
+msgid ""
+"Authentication is required to allow an application to delay system shutdown."
+msgstr ""
+"Legitimierung ist notwendig, um Anwendungen das Verzögern des Herunterfahren "
+"des Systems zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:5
+msgid "Allow applications to inhibit system sleep"
+msgstr "Anwendungen dürfen den Bereitschaftsmodus unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:6
+msgid ""
+"Authentication is required to allow an application to inhibit system sleep."
+msgstr ""
+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden des "
+"Bereitschaftsmodus zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:7
+msgid "Allow applications to delay system sleep"
+msgstr "Anwendungen dürfen den Bereitschaftsmodus verzögern"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:8
+msgid ""
+"Authentication is required to allow an application to delay system sleep."
+msgstr ""
+"Legitimierung ist erforderlich, um Anwendungen das Verzögern des "
+"Bereitschaftsmodus zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:9
+msgid "Allow applications to inhibit automatic system suspend"
+msgstr "Anwendungen dürfen den automatischen Bereitschaftsmodus unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:10
+msgid ""
+"Authentication is required to allow an application to inhibit automatic "
+"system suspend."
+msgstr ""
+"Legitimierung ist notwendig, um Anwendungen das Unterbinden des "
+"automatischen Bereitschaftsmodus zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:11
+msgid "Allow applications to inhibit system handling of the power key"
+msgstr ""
+"Anwendungen dürfen das Auswerten des Ein-/Ausschaltknopfs des Systems "
+"unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:12
+msgid ""
+"Authentication is required to allow an application to inhibit system "
+"handling of the power key."
+msgstr ""
+"Legitmierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung "
+"der Ein-/Ausschaltknopfs des Systems zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:13
+msgid "Allow applications to inhibit system handling of the suspend key"
+msgstr ""
+"Anwendungen dürfen das Auswerten des Bereitschaftsknopfs des Systems "
+"unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:14
+msgid ""
+"Authentication is required to allow an application to inhibit system "
+"handling of the suspend key."
+msgstr ""
+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der "
+"Auswertung des Bereitschaftsknopfes des Systems zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:15
+msgid "Allow applications to inhibit system handling of the hibernate key"
+msgstr ""
+"Anwendungen dürfen das Auswerten des Knopfs für den Ruhezustand unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:16
+msgid ""
+"Authentication is required to allow an application to inhibit system "
+"handling of the hibernate key."
+msgstr ""
+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der "
+"Auswertung des Knopfs für den Ruhezustand zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:17
+msgid "Allow applications to inhibit system handling of the lid switch"
+msgstr ""
+"Anwendungen dürfen das Auswerten des Notebookdeckelschalters unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:18
+msgid ""
+"Authentication is required to allow an application to inhibit system "
+"handling of the lid switch."
+msgstr ""
+"Legitimierung ist erforderlich, um Anwendungen das Unterbinden der "
+"Auswertung des Notebookdeckelschalters des Systems zu erlauben."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:19
+msgid "Allow non-logged-in users to run programs"
+msgstr "Nicht angemeldete Benutzer dürfen Programme ausführen"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+msgid ""
+"Authentication is required to allow a non-logged-in user to run programs."
+msgstr ""
+"Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme "
+"ausführen dürfen."
+
+# www.freedesktop.org/wiki/Software/systemd/multiseat/
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
+msgid "Allow attaching devices to seats"
+msgstr "Das Anschließen von Geräten an Arbeitsstationen erlauben"
+
+# www.freedesktop.org/wiki/Software/systemd/multiseat/
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
+msgid "Authentication is required for attaching a device to a seat."
+msgstr ""
+"Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation "
+"notwendig."
+
+# www.freedesktop.org/wiki/Software/systemd/multiseat/
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
+msgid "Flush device to seat attachments"
+msgstr "Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte"
+
+# www.freedesktop.org/wiki/Software/systemd/multiseat/
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
+msgid ""
+"Authentication is required for resetting how devices are attached to seats."
+msgstr ""
+"Legitimierung ist zum Zurücksetzen notwendig, wie Geräte an eine "
+"Arbeitsstation angeschlossen werden."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
+msgid "Power off the system"
+msgstr "Das System ausschalten"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
+msgid "Authentication is required for powering off the system."
+msgstr "Legitimierung ist zum Ausschalten des Systems notwendig."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
+msgid "Power off the system while other users are logged in"
+msgstr "Das System herunter fahren, während andere Benutzer angemeldet sind"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
+msgid ""
+"Authentication is required for powering off the system while other users are "
+"logged in."
+msgstr ""
+"Legitimierung ist zum Herunterfahren des Systems notwendig, während andere "
+"Benutzer angemeldet sind."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
+msgid "Power off the system while an application asked to inhibit it"
+msgstr ""
+"Das System ausschalten, während eine Anwendung anfordert es zu unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
+msgid ""
+"Authentication is required for powering off the system while an application "
+"asked to inhibit it."
+msgstr ""
+"Legitimierung ist zum Ausschalten des Systems notwendig, während eine "
+"Anwendung anfordert es zu unterbinden."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
+msgid "Reboot the system"
+msgstr "Das System neu starten"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
+msgid "Authentication is required for rebooting the system."
+msgstr "Legitimierung ist zum Neustart des Systems notwendig."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
+msgid "Reboot the system while other users are logged in"
+msgstr "Das Systems neu starten, während andere Benutzer angemeldet sind"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
+msgid ""
+"Authentication is required for rebooting the system while other users are "
+"logged in."
+msgstr ""
+"Legitimierung ist zum Neustart des Systems notwendig, während andere "
+"Benutzer angemeldet sind."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
+msgid "Reboot the system while an application asked to inhibit it"
+msgstr ""
+"Das System neu starten, während eine Anwendung anfordert es zu unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
+msgid ""
+"Authentication is required for rebooting the system while an application "
+"asked to inhibit it."
+msgstr ""
+"Legitimierung ist zum Neustart des Systems notwendig, während eine Anwendung "
+"anforderte es zu unterbinden."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
+msgid "Suspend the system"
+msgstr "Das System in Bereitschaft versetzen"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
+msgid "Authentication is required for suspending the system."
+msgstr "Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
+msgid "Suspend the system while other users are logged in"
+msgstr ""
+"Das System in Bereitschaft versetzen, während andere Benutzer angemeldet "
+"sind."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
+msgid ""
+"Authentication is required for suspending the system while other users are "
+"logged in."
+msgstr ""
+"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, "
+"während andere Benutzer angemeldet sind."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
+msgid "Suspend the system while an application asked to inhibit it"
+msgstr ""
+"Das System in Bereitschaft versetzen, während eine Anwendung anfordert dies "
+"zu unterbinden"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
+msgid ""
+"Authentication is required for suspending the system while an application "
+"asked to inhibit it."
+msgstr ""
+"Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, "
+"während eine Anwendung anfordert dies zu unterbinden."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
+msgid "Hibernate the system"
+msgstr "Den Ruhezustand des Systems aktivieren"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
+msgid "Authentication is required for hibernating the system."
+msgstr ""
+"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
+msgid "Hibernate the system while other users are logged in"
+msgstr ""
+"Den Ruhezustand des Systems aktivieren, während andere Benutzer angemeldet "
+"sind"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
+msgid ""
+"Authentication is required for hibernating the system while other users are "
+"logged in."
+msgstr ""
+"Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, "
+"während andere Benutzer angemeldet sind."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
+msgid "Hibernate the system while an application asked to inhibit it"
+msgstr ""
+"Das System in den Ruhezustand versetzen, während eine Anwendung wünscht dies "
+"zu verhindern"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
+msgid ""
+"Authentication is required for hibernating the system while an application "
+"asked to inhibit it."
+msgstr ""
+"Legitimierung ist zum Versetzen des System in den Ruhezustand notwendig, "
+"während eine Anwendung wünscht dies zu verhindern."
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1
+msgid "Set system time"
+msgstr "Die Systemzeit festlegen"
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2
+msgid "Authentication is required to set the system time."
+msgstr "Legitimierung ist zum Festlegen der Systemzeit notwendig."
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3
+msgid "Set system timezone"
+msgstr "Die Systemzeitzone festlegen"
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4
+msgid "Authentication is required to set the system timezone."
+msgstr "Legitimierung ist zum Festlegen der Systemzeitzone notwendig."
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5
+msgid "Set RTC to local timezone or UTC"
+msgstr "Echtzeituhr auf lokale Zeitzone oder UTC setzen"
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6
+msgid ""
+"Authentication is required to control whether the RTC stores the local or "
+"UTC time."
+msgstr ""
+"Legitimierung ist notwendig zum Festlegen, ob die Echtzeituhr auf lokale "
+"Zeitzone oder UTC eingestellt ist."
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7
+msgid "Turn network time synchronization on or off"
+msgstr "Netzwerkzeitabgeich ein- oder ausschalten"
+
+#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8
+msgid ""
+"Authentication is required to control whether network time synchronization "
+"shall be enabled."
+msgstr ""
+"Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein "
+"soll, erforderlich."
+
+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
+msgid "Send passphrase back to system"
+msgstr "Passphrase zurück an das System senden"
+
+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2
+msgid ""
+"Authentication is required to send the entered passphrase back to the system."
+msgstr ""
+"Legitimierung ist zum Senden des eingegebenen Kennworts zurück an das System "
+"notwendig."
+
+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3
+msgid "Privileged system and service manager access"
+msgstr "Privilegierter Zugriff auf die System- und Dienstverwaltung"
+
+#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4
+msgid "Authentication is required to access the system and service manager."
+msgstr ""
+"Legitimierung ist notwendig für den Zugriff auf die System- und "
+"Dienstverwaltung."
ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Tablet", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}!="1", TEST=="power/control", ATTR{power/control}="auto"
-# Catch-all for Avocent HID devices. Keyed off interface in order to only
-# trigger on HID class devices.
-ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{bInterfaceClass}=="03", TEST=="../power/control", ATTR{../power/control}="auto"
-
# Dell DRAC 4
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="2500", TEST=="power/control", ATTR{power/control}="auto"
SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
+SUBSYSTEM=="input", GROUP="input"
SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0664"
SUBSYSTEM=="video4linux", GROUP="video"
SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
+KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
+KERNEL=="btrfs-control", GROUP="disk"
KERNEL=="rawctl", GROUP="disk"
SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", GROUP="disk"
SUBSYSTEM=="aoe", GROUP="disk", MODE="0220"
--- /dev/null
+# coredumpctl(1) completion -*- shell-script -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010 Ran Benita
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
+__contains_word () {
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+}
+
+__journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
+ ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} COREDUMP_EXE
+ _{P,U,G}ID _COMM _EXE _CMDLINE
+ _AUDIT_{SESSION,LOGINUID}
+ _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID}
+ _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP
+ _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT
+ _KERNEL_{DEVICE,SUBSYSTEM}
+ _UDEV_{SYSNAME,DEVNODE,DEVLINK}
+ __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP)
+_coredumpctl() {
+ local i verb comps
+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
+ local OPTS='-h --help --version --no-pager --no-legend -o --output -F --field'
+
+ local -A VERBS=(
+ [LIST]='list'
+ [DUMP]='dump gdb'
+ )
+
+ if __contains_word "$prev" '--output -o'; then
+ comps=$( compgen -A file -- "$cur" )
+ compopt -o filenames
+ elif __contains_word "$prev" '--FIELD -F'; then
+ comps=$( compgen -W '${__journal_fields[*]}' -- "$cur" )
+ elif [[ $cur = -* ]]; then
+ comps=${OPTS}
+ elif __contains_word "$prev" ${VERBS[*]} &&
+ ! __contains_word ${COMP_WORDS[COMP_CWORD-2]} '--output -o -F --field'; then
+ compopt -o nospace
+ COMPREPLY=( $(compgen -W '${__journal_fields[*]}' -S= -- "$cur") )
+ return 0
+ elif [[ $cur = *=* ]]; then
+ mapfile -t field_vals < <(coredumpctl -F "${prev%=}" 2>/dev/null)
+ COMPREPLY=( $(compgen -W '${field_vals[*]}' -- "${cur#=}") )
+ return 0
+ elif [[ $prev = '=' ]]; then
+ mapfile -t field_vals < <(coredumpctl -F "${COMP_WORDS[COMP_CWORD-2]}" 2>/dev/null)
+ comps=${field_vals[*]}
+ else
+ for ((i=0; i <= COMP_CWORD; i++)); do
+ if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
+ verb=${COMP_WORDS[i]}
+ break
+ fi
+ done
+
+ if [[ -z $verb ]]; then
+ comps=${VERBS[*]}
+ elif __contains_word "$verb" ${VERBS[LIST]} ${VERBS[DUMP]}; then
+ comps=''
+ fi
+ fi
+
+ COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
+ return 0
+}
+
+complete -F _coredumpctl coredumpctl
+++ /dev/null
-# systemd-coredumpctl(1) completion -*- shell-script -*-
-#
-# This file is part of systemd.
-#
-# Copyright 2010 Ran Benita
-#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# systemd is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with systemd; If not, see <http://www.gnu.org/licenses/>.
-
-__contains_word () {
- local w word=$1; shift
- for w in "$@"; do
- [[ $w = "$word" ]] && return
- done
-}
-
-__journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
- ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} COREDUMP_EXE
- _{P,U,G}ID _COMM _EXE _CMDLINE
- _AUDIT_{SESSION,LOGINUID}
- _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID}
- _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP
- _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT
- _KERNEL_{DEVICE,SUBSYSTEM}
- _UDEV_{SYSNAME,DEVNODE,DEVLINK}
- __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP)
-_coredumpctl() {
- local i verb comps
- local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
- local OPTS='-h --help --version --no-pager --no-legend -o --output -F --field'
-
- local -A VERBS=(
- [LIST]='list'
- [DUMP]='dump gdb'
- )
-
- if __contains_word "$prev" '--output -o'; then
- comps=$( compgen -A file -- "$cur" )
- compopt -o filenames
- elif __contains_word "$prev" '--FIELD -F'; then
- comps=$( compgen -W '${__journal_fields[*]}' -- "$cur" )
- elif [[ $cur = -* ]]; then
- comps=${OPTS}
- elif __contains_word "$prev" ${VERBS[*]} &&
- ! __contains_word ${COMP_WORDS[COMP_CWORD-2]} '--output -o -F --field'; then
- compopt -o nospace
- COMPREPLY=( $(compgen -W '${__journal_fields[*]}' -S= -- "$cur") )
- return 0
- elif [[ $cur = *=* ]]; then
- mapfile -t field_vals < <(systemd-coredumpctl -F "${prev%=}" 2>/dev/null)
- COMPREPLY=( $(compgen -W '${field_vals[*]}' -- "${cur#=}") )
- return 0
- elif [[ $prev = '=' ]]; then
- mapfile -t field_vals < <(systemd-coredumpctl -F "${COMP_WORDS[COMP_CWORD-2]}" 2>/dev/null)
- comps=${field_vals[*]}
- else
- for ((i=0; i <= COMP_CWORD; i++)); do
- if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
- verb=${COMP_WORDS[i]}
- break
- fi
- done
-
- if [[ -z $verb ]]; then
- comps=${VERBS[*]}
- elif __contains_word "$verb" ${VERBS[LIST]} ${VERBS[DUMP]}; then
- comps=''
- fi
- fi
-
- COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
- return 0
-}
-
-complete -F _coredumpctl systemd-coredumpctl
--- /dev/null
+#compdef coredumpctl
+
+_coredumpctl_command(){
+ local -a _coredumpctl_cmds
+ _coredumpctl_cmds=(
+ 'list:List available coredumps'
+ 'dump:Print coredump to stdout'
+ 'gdb:Start gdb on a coredump'
+ )
+ if (( CURRENT == 1 )); then
+ _describe -t commands 'coredumpctl command' _coredumpctl_cmds
+ else
+ local curcontext="$curcontext"
+ local -a _dumps
+ cmd="${${_coredumpctl_cmds[(r)$words[1]:*]%%:*}}"
+ if (( $#cmd )); then
+ # user can set zstyle ':completion:*:*:coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid
+ _dumps=( "${(foa)$(coredumpctl list | awk 'BEGIN{OFS=":"} /^\s/ {sub(/[[ \t]+/, ""); print $5,$0}' 2>/dev/null)}" )
+ if [[ -n "$_dumps" ]]; then
+ _describe -t pids 'coredumps' _dumps
+ else
+ _message "no coredumps"
+ fi
+ else
+ _message "no more options"
+ fi
+ fi
+}
+
+_arguments \
+ {-o+,--output=}'[Write output to FILE]:output file:_files' \
+ {-F+,--field=}'[Show field in list output]:field' \
+ '--no-pager[Do not pipe output into a pager]' \
+ {-h,--help}'[Show this help]' \
+ '--version[Show package version]' \
+ '*::coredumpctl commands:_coredumpctl_command'
+++ /dev/null
-#compdef systemd-coredumpctl
-
-_systemd-coredumpctl_command(){
- local -a _systemd_coredumpctl_cmds
- _systemd_coredumpctl_cmds=(
- 'list:List available coredumps'
- 'dump:Print coredump to stdout'
- 'gdb:Start gdb on a coredump'
- )
- if (( CURRENT == 1 )); then
- _describe -t commands 'systemd-coredumpctl command' _systemd_coredumpctl_cmds
- else
- local curcontext="$curcontext"
- local -a _dumps
- cmd="${${_systemd_coredumpctl_cmds[(r)$words[1]:*]%%:*}}"
- if (( $#cmd )); then
- # user can set zstyle ':completion:*:*:systemd-coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid
- _dumps=( "${(foa)$(systemd-coredumpctl list | awk 'BEGIN{OFS=":"} /^\s/ {sub(/[[ \t]+/, ""); print $5,$0}' 2>/dev/null)}" )
- if [[ -n "$_dumps" ]]; then
- _describe -t pids 'coredumps' _dumps
- else
- _message "no coredumps"
- fi
- else
- _message "no more options"
- fi
- fi
-}
-
-_arguments \
- {-o+,--output=}'[Write output to FILE]:output file:_files' \
- {-F+,--field=}'[Show field in list output]:field' \
- '--no-pager[Do not pipe output into a pager]' \
- {-h,--help}'[Show this help]' \
- '--version[Show package version]' \
- '*::systemd-coredumpctl commands:_systemd-coredumpctl_command'
if (sysfd < 0)
sysfd = open("/sys", O_RDONLY|O_CLOEXEC);
- if (!build)
- parse_env_file("/etc/os-release", NEWLINE,
- "PRETTY_NAME", &build,
- NULL);
+ if (!build) {
+ if (parse_env_file("/etc/os-release", NEWLINE, "PRETTY_NAME", &build, NULL) == -ENOENT)
+ parse_env_file("/usr/lib/os-release", NEWLINE, "PRETTY_NAME", &build, NULL);
+ }
/* wait for /proc to become available, discarding samples */
if (graph_start <= 0.0)
double h;
struct list_sample_data *sampledata_last;
+ assert(head);
+
sampledata = head;
LIST_FIND_TAIL(link, sampledata, head);
sampledata_last = head;
svg("<defs>\n <style type=\"text/css\">\n <![CDATA[\n");
svg(" rect { stroke-width: 1; }\n");
+ svg(" rect.bg { fill: rgb(255,255,255); }\n");
svg(" rect.cpu { fill: rgb(64,64,240); stroke-width: 0; fill-opacity: 0.7; }\n");
svg(" rect.wait { fill: rgb(240,240,0); stroke-width: 0; fill-opacity: 0.7; }\n");
svg(" rect.bi { fill: rgb(240,128,128); stroke-width: 0; fill-opacity: 0.7; }\n");
/* after this, we can draw the header with proper sizing */
svg_header();
+ svg("<rect class=\"bg\" width=\"100%%\" height=\"100%%\" />\n\n");
svg("<g transform=\"translate(10,400)\">\n");
svg_io_bi_bar();
else if (streq(name, "group"))
state = STATE_POLICY_GROUP;
else {
- log_warning("Attribute %s of <policy> tag unknown at %s:%u, ignoring.", name, path, line);
+ if (streq(name, "at_console"))
+ log_debug("Attribute %s of <policy> tag unsupported at %s:%u, ignoring.", name, path, line);
+ else
+ log_warning("Attribute %s of <policy> tag unknown at %s:%u, ignoring.", name, path, line);
state = STATE_POLICY_OTHER_ATTRIBUTE;
}
} else if (t == XML_TAG_CLOSE_EMPTY ||
ic = POLICY_ITEM_USER;
else if (streq(name, "group"))
ic = POLICY_ITEM_GROUP;
- else {
+ else if (streq(name, "eavesdrop")) {
+ log_debug("Unsupported attribute %s= at %s:%u, ignoring.", name, path, line);
+ i->class = POLICY_ITEM_IGNORE;
+ state = STATE_ALLOW_DENY_OTHER_ATTRIBUTE;
+ break;
+ } else {
log_error("Unknown attribute %s= at %s:%u, ignoring.", name, path, line);
state = STATE_ALLOW_DENY_OTHER_ATTRIBUTE;
break;
(streq(u, "sender") && ic == POLICY_ITEM_RECV))
state = STATE_ALLOW_DENY_NAME;
else {
- log_error("Unknown attribute %s= at %s:%u, ignoring.", name, path, line);
+ if (streq(u, "requested_reply"))
+ log_debug("Unsupported attribute %s= at %s:%u, ignoring.", name, path, line);
+ else
+ log_error("Unknown attribute %s= at %s:%u, ignoring.", name, path, line);
state = STATE_ALLOW_DENY_OTHER_ATTRIBUTE;
break;
}
POLICY_ITEM_OWN_PREFIX,
POLICY_ITEM_USER,
POLICY_ITEM_GROUP,
+ POLICY_ITEM_IGNORE,
_POLICY_ITEM_CLASS_MAX,
_POLICY_ITEM_CLASS_INVALID = -1,
} PolicyItemClass;
#include "capability.h"
#include "bus-policy.h"
-static const char *arg_address = KERNEL_SYSTEM_BUS_PATH;
+static char *arg_address = NULL;
static char *arg_command_line_buffer = NULL;
static bool arg_drop_privileges = false;
static char **arg_configuration = NULL;
" --version Show package version\n"
" --drop-privileges Drop privileges\n"
" --configuration=PATH Configuration file or directory\n"
+ " --machine=MACHINE Connect to specified machine\n"
" --address=ADDRESS Connect to the bus specified by ADDRESS\n"
- " (default: " KERNEL_SYSTEM_BUS_PATH ")\n",
+ " (default: " DEFAULT_SYSTEM_BUS_PATH ")\n",
program_invocation_short_name);
return 0;
ARG_ADDRESS,
ARG_DROP_PRIVILEGES,
ARG_CONFIGURATION,
+ ARG_MACHINE,
};
static const struct option options[] = {
{ "address", required_argument, NULL, ARG_ADDRESS },
{ "drop-privileges", no_argument, NULL, ARG_DROP_PRIVILEGES },
{ "configuration", required_argument, NULL, ARG_CONFIGURATION },
- { NULL, 0, NULL, 0 },
+ { "machine", required_argument, NULL, ARG_MACHINE },
+ {},
};
int c, r;
puts(SYSTEMD_FEATURES);
return 0;
- case ARG_ADDRESS:
- arg_address = optarg;
+ case ARG_ADDRESS: {
+ char *a;
+
+ a = strdup(optarg);
+ if (!a)
+ return log_oom();
+
+ free(arg_address);
+ arg_address = a;
break;
+ }
case ARG_DROP_PRIVILEGES:
arg_drop_privileges = true;
return log_oom();
break;
+ case ARG_MACHINE: {
+ _cleanup_free_ char *e = NULL;
+ char *a;
+
+ e = bus_address_escape(optarg);
+ if (!e)
+ return log_oom();
+
+#ifdef ENABLE_KDBUS
+ a = strjoin("x-container-kernel:machine=", e, ";x-container-unix:machine=", e, NULL);
+#else
+ a = strjoin("x-container-unix:machine=", e, NULL);
+#endif
+ if (!a)
+ return log_oom();
+
+ free(arg_address);
+ arg_address = a;
+
+ break;
+ }
+
case '?':
return -EINVAL;
* we'll write who we are talking to into it, so that "ps" is
* explanatory */
arg_command_line_buffer = argv[optind];
- if (argc > optind + 1 ||
- (arg_command_line_buffer && arg_command_line_buffer[strspn(arg_command_line_buffer, "x")] != 0)) {
+ if (argc > optind + 1 || (arg_command_line_buffer && !in_charset(arg_command_line_buffer, "x"))) {
log_error("Too many arguments");
return -EINVAL;
}
+ if (!arg_address) {
+ arg_address = strdup(DEFAULT_SYSTEM_BUS_PATH);
+ if (!arg_address)
+ return log_oom();
+ }
+
return 1;
}
assert(b);
assert(m);
+ if (!a->is_kernel)
+ return 0;
+
if (!sd_bus_message_is_method_call(m, "org.freedesktop.DBus.Properties", "GetAll"))
return 0;
assert(b);
assert(m);
+ if (!a->is_kernel)
+ return 0;
+
if (!streq_ptr(sd_bus_message_get_destination(m), "org.freedesktop.DBus"))
return 0;
finish:
sd_bus_flush(a);
sd_bus_flush(b);
+ sd_bus_close(a);
+ sd_bus_close(b);
policy_free(&policy);
strv_free(arg_configuration);
+ free(arg_address);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
int main(int argc, char *argv[]) {
int r = 0, retval = EXIT_FAILURE;
int output_flags;
- char _cleanup_free_ *root = NULL;
+ _cleanup_free_ char *root = NULL;
_cleanup_bus_unref_ sd_bus *bus = NULL;
log_parse_environment();
static int automount_verify(Automount *a) {
bool b;
- char *e;
+ _cleanup_free_ char *e = NULL;
assert(a);
if (UNIT(a)->load_state != UNIT_LOADED)
return -ENOMEM;
b = unit_has_name(UNIT(a), e);
- free(e);
if (!b) {
log_error_unit(UNIT(a)->id, "%s's Where setting doesn't match unit name. Refusing.", UNIT(a)->id);
goto fail;
if (n->policy) {
- /* If there's a policy we need to resolve user/group
+ /* If there is a policy, we need to resolve user/group
* names, which we can't do from PID1, hence let's
* fork. */
busname_unwatch_control_pid(n);
busname_set_state(n, BUSNAME_MAKING);
} else {
- /* If there's no policy then we can do everything
+ /* If there is no policy, we can do everything
* directly from PID 1, hence do so. */
r = bus_kernel_make_starter(n->starter_fd, n->name, n->activating, n->accept_fd, NULL, n->policy_world);
#include <sys/statvfs.h>
#include <fnmatch.h>
-#include <systemd/sd-id128.h>
+#include "sd-id128.h"
#include "util.h"
#include "condition.h"
#include "virt.h"
return use_ima() == !c->negate;
if (streq(c->parameter, "smack"))
return use_smack() == !c->negate;
+
return c->negate;
}
static bool condition_test_capability(Condition *c) {
+ _cleanup_fclose_ FILE *f = NULL;
cap_value_t value;
- FILE *f;
char line[LINE_MAX];
unsigned long long capabilities = -1;
}
}
- fclose(f);
-
return !!(capabilities & (1ULL << value)) == !c->negate;
}
+static bool condition_test_needs_update(Condition *c) {
+ const char *p;
+ struct stat usr, other;
+
+ assert(c);
+ assert(c->parameter);
+ assert(c->type == CONDITION_NEEDS_UPDATE);
+
+ /* If the file system is read-only we shouldn't suggest an update */
+ if (path_is_read_only_fs(c->parameter) > 0)
+ return c->negate;
+
+ /* Any other failure means we should allow the condition to be true,
+ * so that we rather invoke too many update tools then too
+ * few. */
+
+ if (!path_is_absolute(c->parameter))
+ return !c->negate;
+
+ p = strappenda(c->parameter, "/.updated");
+ if (lstat(p, &other) < 0)
+ return !c->negate;
+
+ if (lstat("/usr/", &usr) < 0)
+ return !c->negate;
+
+ return (usr.st_mtim.tv_sec > other.st_mtim.tv_sec ||
+ (usr.st_mtim.tv_sec == other.st_mtim.tv_sec && usr.st_mtim.tv_nsec > other.st_mtim.tv_nsec)) == !c->negate;
+}
+
static bool condition_test(Condition *c) {
assert(c);
case CONDITION_ARCHITECTURE:
return condition_test_architecture(c);
+ case CONDITION_NEEDS_UPDATE:
+ return condition_test_needs_update(c);
+
case CONDITION_NULL:
return !c->negate;
strv_free(c->environment);
c->environment = e;
- joined = strv_join(c->environment, " ");
+ joined = strv_join_quoted(c->environment);
if (!joined)
return -ENOMEM;
/* Safety check */
if (isempty(init)) {
if (! path_is_os_tree(root))
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified switch root path %s does not seem to be an OS tree. /etc/os-release is missing.", root);
+ return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified switch root path %s does not seem to be an OS tree. os-release file is missing.", root);
} else {
_cleanup_free_ char *p = NULL;
static int method_enable_unit_files_generic(
sd_bus *bus,
sd_bus_message *message,
- Manager *m, const
- char *verb,
+ Manager *m,
+ const char *verb,
int (*call)(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes),
bool carries_install_info,
sd_bus_error *error) {
if (r < 0)
return r;
+ r = sd_bus_message_read(message, "bb", &runtime, &force);
+ if (r < 0)
+ return r;
+
#ifdef HAVE_SELINUX
STRV_FOREACH(i, l) {
Unit *u;
}
#endif
- r = sd_bus_message_read(message, "bb", &runtime, &force);
- if (r < 0)
- return r;
-
scope = m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER;
r = call(scope, runtime, NULL, l, force, &changes, &n_changes);
return method_enable_unit_files_generic(bus, message, userdata, "enable", unit_file_link, false, error);
}
+static int unit_file_preset_without_mode(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes) {
+ return unit_file_preset(scope, runtime, root_dir, files, UNIT_FILE_PRESET_FULL, force, changes, n_changes);
+}
+
static int method_preset_unit_files(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
- return method_enable_unit_files_generic(bus, message, userdata, "enable", unit_file_preset, true, error);
+ return method_enable_unit_files_generic(bus, message, userdata, "enable", unit_file_preset_without_mode, true, error);
}
static int method_mask_unit_files(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
return method_enable_unit_files_generic(bus, message, userdata, "disable", unit_file_mask, false, error);
}
+static int method_preset_unit_files_with_mode(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+
+ _cleanup_strv_free_ char **l = NULL;
+#ifdef HAVE_SELINUX
+ char **i;
+#endif
+ UnitFileChange *changes = NULL;
+ unsigned n_changes = 0;
+ Manager *m = userdata;
+ UnitFilePresetMode mm;
+ UnitFileScope scope;
+ int runtime, force, r;
+ const char *mode;
+
+ assert(bus);
+ assert(message);
+ assert(m);
+
+ r = sd_bus_message_read_strv(message, &l);
+ if (r < 0)
+ return r;
+
+ r = sd_bus_message_read(message, "sbb", &mode, &runtime, &force);
+ if (r < 0)
+ return r;
+
+ if (isempty(mode))
+ mm = UNIT_FILE_PRESET_FULL;
+ else {
+ mm = unit_file_preset_mode_from_string(mode);
+ if (mm < 0)
+ return -EINVAL;
+ }
+
+#ifdef HAVE_SELINUX
+ STRV_FOREACH(i, l) {
+ Unit *u;
+
+ u = manager_get_unit(m, *i);
+ if (u) {
+ r = selinux_unit_access_check(u, message, "enable", error);
+ if (r < 0)
+ return r;
+ }
+ }
+#endif
+
+ scope = m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER;
+
+ r = unit_file_preset(scope, runtime, NULL, l, mm, force, &changes, &n_changes);
+ if (r < 0)
+ return r;
+
+ return reply_unit_file_changes_and_free(m, bus, message, r, changes, n_changes);
+}
+
static int method_disable_unit_files_generic(
sd_bus *bus,
sd_bus_message *message,
return reply_unit_file_changes_and_free(m, bus, message, -1, changes, n_changes);
}
+static int method_preset_all_unit_files(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+ UnitFileChange *changes = NULL;
+ unsigned n_changes = 0;
+ Manager *m = userdata;
+ UnitFilePresetMode mm;
+ UnitFileScope scope;
+ const char *mode;
+ int force, runtime, r;
+
+ assert(bus);
+ assert(message);
+ assert(m);
+
+ r = selinux_access_check(message, "enable", error);
+ if (r < 0)
+ return r;
+
+ r = sd_bus_message_read(message, "sbb", &mode, &runtime, &force);
+ if (r < 0)
+ return r;
+
+ if (isempty(mode))
+ mm = UNIT_FILE_PRESET_FULL;
+ else {
+ mm = unit_file_preset_mode_from_string(mode);
+ if (mm < 0)
+ return -EINVAL;
+ }
+
+ scope = m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER;
+
+ r = unit_file_preset_all(scope, runtime, NULL, mm, force, &changes, &n_changes);
+ if (r < 0)
+ return r;
+
+ return reply_unit_file_changes_and_free(m, bus, message, -1, changes, n_changes);
+}
+
const sd_bus_vtable bus_manager_vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("ReenableUnitFiles", "asbb", "ba(sss)", method_reenable_unit_files, 0),
SD_BUS_METHOD("LinkUnitFiles", "asbb", "a(sss)", method_link_unit_files, 0),
SD_BUS_METHOD("PresetUnitFiles", "asbb", "ba(sss)", method_preset_unit_files, 0),
+ SD_BUS_METHOD("PresetUnitFilesWithMode", "assbb", "ba(sss)", method_preset_unit_files_with_mode, 0),
SD_BUS_METHOD("MaskUnitFiles", "asbb", "a(sss)", method_mask_unit_files, 0),
SD_BUS_METHOD("UnmaskUnitFiles", "asb", "a(sss)", method_unmask_unit_files, 0),
SD_BUS_METHOD("SetDefaultTarget", "sb", "a(sss)", method_set_default_target, 0),
SD_BUS_METHOD("GetDefaultTarget", NULL, "s", method_get_default_target, SD_BUS_VTABLE_UNPRIVILEGED),
+ SD_BUS_METHOD("PresetAllUnitFiles", "sbb", "a(sss)", method_preset_all_unit_files, 0),
SD_BUS_SIGNAL("UnitNew", "so", 0),
SD_BUS_SIGNAL("UnitRemoved", "so", 0),
SD_BUS_PROPERTY("TimeoutUSec", "t", bus_property_get_usec, offsetof(Mount, timeout_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("ControlPID", "u", bus_property_get_pid, offsetof(Mount, control_pid), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("DirectoryMode", "u", bus_property_get_mode, offsetof(Mount, directory_mode), SD_BUS_VTABLE_PROPERTY_CONST),
+ SD_BUS_PROPERTY("SloppyOptions", "b", bus_property_get_bool, offsetof(Mount, sloppy_options), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Result", "s", property_get_result, offsetof(Mount, result), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
BUS_EXEC_COMMAND_VTABLE("ExecMount", offsetof(Mount, exec_command[MOUNT_EXEC_MOUNT]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
BUS_EXEC_COMMAND_VTABLE("ExecUnmount", offsetof(Mount, exec_command[MOUNT_EXEC_UNMOUNT]), SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
static int ask_for_confirmation(char *response, char **argv) {
int saved_stdout = -1, saved_stdin = -1, r;
- char *line;
+ _cleanup_free_ char *line = NULL;
r = setup_confirm_stdio(&saved_stdin, &saved_stdout);
if (r < 0)
return -ENOMEM;
r = ask(response, "yns", "Execute %s? [Yes, No, Skip] ", line);
- free(line);
restore_confirm_stdio(&saved_stdin, &saved_stdout);
return -EINVAL;
}
for (n = 0; n < count; n++) {
- k = load_env_file(pglob.gl_pathv[n], NULL, &p);
+ k = load_env_file(NULL, pglob.gl_pathv[n], NULL, &p);
if (k < 0) {
if (ignore)
continue;
}
static bool tty_may_match_dev_console(const char *tty) {
- char *active = NULL, *console;
- bool b;
+ _cleanup_free_ char *active = NULL;
+ char *console;
if (startswith(tty, "/dev/"))
tty += 5;
return true;
/* "tty0" means the active VC, so it may be the same sometimes */
- b = streq(console, tty) || (streq(console, "tty0") && tty_is_vc(tty));
- free(active);
-
- return b;
+ return streq(console, tty) || (streq(console, "tty0") && tty_is_vc(tty));
}
bool exec_context_may_touch_console(ExecContext *ec) {
}
void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix) {
- char *p2;
+ _cleanup_free_ char *p2 = NULL;
const char *prefix2;
- char *cmd;
+ _cleanup_free_ char *cmd = NULL;
assert(c);
assert(f);
"%sCommand Line: %s\n",
prefix, cmd ? cmd : strerror(ENOMEM));
- free(cmd);
-
exec_status_dump(&c->exec_status, f, prefix2);
-
- free(p2);
}
void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix) {
continue;
if (sig == SIGKILL) {
- _cleanup_free_ char *s;
+ _cleanup_free_ char *s = NULL;
get_process_comm(pid, &s);
log_notice("Sending SIGKILL to PID "PID_FMT" (%s).", pid, strna(s));
void broadcast_signal(int sig, bool wait_for_exit, bool send_sighup) {
sigset_t mask, oldmask;
- Set *pids = NULL;
+ _cleanup_set_free_ Set *pids = NULL;
if (wait_for_exit)
pids = set_new(trivial_hash_func, trivial_compare_func);
wait_for_children(pids, &mask);
assert_se(sigprocmask(SIG_SETMASK, &oldmask, NULL) == 0);
-
- set_free(pids);
}
#include "macro.h"
#include "execute.h"
-
+#include "capability.h"
#include "kmod-setup.h"
static void systemd_kmod_log(
}
int kmod_setup(void) {
+
static const struct {
const char *module;
const char *path;
unsigned int i;
int r;
+ if (have_effective_cap(CAP_SYS_MODULE) == 0)
+ return 0;
+
for (i = 0; i < ELEMENTSOF(kmod_table); i++) {
struct kmod_module *mod;
Unit.ConditionDirectoryNotEmpty, config_parse_unit_condition_path, CONDITION_DIRECTORY_NOT_EMPTY, 0
Unit.ConditionFileNotEmpty, config_parse_unit_condition_path, CONDITION_FILE_NOT_EMPTY, 0
Unit.ConditionFileIsExecutable, config_parse_unit_condition_path, CONDITION_FILE_IS_EXECUTABLE, 0
+Unit.ConditionNeedsUpdate, config_parse_unit_condition_path, CONDITION_NEEDS_UPDATE, 0
Unit.ConditionKernelCommandLine, config_parse_unit_condition_string, CONDITION_KERNEL_COMMAND_LINE, 0
Unit.ConditionArchitecture, config_parse_unit_condition_string, CONDITION_ARCHITECTURE, 0
Unit.ConditionVirtualization, config_parse_unit_condition_string, CONDITION_VIRTUALIZATION, 0
Service.RootDirectoryStartOnly, config_parse_bool, 0, offsetof(Service, root_directory_start_only)
Service.RemainAfterExit, config_parse_bool, 0, offsetof(Service, remain_after_exit)
Service.GuessMainPID, config_parse_bool, 0, offsetof(Service, guess_main_pid)
-Service.RestartPreventExitStatus, config_parse_set_status, 0, offsetof(Service, restart_ignore_status)
+Service.RestartPreventExitStatus, config_parse_set_status, 0, offsetof(Service, restart_prevent_status)
+Service.RestartForceExitStatus, config_parse_set_status, 0, offsetof(Service, restart_force_status)
Service.SuccessExitStatus, config_parse_set_status, 0, offsetof(Service, success_status)
m4_ifdef(`HAVE_SYSV_COMPAT',
`Service.SysVStartPriority, config_parse_sysv_priority, 0, offsetof(Service, sysv_start_priority)',
Mount.Type, config_parse_string, 0, offsetof(Mount, parameters_fragment.fstype)
Mount.TimeoutSec, config_parse_sec, 0, offsetof(Mount, timeout_usec)
Mount.DirectoryMode, config_parse_mode, 0, offsetof(Mount, directory_mode)
+Mount.SloppyOptions, config_parse_bool, 0, offsetof(Mount, sloppy_options)
EXEC_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl
CGROUP_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl
KILL_CONTEXT_CONFIG_ITEMS(Mount)m4_dnl
Install.WantedBy, NULL, 0, 0
Install.RequiredBy, NULL, 0, 0
Install.Also, NULL, 0, 0
+Install.DefaultInstance, NULL, 0, 0
assert(rvalue);
assert(data);
+ /* Empty assignment resets the list */
if (isempty(rvalue)) {
- /* Empty assignment resets the list */
-
- set_free(status_set->signal);
- set_free(status_set->code);
-
- status_set->signal = status_set->code = NULL;
+ exit_status_set_free(status_set);
return 0;
}
val = signal_from_string_try_harder(temp);
if (val > 0) {
- r = set_ensure_allocated(&status_set->signal, trivial_hash_func, trivial_compare_func);
+ r = set_ensure_allocated(&status_set->signal, NULL, NULL);
if (r < 0)
return log_oom();
if (val < 0 || val > 255)
log_syntax(unit, LOG_ERR, filename, line, ERANGE, "Value %d is outside range 0-255, ignoring", val);
else {
- r = set_ensure_allocated(&status_set->code, trivial_hash_func, trivial_compare_func);
+ r = set_ensure_allocated(&status_set->status, NULL, NULL);
if (r < 0)
return log_oom();
- r = set_put(status_set->code, INT_TO_PTR(val));
+ r = set_put(status_set->status, INT_TO_PTR(val));
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, -r, "Unable to store: %s", w);
return r;
}
int machine_id_setup(const char *root) {
+ const char *etc_machine_id, *run_machine_id;
_cleanup_close_ int fd = -1;
- int r;
bool writable = false;
struct stat st;
char id[34]; /* 32 + \n + \0 */
- char *etc_machine_id, *run_machine_id;
+ int r;
- etc_machine_id = strappenda(root, "/etc/machine-id");
- path_kill_slashes(etc_machine_id);
+ if (isempty(root)) {
+ etc_machine_id = "/etc/machine-id";
+ run_machine_id = "/run/machine-id";
+ } else {
+ etc_machine_id = strappenda(root, "/etc/machine-id");
+ path_kill_slashes((char*) etc_machine_id);
- run_machine_id = strappenda(root, "/run/machine-id");
- path_kill_slashes(run_machine_id);
+ run_machine_id = strappenda(root, "/run/machine-id");
+ path_kill_slashes((char*) run_machine_id);
+ }
RUN_WITH_UMASK(0000) {
/* We create this 0444, to indicate that this isn't really
* will be owned by root it doesn't matter much, but maybe
* people look. */
+ mkdir_parents(etc_machine_id, 0755);
fd = open(etc_machine_id, O_RDWR|O_CREAT|O_CLOEXEC|O_NOCTTY, 0444);
if (fd >= 0)
writable = true;
%_udevrulesdir @udevrulesdir@
%_journalcatalogdir @catalogdir@
%_tmpfilesdir @tmpfilesdir@
+%_sysusersdir @sysusersdir@
%_sysctldir @sysctldir@
+%_binfmtdir @binfmtdir@
%systemd_requires \
Requires(post): systemd \
%systemd_post() \
if [ $1 -eq 1 ] ; then \
# Initial installation \
- @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \
+ systemctl preset %{?*} >/dev/null 2>&1 || : \
fi \
%{nil}
%systemd_preun() \
if [ $1 -eq 0 ] ; then \
# Package removal, not upgrade \
- @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \
- @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \
+ systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \
+ systemctl stop %{?*} > /dev/null 2>&1 || : \
fi \
%{nil}
%systemd_postun() \
-@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \
+systemctl daemon-reload >/dev/null 2>&1 || : \
%{nil}
%systemd_postun_with_restart() \
-@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \
+systemctl daemon-reload >/dev/null 2>&1 || : \
if [ $1 -ge 1 ] ; then \
# Package upgrade, not uninstall \
- @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \
+ systemctl try-restart %{?*} >/dev/null 2>&1 || : \
fi \
%{nil}
%udev_hwdb_update() \
-@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \
+udevadm hwdb --update >/dev/null 2>&1 || : \
%{nil}
%udev_rules_update() \
-@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \
+udevadm control --reload >/dev/null 2>&1 || : \
%{nil}
%journal_catalog_update() \
-@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \
+journalctl --update-catalog >/dev/null 2>&1 || : \
%{nil}
%tmpfiles_create() \
-@rootbindir@/systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \
+systemd-tmpfiles --create %{?*} >/dev/null 2>&1 || : \
+%{nil}
+
+%sysusers_create() \
+systemd-sysusers %{?*} >/dev/null 2>&1 || : \
+%{nil}
+
+%sysctl_apply() \
+@rootlibexecdir@/systemd-sysctl %{?*} >/dev/null 2>&1 || : \
+%{nil}
+
+%binfmt_apply() \
+@rootlibexecdir@/systemd-binfmt %{?*} >/dev/null 2>&1 || : \
%{nil}
} else if (streq(key, "rd.systemd.unit") && value) {
- return set_default_unit(value);
+ if (in_initrd())
+ return set_default_unit(value);
} else if (streq(key, "systemd.log_target") && value) {
} else
log_warning("Environment variable name '%s' is not valid. Ignoring.", value);
- } else if (!streq(key, "systemd.restore_state") &&
- !streq(key, "systemd.gpt_auto") &&
- (startswith(key, "systemd.") || startswith(key, "rd.systemd."))) {
-
- const char *c;
-
- /* Ignore systemd.journald.xyz and friends */
- c = key;
- if (startswith(c, "rd."))
- c += 3;
- if (startswith(c, "systemd."))
- c += 8;
- if (c[strcspn(c, ".=")] != '.') {
-
- log_warning("Unknown kernel switch %s. Ignoring.", key);
-
- log_info("Supported kernel switches:\n"
- "systemd.unit=UNIT Default unit to start\n"
- "rd.systemd.unit=UNIT Default unit to start when run in initrd\n"
- "systemd.dump_core=0|1 Dump core on crash\n"
- "systemd.crash_shell=0|1 Run shell on crash\n"
- "systemd.crash_chvt=N Change to VT #N on crash\n"
- "systemd.confirm_spawn=0|1 Confirm every process spawn\n"
- "systemd.show_status=0|1|auto Show status updates on the console during bootup\n"
- "systemd.log_target=console|kmsg|journal|journal-or-kmsg|syslog|syslog-or-kmsg|null\n"
- " Log target\n"
- "systemd.log_level=LEVEL Log level\n"
- "systemd.log_color=0|1 Highlight important log messages\n"
- "systemd.log_location=0|1 Include code location in log messages\n"
- "systemd.default_standard_output=null|tty|syslog|syslog+console|kmsg|kmsg+console|journal|journal+console\n"
- " Set default log output for services\n"
- "systemd.default_standard_error=null|tty|syslog|syslog+console|kmsg|kmsg+console|journal|journal+console\n"
- " Set default log error output for services\n"
- "systemd.setenv=ASSIGNMENT Set an environment variable for all spawned processes\n"
- "systemd.restore_state=0|1 Restore backlight/rfkill state at boot\n");
- }
-
} else if (streq(key, "quiet") && !value) {
+
+ log_set_max_level(LOG_NOTICE);
+
if (arg_show_status == _SHOW_STATUS_UNSET)
arg_show_status = SHOW_STATUS_AUTO;
} else if (streq(key, "debug") && !value) {
+
log_set_max_level(LOG_DEBUG);
+
if (detect_container(NULL) > 0)
log_set_target(LOG_TARGET_CONSOLE);
}
static void test_mtab(void) {
- char *p;
- /* Check that /etc/mtab is a symlink */
+ static const char ok[] =
+ "/proc/self/mounts\0"
+ "/proc/mounts\0"
+ "../proc/self/mounts\0"
+ "../proc/mounts\0";
- if (readlink_malloc("/etc/mtab", &p) >= 0) {
- bool b;
+ _cleanup_free_ char *p = NULL;
+ int r;
- b = streq(p, "/proc/self/mounts") || streq(p, "/proc/mounts");
- free(p);
+ /* Check that /etc/mtab is a symlink to the right place or
+ * non-existing. But certainly not a file, or a symlink to
+ * some weird place... */
- if (b)
- return;
- }
+ r = readlink_malloc("/etc/mtab", &p);
+ if (r == -ENOENT)
+ return;
+ if (r >= 0 && nulstr_contains(ok, p))
+ return;
log_warning("/etc/mtab is not a symlink or not pointing to /proc/self/mounts. "
"This is not supported anymore. "
"PRETTY_NAME", &pretty_name,
"ANSI_COLOR", &ansi_color,
NULL);
+ if (r == -ENOENT) {
+ r = parse_env_file("/usr/lib/os-release", NEWLINE,
+ "PRETTY_NAME", &pretty_name,
+ "ANSI_COLOR", &ansi_color,
+ NULL);
+ }
if (r < 0 && r != -ENOENT)
- log_warning("Failed to read /etc/os-release: %s", strerror(-r));
+ log_warning("Failed to read os-release file: %s", strerror(-r));
return status_printf(NULL, false, false,
"\nWelcome to \x1B[%sm%s\x1B[0m!\n",
bool loaded_policy = false;
bool arm_reboot_watchdog = false;
bool queue_default_job = false;
+ bool empty_etc = false;
char *switch_root_dir = NULL, *switch_root_init = NULL;
static struct rlimit saved_rlimit_nofile = { 0, 0 };
if (in_initrd())
log_info("Running in initial RAM disk.");
+ empty_etc = dir_is_empty("/etc") > 0;
+ if (empty_etc)
+ log_info("Running with unpopulated /etc.");
} else {
- _cleanup_free_ char *t = uid_to_name(getuid());
- log_debug(PACKAGE_STRING " running in user mode for user "PID_FMT"/%s. (" SYSTEMD_FEATURES ")",
- getuid(), t);
+ _cleanup_free_ char *t;
+
+ t = uid_to_name(getuid());
+ log_debug(PACKAGE_STRING " running in user mode for user "UID_FMT"/%s. (" SYSTEMD_FEATURES ")", getuid(), strna(t));
}
if (arg_running_as == SYSTEMD_SYSTEM && !skip_setup) {
status_welcome();
#ifdef HAVE_KMOD
- if (detect_container(NULL) <= 0)
- kmod_setup();
+ kmod_setup();
#endif
hostname_setup();
- machine_id_setup("");
+ machine_id_setup(NULL);
loopback_setup();
test_mtab();
}
}
- if (arg_running_as == SYSTEMD_SYSTEM)
+ if (arg_running_as == SYSTEMD_SYSTEM) {
bump_rlimit_nofile(&saved_rlimit_nofile);
+ if (empty_etc) {
+ r = unit_file_preset_all(UNIT_FILE_SYSTEM, false, NULL, UNIT_FILE_PRESET_FULL, false, NULL, 0);
+ if (r < 0)
+ log_warning("Failed to populate /etc with preset unit settings, ignoring: %s", strerror(-r));
+ else
+ log_info("Populated /etc with preset unit settings.");
+ }
+ }
+
r = manager_new(arg_running_as, &m);
if (r < 0) {
log_error("Failed to allocate manager object: %s", strerror(-r));
if (reexecute) {
const char **args;
unsigned i, args_size;
+ sigset_t ss;
/* Close and disarm the watchdog, so that the new
* instance can reinitialize it, but doesn't get
args[i++] = NULL;
assert(i <= args_size);
+ /* reenable any blocked signals, especially important
+ * if we switch from initial ramdisk to init=... */
+ reset_all_signal_handlers();
+
+ assert_se(sigemptyset(&ss) == 0);
+ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0);
+
if (switch_root_init) {
args[0] = switch_root_init;
execv(args[0], (char* const*) args);
#define N_EARLY_MOUNT 5
static const MountPoint mount_table[] = {
- { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
- NULL, MNT_FATAL|MNT_IN_CONTAINER },
{ "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
NULL, MNT_FATAL|MNT_IN_CONTAINER },
+ { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
+ NULL, MNT_FATAL|MNT_IN_CONTAINER },
{ "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME,
NULL, MNT_FATAL|MNT_IN_CONTAINER },
{ "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
{ "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME,
NULL, MNT_FATAL|MNT_IN_CONTAINER },
{ "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV,
- NULL, MNT_FATAL|MNT_IN_CONTAINER },
+ NULL, MNT_IN_CONTAINER },
{ "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV,
NULL, MNT_FATAL|MNT_IN_CONTAINER },
{ "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
return 0;
}
-static int mount_fix_timeouts(Mount *m) {
- MountParameters *p;
- const char *timeout = NULL;
- Unit *other;
- Iterator i;
- usec_t u;
- char *t;
- int r;
-
- assert(m);
-
- p = get_mount_parameters_fragment(m);
- if (!p)
- return 0;
-
- /* Allow configuration how long we wait for a device that
- * backs a mount point to show up. This is useful to support
- * endless device timeouts for devices that show up only after
- * user input, like crypto devices. */
-
- if ((timeout = mount_test_option(p->options, "comment=systemd.device-timeout")))
- timeout += 31;
- else if ((timeout = mount_test_option(p->options, "x-systemd.device-timeout")))
- timeout += 25;
- else
- return 0;
-
- t = strndup(timeout, strcspn(timeout, ",;" WHITESPACE));
- if (!t)
- return -ENOMEM;
-
- r = parse_sec(t, &u);
- free(t);
-
- if (r < 0) {
- log_warning_unit(UNIT(m)->id,
- "Failed to parse timeout for %s, ignoring: %s",
- m->where, timeout);
- return r;
- }
-
- SET_FOREACH(other, UNIT(m)->dependencies[UNIT_AFTER], i) {
- if (other->type != UNIT_DEVICE)
- continue;
-
- other->job_timeout = u;
- }
-
- return 0;
-}
-
static int mount_verify(Mount *m) {
_cleanup_free_ char *e = NULL;
bool b;
if (r < 0)
return r;
- r = mount_fix_timeouts(m);
- if (r < 0)
- return r;
-
if (u->default_dependencies) {
r = mount_add_default_dependencies(m);
if (r < 0)
if ((r = exec_command_set(
m->control_command,
"/bin/umount",
+ "-n",
m->where,
NULL)) < 0)
goto fail;
r = exec_command_set(
m->control_command,
"/bin/mount",
+ m->sloppy_options ? "-ns" : "-n",
m->parameters_fragment.what,
m->where,
"-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto",
r = exec_command_set(
m->control_command,
"/bin/mount",
+ m->sloppy_options ? "-ns" : "-n",
m->parameters_fragment.what,
m->where,
"-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto",
bool just_mounted:1;
bool just_changed:1;
+ bool sloppy_options;
+
MountResult result;
MountResult reload_result;
#include "mkdir.h"
#include "dev-setup.h"
#include "def.h"
+#include "label.h"
typedef enum MountMode {
/* This is ordered by priority! */
STRV_FOREACH(i, strv) {
(*p)->ignore = false;
+ (*p)->done = false;
if ((mode == INACCESSIBLE || mode == READONLY || mode == READWRITE) && (*i)[0] == '-') {
(*p)->ignore = true;
goto fail;
}
+ label_context_set(d, st.st_mode);
r = mknod(dn, st.st_mode, st.st_rdev);
+ label_context_clear();
+
if (r < 0) {
r = -errno;
goto fail;
if (IN_SET(m->mode, INACCESSIBLE, READONLY))
r = bind_remount_recursive(m->path, true);
- else if (m->mode == READWRITE)
+ else if (IN_SET(m->mode, READWRITE, PRIVATE_TMP, PRIVATE_VAR_TMP, PRIVATE_DEV))
r = bind_remount_recursive(m->path, false);
else
r = 0;
(protect_system == PROTECT_SYSTEM_FULL ? 1 : 0);
if (n > 0) {
- m = mounts = (BindMount *) alloca(n * sizeof(BindMount));
+ m = mounts = (BindMount *) alloca0(n * sizeof(BindMount));
r = append_mounts(&m, read_write_dirs, READWRITE);
if (r < 0)
return r;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <vendor>The systemd Project</vendor>
+ <vendor_url>http://www.freedesktop.org/wiki/Software/systemd</vendor_url>
+
+ <action id="org.freedesktop.systemd1.reply-password">
+ <description>Send passphrase back to system</description>
+ <description xml:lang="de">Passphrase zurück an das System senden</description>
+ <description xml:lang="el">Αποστολή του συνθηματικού πίσω στο σύστημα</description>
+ <description xml:lang="fr">Renvoyer la phrase secrète au système</description>
+ <description xml:lang="it">Inviare la frase segreta (passphrase) al sistema</description>
+ <description xml:lang="pl">Wysłanie hasła z powrotem do systemu</description>
+ <description xml:lang="ru">Отправить пароль системе</description>
+ <message>Authentication is required to send the entered passphrase back to the system.</message>
+ <message xml:lang="de">Legitimierung ist zum Senden des eingegebenen Kennworts zurück an das System notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για αποστολή του εισερχόμενου συνθηματικού πίσω στο σύστημα.</message>
+ <message xml:lang="fr">Authentification requise pour renvoyer la phrase secrète au système.</message>
+ <message xml:lang="it">Autenticazione richiesta per inviare la frase segreta (passphrase) al sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby wysłać podane hasło z powrotem do systemu.</message>
+ <message xml:lang="ru">Чтобы отправить пароль системе, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>no</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.exec.path">/usr/lib/systemd/systemd-reply-password</annotate>
+ </action>
+
+ <action id="org.freedesktop.systemd1.bus-access">
+ <description>Privileged system and service manager access</description>
+ <description xml:lang="de">Privilegierter Zugriff auf die System- und Dienstverwaltung</description>
+ <description xml:lang="el">Προνομιούχος πρόσβαση διαχειριστή συστήματος και υπηρεσίας</description>
+ <description xml:lang="fr">Accès privilégié au gestionnaire du système et des services</description>
+ <description xml:lang="it">Accesso privilegiato per la gestione del sistema e dei servizi</description>
+ <description xml:lang="pl">Uprawniony dostęp do menedżera systemu i usług</description>
+ <description xml:lang="ru">Привилегированный доступ к системному менеджеру</description>
+ <message>Authentication is required to access the system and service manager.</message>
+ <message xml:lang="de">Legitimierung ist notwendig für den Zugriff auf die System- und Dienstverwaltung.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να προσπελάσετε τον διαχειριστή συστήματος και υπηρεσιών.</message>
+ <message xml:lang="fr">Authentification requise pour accéder au gestionnaire du système et des services.</message>
+ <message xml:lang="it">Autenticazione richiesta per la gestione del sistema e dei servizi.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby uzyskać dostęp do menedżera systemu i usług.</message>
+ <message xml:lang="ru">Для привилегированного доступа к системному менеджеру необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>no</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/systemd-stdio-bridge</annotate>
+ </action>
+
+</policyconfig>
\ No newline at end of file
s->control_command = NULL;
s->main_command = NULL;
- set_free(s->restart_ignore_status.code);
- s->restart_ignore_status.code = NULL;
- set_free(s->restart_ignore_status.signal);
- s->restart_ignore_status.signal = NULL;
-
- set_free(s->success_status.code);
- s->success_status.code = NULL;
- set_free(s->success_status.signal);
- s->success_status.signal = NULL;
+ exit_status_set_free(&s->restart_prevent_status);
+ exit_status_set_free(&s->restart_force_status);
+ exit_status_set_free(&s->success_status);
/* This will leak a process, but at least no memory or any of
* our resources */
}
if (s->type == SERVICE_ONESHOT && s->restart != SERVICE_RESTART_NO) {
- log_error_unit(UNIT(s)->id, "%s has Restart setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
+ log_error_unit(UNIT(s)->id, "%s has Restart= setting other than no, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
+ return -EINVAL;
+ }
+
+ if (s->type == SERVICE_ONESHOT && !exit_status_set_is_empty(&s->restart_force_status)) {
+ log_error_unit(UNIT(s)->id, "%s has RestartForceStatus= set, which isn't allowed for Type=oneshot services. Refusing.", UNIT(s)->id);
return -EINVAL;
}
(s->restart == SERVICE_RESTART_ON_FAILURE && s->result != SERVICE_SUCCESS) ||
(s->restart == SERVICE_RESTART_ON_ABNORMAL && !IN_SET(s->result, SERVICE_SUCCESS, SERVICE_FAILURE_EXIT_CODE)) ||
(s->restart == SERVICE_RESTART_ON_WATCHDOG && s->result == SERVICE_FAILURE_WATCHDOG) ||
- (s->restart == SERVICE_RESTART_ON_ABORT && IN_SET(s->result, SERVICE_FAILURE_SIGNAL, SERVICE_FAILURE_CORE_DUMP))) &&
- (s->result != SERVICE_FAILURE_EXIT_CODE ||
- !set_contains(s->restart_ignore_status.code, INT_TO_PTR(s->main_exec_status.status))) &&
- (s->result != SERVICE_FAILURE_SIGNAL ||
- !set_contains(s->restart_ignore_status.signal, INT_TO_PTR(s->main_exec_status.status)))) {
+ (s->restart == SERVICE_RESTART_ON_ABORT && IN_SET(s->result, SERVICE_FAILURE_SIGNAL, SERVICE_FAILURE_CORE_DUMP)) ||
+ (s->main_exec_status.code == CLD_EXITED && set_contains(s->restart_force_status.status, INT_TO_PTR(s->main_exec_status.status))) ||
+ (IN_SET(s->main_exec_status.code, CLD_KILLED, CLD_DUMPED) && set_contains(s->restart_force_status.signal, INT_TO_PTR(s->main_exec_status.status)))) &&
+ (s->main_exec_status.code != CLD_EXITED || !set_contains(s->restart_prevent_status.status, INT_TO_PTR(s->main_exec_status.status))) &&
+ (!IN_SET(s->main_exec_status.code, CLD_KILLED, CLD_DUMPED) || !set_contains(s->restart_prevent_status.signal, INT_TO_PTR(s->main_exec_status.status)))) {
r = service_arm_timer(s, s->restart_usec);
if (r < 0)
return;
fail:
- log_warning_unit(UNIT(s)->id,
- "%s failed to run 'start-pre' task: %s", UNIT(s)->id, strerror(-r));
+ log_warning_unit(UNIT(s)->id, "%s failed to run 'start-pre' task: %s", UNIT(s)->id, strerror(-r));
service_enter_dead(s, SERVICE_FAILURE_RESOURCES, true);
}
if (UNIT(s)->job && UNIT(s)->job->type == JOB_STOP) {
/* Don't restart things if we are going down anyway */
- log_info_unit(UNIT(s)->id,
- "Stop job pending for unit, delaying automatic restart.");
+ log_info_unit(UNIT(s)->id, "Stop job pending for unit, delaying automatic restart.");
r = service_arm_timer(s, s->restart_usec);
if (r < 0)
* it will be canceled as part of the service_stop() call that
* is executed as part of JOB_RESTART. */
- log_debug_unit(UNIT(s)->id,
- "%s scheduled restart job.", UNIT(s)->id);
+ log_debug_unit(UNIT(s)->id, "%s scheduled restart job.", UNIT(s)->id);
return;
fail:
ServiceType type;
ServiceRestart restart;
- ExitStatusSet restart_ignore_status;
+ ExitStatusSet restart_prevent_status;
+ ExitStatusSet restart_force_status;
ExitStatusSet success_status;
/* If set we'll read the main daemon PID from this file */
}
int main(int argc, char *argv[]) {
- bool need_umount = true, need_swapoff = true, need_loop_detach = true, need_dm_detach = true;
+ bool need_umount, need_swapoff, need_loop_detach, need_dm_detach;
bool in_container, use_watchdog = false;
_cleanup_free_ char *cgroup = NULL;
char *arguments[3];
goto error;
}
- in_container = detect_container(NULL) > 0;
-
if (streq(arg_verb, "reboot"))
cmd = RB_AUTOBOOT;
else if (streq(arg_verb, "poweroff"))
log_info("Sending SIGKILL to remaining processes...");
broadcast_signal(SIGKILL, true, false);
- if (in_container) {
- need_swapoff = false;
- need_dm_detach = false;
- need_loop_detach = false;
- }
+ in_container = detect_container(NULL) > 0;
+
+ need_umount = true;
+ need_swapoff = !in_container;
+ need_loop_detach = !in_container;
+ need_dm_detach = !in_container;
/* Unmount all mountpoints, swaps, and loopback devices */
for (retries = 0; retries < FINALIZE_ATTEMPTS; retries++) {
if (retries > 0)
log_info("All filesystems, swaps, loop devices, DM devices detached.");
/* Yay, done */
- break;
+ goto initrd_jump;
}
/* If in this iteration we didn't manage to
* unmount/deactivate anything, we simply give up */
if (!changed) {
- log_error("Cannot finalize remaining file systems and devices, giving up.");
- break;
+ log_info("Cannot finalize remaining%s%s%s%s continuing.",
+ need_umount ? " file systems," : "",
+ need_swapoff ? " swap devices," : "",
+ need_loop_detach ? " loop devices," : "",
+ need_dm_detach ? " DM devices," : "");
+ goto initrd_jump;
}
- log_debug("Couldn't finalize remaining file systems and devices after %u retries, trying again.", retries+1);
+ log_debug("After %u retries, couldn't finalize remaining %s%s%s%s trying again.",
+ retries + 1,
+ need_umount ? " file systems," : "",
+ need_swapoff ? " swap devices," : "",
+ need_loop_detach ? " loop devices," : "",
+ need_dm_detach ? " DM devices," : "");
}
- if (retries >= FINALIZE_ATTEMPTS)
- log_error("Too many iterations, giving up.");
- else
- log_info("Storage is finalized.");
+ log_error("Too many iterations, giving up.");
+
+ initrd_jump:
arguments[0] = NULL;
arguments[1] = arg_verb;
}
}
+ if (need_umount || need_swapoff || need_loop_detach || need_dm_detach)
+ log_error("Failed to finalize %s%s%s%s ignoring",
+ need_umount ? " file systems," : "",
+ need_swapoff ? " swap devices," : "",
+ need_loop_detach ? " loop devices," : "",
+ need_dm_detach ? " DM devices," : "");
+
/* The kernel will automaticall flush ATA disks and suchlike
* on reboot(), but the file systems need to be synce'd
* explicitly in advance. So let's do this here, but not
s->state = state;
if (state != old_state)
- log_debug("%s changed %s -> %s",
- UNIT(s)->id,
- snapshot_state_to_string(old_state),
- snapshot_state_to_string(state));
+ log_debug_unit(UNIT(s)->id,
+ "%s changed %s -> %s",
+ UNIT(s)->id,
+ snapshot_state_to_string(old_state),
+ snapshot_state_to_string(state));
unit_notify(UNIT(s), state_translation_table[old_state], state_translation_table[state], true);
}
state = snapshot_state_from_string(value);
if (state < 0)
- log_debug("Failed to parse state value %s", value);
+ log_debug_unit(u->id, "Failed to parse state value %s", value);
else
s->deserialized_state = state;
r = parse_boolean(value);
if (r < 0)
- log_debug("Failed to parse cleanup value %s", value);
+ log_debug_unit(u->id, "Failed to parse cleanup value %s", value);
else
s->cleanup = r;
if (r < 0)
return r;
} else
- log_debug("Unknown serialization key '%s'", key);
+ log_debug_unit(u->id, "Unknown serialization key '%s'", key);
return 0;
}
SNAPSHOT(u)->cleanup = cleanup;
*_s = SNAPSHOT(u);
+ log_info_unit(u->id, "Created snapshot %s.", u->id);
+
return 0;
fail:
void snapshot_remove(Snapshot *s) {
assert(s);
+ log_info_unit(UNIT(s)->id, "Removing snapshot %s.", UNIT(s)->id);
+
unit_add_to_cleanup_queue(UNIT(s));
}
NULL,
s->exec_runtime,
&pid);
+ if (r < 0)
+ goto fail;
r = unit_watch_pid(UNIT(s), pid);
if (r < 0)
#include "util.h"
#include "path-util.h"
#include "switch-root.h"
+#include "mkdir.h"
+#include "base-filesystem.h"
#include "missing.h"
int switch_root(const char *new_root) {
struct stat new_root_stat;
bool old_root_remove;
const char *i, *temporary_old_root;
+ int r;
if (path_equal(new_root, "/"))
return 0;
* than not that /mnt exists and is suitable as mount point
* and is on the same fs as the old root dir */
temporary_old_root = strappenda(new_root, "/mnt");
+ mkdir_p(temporary_old_root, 0755);
old_root_remove = in_initrd();
snprintf(new_mount, sizeof(new_mount), "%s%s", new_root, i);
char_array_0(new_mount);
+ mkdir_parents(new_mount, 0755);
+
if ((stat(new_mount, &sb) < 0) ||
sb.st_dev != new_root_stat.st_dev) {
}
}
+ r = base_filesystem_create(new_root);
+ if (r < 0) {
+ log_error("Failed to create the base filesystem: %s", strerror(-r));
+ return r;
+ }
+
if (chdir(new_root) < 0) {
log_error("Failed to change directory to %s: %m", new_root);
return -errno;
# (at your option) any later version.
prefix=@prefix@
-exec_prefix=@exec_prefix@
+libdir=@libdir@
systemdutildir=@rootlibexecdir@
systemdsystemunitdir=@systemunitdir@
systemdsystempresetdir=@systempresetdir@
systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemduserunitdir}:/usr/lib/systemd/user:/usr/share/systemd/user
systemdsystemgeneratordir=@systemgeneratordir@
systemdusergeneratordir=@usergeneratordir@
+systemdsleepdir=@systemsleepdir@
+systemdshutdowndir=@systemshutdowndir@
+tmpfilesdir=@tmpfilesdir@
+sysusersdir=@sysusersdir@
+sysctldir=@sysctldir@
+binfmtdir=@binfmtdir@
+modulesloaddir=@modulesloaddir@
catalogdir=@catalogdir@
systemuidmax=@systemuidmax@
systemgidmax=@systemgidmax@
e = getenv("XDG_DATA_HOME");
if (e)
- t->stamp_path = strjoin(e, "/systemd/timers/", UNIT(t)->id, NULL);
+ t->stamp_path = strjoin(e, "/systemd/timers/stamp-", UNIT(t)->id, NULL);
else {
_cleanup_free_ char *h = NULL;
return -EAGAIN;
/* We couldn't merge anything. Failure */
- sd_bus_error_setf(
- e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING, "Transaction contains conflicting jobs '%s' and '%s' for %s. Probably contradicting requirement dependencies configured.",
- job_type_to_string(t), job_type_to_string(k->type), k->unit->id);
+ sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_JOBS_CONFLICTING,
+ "Transaction contains conflicting jobs '%s' and '%s' for %s. "
+ "Probably contradicting requirement dependencies configured.",
+ job_type_to_string(t),
+ job_type_to_string(k->type),
+ k->unit->id);
return r;
}
}
"Found dependency on %s/%s",
k->unit->id, job_type_to_string(k->type));
- if (!delete &&
+ if (!delete && hashmap_get(tr->jobs, k->unit) &&
!unit_matters_to_anchor(k->unit, k)) {
/* Ok, we can drop this one, so let's
* do so. */
if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) &&
!job_type_is_superset(j->type, j->unit->job->type)) {
- sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive.");
+ sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE,
+ "Transaction is destructive.");
return -EEXIST;
}
}
unit->load_state != UNIT_ERROR &&
unit->load_state != UNIT_NOT_FOUND &&
unit->load_state != UNIT_MASKED) {
- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id);
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
+ "Unit %s is not loaded properly.", unit->id);
return -EINVAL;
}
if (type != JOB_STOP && unit->load_state == UNIT_ERROR) {
- sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
- "Unit %s failed to load: %s. "
- "See system logs and 'systemctl status %s' for details.",
- unit->id,
- strerror(-unit->load_error),
- unit->id);
+ if (unit->load_error == -ENOENT)
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
+ "Unit %s failed to load: %s.",
+ unit->id,
+ strerror(-unit->load_error));
+ else
+ sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
+ "Unit %s failed to load: %s. "
+ "See system logs and 'systemctl status %s' for details.",
+ unit->id,
+ strerror(-unit->load_error),
+ unit->id);
return -EINVAL;
}
if (type != JOB_STOP && unit->load_state == UNIT_NOT_FOUND) {
sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
- "Unit %s failed to load: %s.",
- unit->id,
- strerror(-unit->load_error));
+ "Unit %s failed to load: %s.",
+ unit->id, strerror(-unit->load_error));
return -EINVAL;
}
if (type != JOB_STOP && unit->load_state == UNIT_MASKED) {
- sd_bus_error_setf(e, BUS_ERROR_UNIT_MASKED, "Unit %s is masked.", unit->id);
+ sd_bus_error_setf(e, BUS_ERROR_UNIT_MASKED,
+ "Unit %s is masked.", unit->id);
return -EADDRNOTAVAIL;
}
if (!unit_job_is_applicable(unit, type)) {
- sd_bus_error_setf(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE, "Job type %s is not applicable for unit %s.", job_type_to_string(type), unit->id);
+ sd_bus_error_setf(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE,
+ "Job type %s is not applicable for unit %s.",
+ job_type_to_string(type), unit->id);
return -EBADR;
}
}
static int swap_list_get(MountPoint **head) {
- FILE *proc_swaps;
+ _cleanup_fclose_ FILE *proc_swaps = NULL;
unsigned int i;
- int r;
assert(head);
free(dev);
if (!d) {
- r = -ENOMEM;
- goto finish;
+ return -ENOMEM;
}
if (!(swap = new0(MountPoint, 1))) {
free(d);
- r = -ENOMEM;
- goto finish;
+ return -ENOMEM;
}
swap->path = d;
LIST_PREPEND(mount_point, *head, swap);
}
- r = 0;
-
-finish:
- fclose(proc_swaps);
-
- return r;
+ return 0;
}
static int loopback_list_get(MountPoint **head) {
#include "dbus.h"
#include "execute.h"
#include "virt.h"
+#include "dropin.h"
const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = {
[UNIT_SERVICE] = &service_vtable,
return *(ExecRuntime**) ((uint8_t*) u + offset);
}
-static int drop_in_file(Unit *u, UnitSetPropertiesMode mode, const char *name, char **_p, char **_q) {
- _cleanup_free_ char *b = NULL;
- char *p, *q;
- int r;
-
- assert(u);
- assert(name);
- assert(_p);
- assert(_q);
-
- b = xescape(name, "/.");
- if (!b)
- return -ENOMEM;
-
- if (!filename_is_safe(b))
- return -EINVAL;
-
+static int unit_drop_in_dir(Unit *u, UnitSetPropertiesMode mode, bool transient, char **dir) {
if (u->manager->running_as == SYSTEMD_USER) {
- _cleanup_free_ char *c = NULL;
+ int r;
- r = user_config_home(&c);
- if (r < 0)
- return r;
+ r = user_config_home(dir);
if (r == 0)
return -ENOENT;
+ return r;
+ }
- p = strjoin(c, "/", u->id, ".d", NULL);
- } else if (mode == UNIT_PERSISTENT && !u->transient)
- p = strjoin("/etc/systemd/system/", u->id, ".d", NULL);
+ if (mode == UNIT_PERSISTENT && !transient)
+ *dir = strdup("/etc/systemd/system");
else
- p = strjoin("/run/systemd/system/", u->id, ".d", NULL);
- if (!p)
+ *dir = strdup("/run/systemd/system");
+ if (!*dir)
return -ENOMEM;
- q = strjoin(p, "/90-", b, ".conf", NULL);
- if (!q) {
- free(p);
- return -ENOMEM;
- }
-
- *_p = p;
- *_q = q;
return 0;
}
+static int unit_drop_in_file(Unit *u,
+ UnitSetPropertiesMode mode, const char *name, char **p, char **q) {
+ _cleanup_free_ char *dir = NULL;
+ int r;
+
+ assert(u);
+
+ r = unit_drop_in_dir(u, mode, u->transient, &dir);
+ if (r < 0)
+ return r;
+
+ return drop_in_file(dir, u->id, 50, name, p, q);
+}
+
int unit_write_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name, const char *data) {
- _cleanup_free_ char *p = NULL, *q = NULL;
+
+ _cleanup_free_ char *dir = NULL;
int r;
assert(u);
- assert(name);
- assert(data);
if (!IN_SET(mode, UNIT_PERSISTENT, UNIT_RUNTIME))
return 0;
- r = drop_in_file(u, mode, name, &p, &q);
+ r = unit_drop_in_dir(u, mode, u->transient, &dir);
if (r < 0)
return r;
- mkdir_p(p, 0755);
- return write_string_file_atomic_label(q, data);
+ return write_drop_in(dir, u->id, 50, name, data);
}
int unit_write_drop_in_format(Unit *u, UnitSetPropertiesMode mode, const char *name, const char *format, ...) {
if (!IN_SET(mode, UNIT_PERSISTENT, UNIT_RUNTIME))
return 0;
- r = drop_in_file(u, mode, name, &p, &q);
+ r = unit_drop_in_file(u, mode, name, &p, &q);
if (r < 0)
return r;
#include "mkdir.h"
#include "strv.h"
#include "fileio.h"
+#include "path-util.h"
+#include "dropin.h"
+#include "generator.h"
static const char *arg_dest = "/tmp";
static bool arg_enabled = true;
const char *password,
const char *options) {
- _cleanup_free_ char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *to = NULL, *e = NULL;
+ _cleanup_free_ char *p = NULL, *n = NULL, *d = NULL, *u = NULL, *to = NULL, *e = NULL,
+ *filtered = NULL;
_cleanup_fclose_ FILE *f = NULL;
bool noauto, nofail, tmp, swap;
char *from;
"Conflicts=umount.target\n"
"BindsTo=dev-mapper-%i.device\n"
"IgnoreOnIsolate=true\n"
- "After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
+ "After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target\n",
f);
if (!nofail)
if (!uu)
return log_oom();
- if (is_device_path(uu)) {
- _cleanup_free_ char *dd;
+ if (!path_equal(uu, "/dev/null")) {
- dd = unit_name_from_path(uu, ".device");
- if (!dd)
- return log_oom();
+ if (is_device_path(uu)) {
+ _cleanup_free_ char *dd;
- fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
- } else
- fprintf(f, "RequiresMountsFor=%s\n", password);
+ dd = unit_name_from_path(uu, ".device");
+ if (!dd)
+ return log_oom();
+
+ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
+ } else
+ fprintf(f, "RequiresMountsFor=%s\n", password);
+ }
}
}
"RequiresMountsFor=%s\n",
u);
+ r = generator_write_timeouts(arg_dest, device, name, options, &filtered);
+ if (r < 0)
+ return r;
+
fprintf(f,
"\n[Service]\n"
"Type=oneshot\n"
"TimeoutSec=0\n" /* the binary handles timeouts anyway */
"ExecStart=" SYSTEMD_CRYPTSETUP_PATH " attach '%s' '%s' '%s' '%s'\n"
"ExecStop=" SYSTEMD_CRYPTSETUP_PATH " detach '%s'\n",
- name, u, strempty(password), strempty(options),
+ name, u, strempty(password), strempty(filtered),
name);
if (tmp)
}
if (!noauto && !nofail) {
-
- free(p);
- p = strjoin(arg_dest, "/dev-mapper-", e, ".device.d/50-job-timeout-sec-0.conf", NULL);
- if (!p)
- return log_oom();
-
- mkdir_parents_label(p, 0755);
- r = write_string_file(p,
- "# Automatically generated by systemd-cryptsetup-generator\n\n"
- "[Unit]\n"
- "JobTimeoutSec=0\n"); /* the binary handles timeouts anyway */
+ r = write_drop_in(arg_dest, name, 90, "device-timeout",
+ "# Automatically generated by systemd-cryptsetup-generator \n\n"
+ "[Unit]\nJobTimeoutSec=0");
if (r < 0) {
log_error("Failed to write device drop-in: %s", strerror(-r));
return r;
if (!arg_keyfile)
return log_oom();
- } else if (startswith(key, "luks.") || startswith(key, "rd.luks."))
- log_warning("Unknown kernel switch %s. Ignoring.", key);
+ }
return 0;
}
assert(cd);
assert(name);
- assert(key_file || passwords);
+ assert(key_file || (passwords && passwords[0]));
if (arg_tcrypt_hidden)
params.flags |= CRYPT_TCRYPT_HIDDEN_HEADER;
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "util.h"
+#include "strv.h"
+#include "unit-name.h"
+#include "mkdir.h"
+
+static const char *arg_dest = "/tmp";
+static char **arg_mask = NULL;
+static char **arg_wants = NULL;
+static bool arg_debug_shell = false;
+
+static int parse_proc_cmdline_item(const char *key, const char *value) {
+ int r;
+
+ assert(key);
+
+ if (streq(key, "systemd.mask")) {
+
+ if (!value)
+ log_error("Missing argument for systemd.mask= kernel command line parameter.");
+ else {
+ char *n;
+
+ n = unit_name_mangle(value, MANGLE_NOGLOB);
+ if (!n)
+ return log_oom();
+
+ r = strv_consume(&arg_mask, n);
+ if (r < 0)
+ return log_oom();
+ }
+
+ } else if (streq(key, "systemd.wants")) {
+
+ if (!value)
+ log_error("Missing argument for systemd.want= kernel command line parameter.");
+ else {
+ char *n;
+
+ n = unit_name_mangle(value, MANGLE_NOGLOB);
+ if (!n)
+ return log_oom();
+
+ r = strv_consume(&arg_wants, n);
+ if (r < 0)
+ return log_oom();
+ }
+
+ } else if (streq(key, "systemd.debug-shell")) {
+
+ if (value) {
+ r = parse_boolean(value);
+ if (r < 0)
+ log_error("Failed to parse systemd.debug-shell= argument '%s', ignoring.", value);
+ else
+ arg_debug_shell = r;
+ } else
+ arg_debug_shell = true;
+ }
+
+ return 0;
+}
+
+static int generate_mask_symlinks(void) {
+ char **u;
+ int r = 0;
+
+ if (strv_isempty(arg_mask))
+ return 0;
+
+ STRV_FOREACH(u, arg_mask) {
+ _cleanup_free_ char *p = NULL;
+
+ p = strjoin(arg_dest, "/", *u, NULL);
+ if (!p)
+ return log_oom();
+
+ if (symlink("/dev/null", p) < 0) {
+ log_error("Failed to create mask symlink %s: %m", p);
+ r = -errno;
+ }
+ }
+
+ return r;
+}
+
+static int generate_wants_symlinks(void) {
+ char **u;
+ int r = 0;
+
+ if (strv_isempty(arg_wants))
+ return 0;
+
+ STRV_FOREACH(u, arg_wants) {
+ _cleanup_free_ char *p = NULL, *f = NULL;
+
+ p = strjoin(arg_dest, "/default.target.wants/", *u, NULL);
+ if (!p)
+ return log_oom();
+
+ f = strappend(SYSTEM_DATA_UNIT_PATH "/", *u);
+ if (!f)
+ return log_oom();
+
+ mkdir_parents_label(p, 0755);
+
+ if (symlink(f, p) < 0) {
+ log_error("Failed to create wants symlink %s: %m", p);
+ r = -errno;
+ }
+ }
+
+ return r;
+}
+
+int main(int argc, char *argv[]) {
+ int r, q;
+
+ if (argc > 1 && argc != 4) {
+ log_error("This program takes three or no arguments.");
+ return EXIT_FAILURE;
+ }
+
+ if (argc > 1)
+ arg_dest = argv[2];
+
+ log_set_target(LOG_TARGET_SAFE);
+ log_parse_environment();
+ log_open();
+
+ umask(0022);
+
+ if (parse_proc_cmdline(parse_proc_cmdline_item) < 0)
+ return EXIT_FAILURE;
+
+ if (arg_debug_shell) {
+ r = strv_extend(&arg_wants, "debug-shell.service");
+ if (r < 0) {
+ r = log_oom();
+ goto finish;
+ }
+ }
+
+ r = generate_mask_symlinks();
+
+ q = generate_wants_symlinks();
+ if (q < 0)
+ r = q;
+
+finish:
+ return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+
+}
else if (streq(value, "skip"))
arg_skip = true;
else
- log_warning("Invalid fsck.mode= parameter. Ignoring.");
+ log_warning("Invalid fsck.mode= parameter '%s'. Ignoring.", value);
+
} else if (streq(key, "fsck.repair") && value) {
if (streq(value, "preen"))
else if (streq(value, "no"))
arg_repair = "-n";
else
- log_warning("Invalid fsck.repair= parameter. Ignoring.");
- } else if (startswith(key, "fsck."))
- log_warning("Invalid fsck parameter. Ignoring.");
+ log_warning("Invalid fsck.repair= parameter '%s'. Ignoring.", value);
+ }
+
#ifdef HAVE_SYSV_COMPAT
else if (streq(key, "fastboot") && !value) {
log_warning("Please pass 'fsck.mode=skip' rather than 'fastboot' on the kernel command line.");
arg_skip = true;
+
} else if (streq(key, "forcefsck") && !value) {
log_warning("Please pass 'fsck.mode=force' rather than 'forcefsck' on the kernel command line.");
arg_force = true;
}
static void test_files(void) {
+
#ifdef HAVE_SYSV_COMPAT
if (access("/fastboot", F_OK) >= 0) {
log_error("Please pass 'fsck.mode=skip' on the kernel command line rather than creating /fastboot on the root file system.");
type = udev_device_get_property_value(udev_device, "ID_FS_TYPE");
if (type) {
r = fsck_exists(type);
- if (r < 0) {
- if (r == -ENOENT) {
- log_info("fsck.%s doesn't exist, not checking file system on %s",
- type, device);
- return EXIT_SUCCESS;
- } else
- log_warning("fsck.%s cannot be used for %s: %s",
- type, device, strerror(-r));
- }
+ if (r == -ENOENT) {
+ log_info("fsck.%s doesn't exist, not checking file system on %s", type, device);
+ return EXIT_SUCCESS;
+ } else if (r < 0)
+ log_warning("fsck.%s cannot be used for %s: %s", type, device, strerror(-r));
}
if (arg_show_progress)
static char *arg_root_options = NULL;
static int arg_root_rw = -1;
+
static int mount_find_pri(struct mntent *me, int *ret) {
char *end, *pri;
unsigned long r;
return -errno;
}
+ /* use what as where, to have a nicer error message */
+ r = generator_write_timeouts(arg_dest, what, what, me->mnt_opts, NULL);
+ if (r < 0)
+ return r;
+
if (!noauto) {
lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL);
if (!lnk)
_cleanup_free_ char
*name = NULL, *unit = NULL, *lnk = NULL,
- *automount_name = NULL, *automount_unit = NULL;
+ *automount_name = NULL, *automount_unit = NULL,
+ *filtered = NULL;
_cleanup_fclose_ FILE *f = NULL;
int r;
if (!isempty(fstype) && !streq(fstype, "auto"))
fprintf(f, "Type=%s\n", fstype);
- if (!isempty(opts) && !streq(opts, "defaults"))
- fprintf(f, "Options=%s\n", opts);
+ r = generator_write_timeouts(arg_dest, what, where, opts, &filtered);
+ if (r < 0)
+ return r;
+
+ if (!isempty(filtered) && !streq(filtered, "defaults"))
+ fprintf(f, "Options=%s\n", filtered);
fflush(f);
if (ferror(f)) {
}
static int add_root_mount(void) {
- _cleanup_free_ char *o = NULL, *what = NULL;
+ _cleanup_free_ char *what = NULL;
+ const char *opts;
if (isempty(arg_root_what)) {
log_debug("Could not find a root= entry on the kernel commandline.");
}
if (!arg_root_options)
- o = strdup(arg_root_rw > 0 ? "rw" : "ro");
- else {
- if (arg_root_rw >= 0 ||
- (!mount_test_option(arg_root_options, "ro") &&
- !mount_test_option(arg_root_options, "rw")))
- o = strjoin(arg_root_options, ",", arg_root_rw > 0 ? "rw" : "ro", NULL);
- else
- o = strdup(arg_root_options);
- }
- if (!o)
- return log_oom();
+ opts = arg_root_rw > 0 ? "rw" : "ro";
+ else if (arg_root_rw >= 0 ||
+ (!mount_test_option(arg_root_options, "ro") &&
+ !mount_test_option(arg_root_options, "rw")))
+ opts = strappenda3(arg_root_options, ",", arg_root_rw > 0 ? "rw" : "ro");
+ else
+ opts = arg_root_options;
log_debug("Found entry what=%s where=/sysroot type=%s", what, strna(arg_root_fstype));
return add_mount(what,
"/sysroot",
arg_root_fstype,
- o,
+ opts,
1,
false,
false,
arg_root_rw = true;
else if (streq(key, "ro") && !value)
arg_root_rw = false;
- else if (startswith(key, "fstab.") || startswith(key, "rd.fstab."))
- log_warning("Unknown kernel switch %s. Ignoring.", key);
return 0;
}
if (arg_fstab_enabled) {
int k;
+ log_debug("Parsing /etc/fstab");
+
/* Parse the local /etc/fstab, possibly from the initrd */
k = parse_fstab(false);
if (k < 0)
/* If running in the initrd also parse the /etc/fstab from the host */
if (in_initrd()) {
+ log_debug("Parsing /sysroot/etc/fstab");
+
k = parse_fstab(true);
if (k < 0)
r = k;
static const char *arg_dest = "/tmp";
static int add_symlink(const char *fservice, const char *tservice) {
- _cleanup_free_ char *from = NULL, *to = NULL;
+ char *from, *to;
int r;
assert(fservice);
assert(tservice);
- from = strappend(SYSTEM_DATA_UNIT_PATH "/", fservice);
- if (!from)
- return log_oom();
-
- to = strjoin(arg_dest,"/getty.target.wants/", tservice, NULL);
- if (!to)
- return log_oom();
+ from = strappenda(SYSTEM_DATA_UNIT_PATH "/", fservice);
+ to = strappenda3(arg_dest, "/getty.target.wants/", tservice);
mkdir_parents_label(to, 0755);
log_debug("Automatically adding serial getty for /dev/%s.", tty);
- n = unit_name_replace_instance("serial-getty@.service", tty);
+ n = unit_name_from_path_instance("serial-getty", tty, ".service");
if (!n)
return log_oom();
log_debug("Automatically adding container getty for /dev/pts/%s.", tty);
- n = unit_name_replace_instance("container-getty@.service", tty);
+ n = unit_name_from_path_instance("container-getty", tty, ".service");
if (!n)
return log_oom();
/* Automatically add in a serial getty on the first
* virtualizer console */
NULSTR_FOREACH(j, virtualization_consoles) {
- _cleanup_free_ char *p = NULL;
-
- p = strappend("/sys/class/tty/", j);
- if (!p) {
- log_oom();
- return EXIT_FAILURE;
- }
+ char *p;
+ p = strappenda("/sys/class/tty/", j);
if (access(p, F_OK) < 0)
continue;
arg_root_rw = true;
else if (streq(key, "ro") && !value)
arg_root_rw = false;
- else if (startswith(key, "systemd.gpt-auto.") || startswith(key, "rd.systemd.gpt-auto."))
- log_warning("Unknown kernel switch %s. Ignoring.", key);
return 0;
}
--- /dev/null
+/***
+ This file is part of systemd.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+***/
+
+{
+global:
+ g_udev_client_get_type;
+ g_udev_client_new;
+ g_udev_client_query_by_device_file;
+ g_udev_client_query_by_device_number;
+ g_udev_client_query_by_subsystem;
+ g_udev_client_query_by_subsystem_and_name;
+ g_udev_client_query_by_sysfs_path;
+ g_udev_device_get_action;
+ g_udev_device_get_device_file;
+ g_udev_device_get_device_file_symlinks;
+ g_udev_device_get_device_number;
+ g_udev_device_get_device_type;
+ g_udev_device_get_devtype;
+ g_udev_device_get_driver;
+ g_udev_device_get_is_initialized;
+ g_udev_device_get_name;
+ g_udev_device_get_number;
+ g_udev_device_get_parent;
+ g_udev_device_get_parent_with_subsystem;
+ g_udev_device_get_property;
+ g_udev_device_get_property_as_boolean;
+ g_udev_device_get_property_as_double;
+ g_udev_device_get_property_as_int;
+ g_udev_device_get_property_as_strv;
+ g_udev_device_get_property_as_uint64;
+ g_udev_device_get_property_keys;
+ g_udev_device_get_seqnum;
+ g_udev_device_get_subsystem;
+ g_udev_device_get_sysfs_attr;
+ g_udev_device_get_sysfs_attr_as_boolean;
+ g_udev_device_get_sysfs_attr_as_double;
+ g_udev_device_get_sysfs_attr_as_int;
+ g_udev_device_get_sysfs_attr_as_strv;
+ g_udev_device_get_sysfs_attr_as_uint64;
+ g_udev_device_get_sysfs_attr_keys;
+ g_udev_device_get_sysfs_path;
+ g_udev_device_get_tags;
+ g_udev_device_get_type;
+ g_udev_device_get_usec_since_initialized;
+ g_udev_device_has_property;
+ g_udev_device_has_sysfs_attr;
+ g_udev_device_type_get_type;
+ g_udev_enumerator_add_match_is_initialized;
+ g_udev_enumerator_add_match_name;
+ g_udev_enumerator_add_match_property;
+ g_udev_enumerator_add_match_subsystem;
+ g_udev_enumerator_add_match_sysfs_attr;
+ g_udev_enumerator_add_match_tag;
+ g_udev_enumerator_add_nomatch_subsystem;
+ g_udev_enumerator_add_nomatch_sysfs_attr;
+ g_udev_enumerator_add_sysfs_path;
+ g_udev_enumerator_execute;
+ g_udev_enumerator_get_type;
+ g_udev_enumerator_new;
+local:
+ *;
+};
"PRETTY_NAME", &c->data[PROP_OS_PRETTY_NAME],
"CPE_NAME", &c->data[PROP_OS_CPE_NAME],
NULL);
+ if (r == -ENOENT) {
+ r = parse_env_file("/usr/lib/os-release", NEWLINE,
+ "PRETTY_NAME", &c->data[PROP_OS_PRETTY_NAME],
+ "CPE_NAME", &c->data[PROP_OS_CPE_NAME],
+ NULL);
+ }
+
if (r < 0 && r != -ENOENT)
return r;
}
static bool hostname_is_useful(const char *hn) {
- return !isempty(hn) && !streq(hn, "localhost");
+ return !isempty(hn) && !is_localhost(hn);
}
static int context_update_kernel_hostname(Context *c) {
assert(c);
- r = load_env_file("/etc/machine-info", NULL, &l);
+ r = load_env_file(NULL, "/etc/machine-info", NULL, &l);
if (r < 0 && r != -ENOENT)
return r;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <vendor>The systemd Project</vendor>
+ <vendor_url>http://www.freedesktop.org/wiki/Software/systemd</vendor_url>
+
+ <action id="org.freedesktop.hostname1.set-hostname">
+ <description>Set host name</description>
+ <description xml:lang="de">Rechnername festlegen</description>
+ <description xml:lang="el">Ορισμός ονόματος οικοδεσπότη</description>
+ <description xml:lang="fr">Définir le nom d'hôte</description>
+ <description xml:lang="it">Configura il nome host</description>
+ <description xml:lang="pl">Ustawienie nazwy komputera</description>
+ <description xml:lang="ru">Настроить имя компьютера</description>
+ <message>Authentication is required to set the local host name.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen des lokalen Rechnernamens notwendig</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε τοπικά όνομα οικοδεσπότη.</message>
+ <message xml:lang="fr">Authentification requise pour définir le nom d'hôte local.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare il nome host locale.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić nazwę lokalnego komputera.</message>
+ <message xml:lang="ru">Чтобы настроить имя компьютера, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.hostname1.set-static-hostname">
+ <description>Set static host name</description>
+ <description xml:lang="de">Statischen Rechnernamen festlegen</description>
+ <description xml:lang="el">Ορισμός στατικού ονόματος οικοδεσπότη</description>
+ <description xml:lang="fr">Définir le nom d'hôte statique</description>
+ <description xml:lang="it">Configura il nome host statico</description>
+ <description xml:lang="pl">Ustawienie statycznej nazwy komputera</description>
+ <description xml:lang="ru">Настроить статическое имя компьютера</description>
+ <message>Authentication is required to set the statically configured local host name, as well as the pretty host name.</message>
+ <message xml:lang="de">Authentifizierung ist erforderlich, um den statisch geänderten, lokalen Rechnernamen, sowie den beschönigten Rechnernamen festzulegen.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε το στατικά ρυθμισμένο όνομα τοπικού οικοδεσπότη, καθώς και το pretty όνομα οικοδεσπότη.</message>
+ <message xml:lang="fr">Authentification requise pour définir le nom d'hôte local de manière statique, tout comme le nom d'hôte familier.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare staticamente il nome host locale e il nome host descrittivo.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić statycznie skonfigurowaną nazwę lokalnego komputera, a także jego ładną nazwę.</message>
+ <message xml:lang="ru">Чтобы настроить статическое имя компьютера, а также его «красивое» имя, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.hostname1.set-hostname org.freedesktop.hostname1.set-machine-info</annotate>
+ </action>
+
+ <action id="org.freedesktop.hostname1.set-machine-info">
+ <description>Set machine information</description>
+ <description xml:lang="de">Maschinen-Information festlegen</description>
+ <description xml:lang="el">Ορισμός πληροφοριών μηχανής</description>
+ <description xml:lang="fr">Définir les informations sur la machine</description>
+ <description xml:lang="it">Configura le informazioni sulla macchina</description>
+ <description xml:lang="pl">Ustawienie informacji o komputerze</description>
+ <description xml:lang="ru">Настроить информацию о компьютере</description>
+ <message>Authentication is required to set local machine information.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen der lokalen Maschinen-Information erforderlich.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε πληροφορίες τοπικής μηχανής.</message>
+ <message xml:lang="fr">Authentification requise pour définir les informations sur la machine locale.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare le informazioni sulla macchina locale.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić informacje o lokalnym komputerze.</message>
+ <message xml:lang="ru">Чтобы настроить информацию о компьютере, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+</policyconfig>
\ No newline at end of file
#include <assert.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include <lzma.h>
-#include "macro.h"
#include "compress.h"
+#include "macro.h"
+#include "util.h"
bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) {
- lzma_stream s = LZMA_STREAM_INIT;
lzma_ret ret;
- bool b = false;
+ size_t out_pos = 0;
assert(src);
assert(src_size > 0);
/* Returns false if we couldn't compress the data or the
* compressed result is longer than the original */
- ret = lzma_easy_encoder(&s, LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE);
+ ret = lzma_easy_buffer_encode(LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE, NULL,
+ src, src_size, dst, &out_pos, src_size);
if (ret != LZMA_OK)
return false;
- s.next_in = src;
- s.avail_in = src_size;
- s.next_out = dst;
- s.avail_out = src_size;
-
- /* Does it fit? */
- if (lzma_code(&s, LZMA_FINISH) != LZMA_STREAM_END)
- goto fail;
-
/* Is it actually shorter? */
- if (s.avail_out == 0)
- goto fail;
-
- *dst_size = src_size - s.avail_out;
- b = true;
-
-fail:
- lzma_end(&s);
+ if (out_pos == src_size)
+ return false;
- return b;
+ *dst_size = out_pos;
+ return true;
}
bool uncompress_blob(const void *src, uint64_t src_size,
return b;
}
+
+int compress_stream(int fdf, int fdt, uint32_t preset, off_t max_bytes) {
+ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT;
+ lzma_ret ret;
+
+ uint8_t buf[BUFSIZ], out[BUFSIZ];
+ lzma_action action = LZMA_RUN;
+
+ assert(fdf >= 0);
+ assert(fdt >= 0);
+
+ ret = lzma_easy_encoder(&s, preset, LZMA_CHECK_CRC64);
+ if (ret != LZMA_OK) {
+ log_error("Failed to initialize XZ encoder: code %d", ret);
+ return -EINVAL;
+ }
+
+ for (;;) {
+ if (s.avail_in == 0 && action == LZMA_RUN) {
+ size_t m = sizeof(buf);
+ ssize_t n;
+
+ if (max_bytes != -1 && m > (size_t) max_bytes)
+ m = max_bytes;
+
+ n = read(fdf, buf, m);
+ if (n < 0)
+ return -errno;
+ if (n == 0)
+ action = LZMA_FINISH;
+ else {
+ s.next_in = buf;
+ s.avail_in = n;
+
+ if (max_bytes != -1) {
+ assert(max_bytes >= n);
+ max_bytes -= n;
+ }
+ }
+ }
+
+ if (s.avail_out == 0) {
+ s.next_out = out;
+ s.avail_out = sizeof(out);
+ }
+
+ ret = lzma_code(&s, action);
+ if (ret != LZMA_OK && ret != LZMA_STREAM_END) {
+ log_error("Compression failed: code %d", ret);
+ return -EBADMSG;
+ }
+
+ if (s.avail_out == 0 || ret == LZMA_STREAM_END) {
+ ssize_t n, k;
+
+ n = sizeof(out) - s.avail_out;
+
+ errno = 0;
+ k = loop_write(fdt, out, n, false);
+ if (k < 0)
+ return k;
+ if (k != n)
+ return errno ? -errno : -EIO;
+
+ if (ret == LZMA_STREAM_END) {
+ log_debug("Compression finished (%zu -> %zu bytes, %.1f%%)",
+ s.total_in, s.total_out,
+ (double) s.total_out / s.total_in * 100);
+
+ return 0;
+ }
+ }
+ }
+}
+
+int decompress_stream(int fdf, int fdt, off_t max_bytes) {
+ _cleanup_(lzma_end) lzma_stream s = LZMA_STREAM_INIT;
+ lzma_ret ret;
+
+ uint8_t buf[BUFSIZ], out[BUFSIZ];
+ lzma_action action = LZMA_RUN;
+
+ assert(fdf >= 0);
+ assert(fdt >= 0);
+
+ ret = lzma_stream_decoder(&s, UINT64_MAX, 0);
+ if (ret != LZMA_OK) {
+ log_error("Failed to initialize XZ decoder: code %d", ret);
+ return -EINVAL;
+ }
+
+ for (;;) {
+ if (s.avail_in == 0 && action == LZMA_RUN) {
+ ssize_t n;
+
+ n = read(fdf, buf, sizeof(buf));
+ if (n < 0)
+ return -errno;
+ if (n == 0)
+ action = LZMA_FINISH;
+ else {
+ s.next_in = buf;
+ s.avail_in = n;
+ }
+ }
+
+ if (s.avail_out == 0) {
+ s.next_out = out;
+ s.avail_out = sizeof(out);
+ }
+
+ ret = lzma_code(&s, action);
+ if (ret != LZMA_OK && ret != LZMA_STREAM_END) {
+ log_error("Decompression failed: code %d", ret);
+ return -EBADMSG;
+ }
+
+ if (s.avail_out == 0 || ret == LZMA_STREAM_END) {
+ ssize_t n, k;
+
+ n = sizeof(out) - s.avail_out;
+
+ if (max_bytes != -1) {
+ if (max_bytes < n)
+ return -E2BIG;
+
+ max_bytes -= n;
+ }
+
+ errno = 0;
+ k = loop_write(fdt, out, n, false);
+ if (k < 0)
+ return k;
+ if (k != n)
+ return errno ? -errno : -EIO;
+
+ if (ret == LZMA_STREAM_END) {
+ log_debug("Decompression finished (%zu -> %zu bytes, %.1f%%)",
+ s.total_in, s.total_out,
+ (double) s.total_out / s.total_in * 100);
+
+ return 0;
+ }
+ }
+ }
+}
#include <inttypes.h>
#include <stdbool.h>
+#include <unistd.h>
bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size);
void **buffer, uint64_t *buffer_size,
const void *prefix, uint64_t prefix_len,
uint8_t extra);
+
+int compress_stream(int fdf, int fdt, uint32_t preset, off_t max_size);
+int decompress_stream(int fdf, int fdt, off_t max_size);
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <sys/statvfs.h>
+
+#include "util.h"
+#include "time-util.h"
+#include "hashmap.h"
+#include "macro.h"
+
+#include "coredump-vacuum.h"
+
+#define DEFAULT_MAX_USE_LOWER (off_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
+#define DEFAULT_MAX_USE_UPPER (off_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
+#define DEFAULT_KEEP_FREE_UPPER (off_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
+#define DEFAULT_KEEP_FREE (off_t) (1024ULL*1024ULL) /* 1 MB */
+
+struct vacuum_candidate {
+ unsigned n_files;
+ char *oldest_file;
+ usec_t oldest_mtime;
+};
+
+static void vacuum_candidate_free(struct vacuum_candidate *c) {
+ if (!c)
+ return;
+
+ free(c->oldest_file);
+ free(c);
+}
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct vacuum_candidate*, vacuum_candidate_free);
+
+static void vacuum_candidate_hasmap_free(Hashmap *h) {
+ struct vacuum_candidate *c;
+
+ while ((c = hashmap_steal_first(h)))
+ vacuum_candidate_free(c);
+
+ hashmap_free(h);
+}
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(Hashmap*, vacuum_candidate_hasmap_free);
+
+static int uid_from_file_name(const char *filename, uid_t *uid) {
+ const char *p, *e, *u;
+
+ p = startswith(filename, "core.");
+ if (!p)
+ return -EINVAL;
+
+ /* Skip the comm field */
+ p = strchr(p, '.');
+ if (!p)
+ return -EINVAL;
+ p++;
+
+ /* Find end up UID */
+ e = strchr(p, '.');
+ if (!e)
+ return -EINVAL;
+
+ u = strndupa(p, e-p);
+ return parse_uid(u, uid);
+}
+
+static bool vacuum_necessary(int fd, off_t sum, off_t keep_free, off_t max_use) {
+ off_t fs_size = 0, fs_free = (off_t) -1;
+ struct statvfs sv;
+
+ assert(fd >= 0);
+
+ if (fstatvfs(fd, &sv) >= 0) {
+ fs_size = sv.f_frsize * sv.f_blocks;
+ fs_free = sv.f_frsize * sv.f_bfree;
+ }
+
+ if (max_use == (off_t) -1) {
+
+ if (fs_size > 0) {
+ max_use = PAGE_ALIGN(fs_size / 10); /* 10% */
+
+ if (max_use > DEFAULT_MAX_USE_UPPER)
+ max_use = DEFAULT_MAX_USE_UPPER;
+
+ if (max_use < DEFAULT_MAX_USE_LOWER)
+ max_use = DEFAULT_MAX_USE_LOWER;
+ }
+ else
+ max_use = DEFAULT_MAX_USE_LOWER;
+ } else
+ max_use = PAGE_ALIGN(max_use);
+
+ if (max_use > 0 && sum > max_use)
+ return true;
+
+ if (keep_free == (off_t) -1) {
+
+ if (fs_size > 0) {
+ keep_free = PAGE_ALIGN((fs_size * 3) / 20); /* 15% */
+
+ if (keep_free > DEFAULT_KEEP_FREE_UPPER)
+ keep_free = DEFAULT_KEEP_FREE_UPPER;
+ } else
+ keep_free = DEFAULT_KEEP_FREE;
+ } else
+ keep_free = PAGE_ALIGN(keep_free);
+
+ if (keep_free > 0 && fs_free < keep_free)
+ return true;
+
+ return false;
+}
+
+int coredump_vacuum(int exclude_fd, off_t keep_free, off_t max_use) {
+ _cleanup_closedir_ DIR *d = NULL;
+ struct stat exclude_st;
+ int r;
+
+ if (keep_free <= 0 && max_use <= 0)
+ return 0;
+
+ if (exclude_fd >= 0) {
+ if (fstat(exclude_fd, &exclude_st) < 0) {
+ log_error("Failed to fstat(): %m");
+ return -errno;
+ }
+ }
+
+ /* This algorithm will keep deleting the oldest file of the
+ * user with the most coredumps until we are back in the size
+ * limits. Note that vacuuming for journal files is different,
+ * because we rely on rate-limiting of the messages there,
+ * to avoid being flooded. */
+
+ d = opendir("/var/lib/systemd/coredump");
+ if (!d) {
+ if (errno == ENOENT)
+ return 0;
+
+ log_error("Can't open coredump directory: %m");
+ return -errno;
+ }
+
+ for (;;) {
+ _cleanup_(vacuum_candidate_hasmap_freep) Hashmap *h = NULL;
+ struct vacuum_candidate *worst = NULL;
+ struct dirent *de;
+ off_t sum = 0;
+
+ rewinddir(d);
+
+ FOREACH_DIRENT(de, d, goto fail) {
+ struct vacuum_candidate *c;
+ struct stat st;
+ uid_t uid;
+ usec_t t;
+
+ r = uid_from_file_name(de->d_name, &uid);
+ if (r < 0)
+ continue;
+
+ if (fstatat(dirfd(d), de->d_name, &st, AT_NO_AUTOMOUNT|AT_SYMLINK_NOFOLLOW) < 0) {
+ if (errno == ENOENT)
+ continue;
+
+ log_warning("Failed to stat /var/lib/systemd/coredump/%s", de->d_name);
+ continue;
+ }
+
+ if (!S_ISREG(st.st_mode))
+ continue;
+
+ if (exclude_fd >= 0 &&
+ exclude_st.st_dev == st.st_dev &&
+ exclude_st.st_ino == st.st_ino)
+ continue;
+
+ r = hashmap_ensure_allocated(&h, NULL, NULL);
+ if (r < 0)
+ return log_oom();
+
+ t = timespec_load(&st.st_mtim);
+
+ c = hashmap_get(h, UINT32_TO_PTR(uid));
+ if (c) {
+
+ if (t < c->oldest_mtime) {
+ char *n;
+
+ n = strdup(de->d_name);
+ if (!n)
+ return log_oom();
+
+ free(c->oldest_file);
+ c->oldest_file = n;
+ c->oldest_mtime = t;
+ }
+
+ } else {
+ _cleanup_(vacuum_candidate_freep) struct vacuum_candidate *n = NULL;
+
+ n = new0(struct vacuum_candidate, 1);
+ if (!n)
+ return log_oom();
+
+ n->oldest_file = strdup(de->d_name);
+ if (!n->oldest_file)
+ return log_oom();
+
+ n->oldest_mtime = t;
+
+ r = hashmap_put(h, UINT32_TO_PTR(uid), n);
+ if (r < 0)
+ return log_oom();
+
+ c = n;
+ n = NULL;
+ }
+
+ c->n_files++;
+
+ if (!worst ||
+ worst->n_files < c->n_files ||
+ (worst->n_files == c->n_files && c->oldest_mtime < worst->oldest_mtime))
+ worst = c;
+
+ sum += st.st_blocks * 512;
+ }
+
+ if (!worst)
+ break;
+
+ r = vacuum_necessary(dirfd(d), sum, keep_free, max_use);
+ if (r <= 0)
+ return r;
+
+ if (unlinkat(dirfd(d), worst->oldest_file, 0) < 0) {
+
+ if (errno == ENOENT)
+ continue;
+
+ log_error("Failed to remove file %s: %m", worst->oldest_file);
+ return -errno;
+ } else
+ log_info("Removed old coredump %s.", worst->oldest_file);
+ }
+
+ return 0;
+
+fail:
+ log_error("Failed to read directory: %m");
+ return -errno;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <sys/types.h>
+
+int coredump_vacuum(int exclude_fd, off_t keep_free, off_t max_use);
#include <unistd.h>
#include <stdio.h>
#include <sys/prctl.h>
+#include <sys/types.h>
+#include <sys/xattr.h>
#include <systemd/sd-journal.h>
-
-#ifdef HAVE_LOGIND
#include <systemd/sd-login.h>
-#endif
#include "log.h"
#include "util.h"
+#include "strv.h"
#include "macro.h"
#include "mkdir.h"
#include "special.h"
#include "cgroup-util.h"
#include "journald-native.h"
+#include "conf-parser.h"
+#include "copy.h"
+#include "stacktrace.h"
+#include "path-util.h"
+#include "compress.h"
+#include "coredump-vacuum.h"
+
+#ifdef HAVE_ACL
+# include <sys/acl.h>
+# include "acl-util.h"
+#endif
+
+#ifdef HAVE_XZ
+# include <lzma.h>
+#else
+# define LZMA_PRESET_DEFAULT 0
+#endif
+
+/* The maximum size up to which we process coredumps */
+#define PROCESS_SIZE_MAX ((off_t) (2LLU*1024LLU*1024LLU*1024LLU))
+
+/* The maximum size up to which we leave the coredump around on
+ * disk */
+#define EXTERNAL_SIZE_MAX PROCESS_SIZE_MAX
+
+/* The maximum size up to which we store the coredump in the
+ * journal */
+#define JOURNAL_SIZE_MAX ((size_t) (767LU*1024LU*1024LU))
-/* Few programs have less than 3MiB resident */
-#define COREDUMP_MIN_START (3*1024*1024u)
/* Make sure to not make this larger than the maximum journal entry
* size. See ENTRY_SIZE_MAX in journald-native.c. */
-#define COREDUMP_MAX (767*1024*1024u)
-assert_cc(COREDUMP_MAX <= ENTRY_SIZE_MAX);
+assert_cc(JOURNAL_SIZE_MAX <= ENTRY_SIZE_MAX);
enum {
- ARG_PID = 1,
- ARG_UID,
- ARG_GID,
- ARG_SIGNAL,
- ARG_TIMESTAMP,
- ARG_COMM,
- _ARG_MAX
+ INFO_PID,
+ INFO_UID,
+ INFO_GID,
+ INFO_SIGNAL,
+ INFO_TIMESTAMP,
+ INFO_COMM,
+ INFO_EXE,
+ _INFO_LEN
+};
+
+typedef enum CoredumpStorage {
+ COREDUMP_STORAGE_NONE,
+ COREDUMP_STORAGE_EXTERNAL,
+ COREDUMP_STORAGE_JOURNAL,
+ COREDUMP_STORAGE_BOTH,
+ _COREDUMP_STORAGE_MAX,
+ _COREDUMP_STORAGE_INVALID = -1
+} CoredumpStorage;
+
+static const char* const coredump_storage_table[_COREDUMP_STORAGE_MAX] = {
+ [COREDUMP_STORAGE_NONE] = "none",
+ [COREDUMP_STORAGE_EXTERNAL] = "external",
+ [COREDUMP_STORAGE_JOURNAL] = "journal",
+ [COREDUMP_STORAGE_BOTH] = "both",
};
-static int divert_coredump(void) {
- _cleanup_fclose_ FILE *f = NULL;
+DEFINE_PRIVATE_STRING_TABLE_LOOKUP(coredump_storage, CoredumpStorage);
+static DEFINE_CONFIG_PARSE_ENUM(config_parse_coredump_storage, coredump_storage, CoredumpStorage, "Failed to parse storage setting");
+
+static CoredumpStorage arg_storage = COREDUMP_STORAGE_EXTERNAL;
+static bool arg_compress = true;
+static off_t arg_process_size_max = PROCESS_SIZE_MAX;
+static off_t arg_external_size_max = EXTERNAL_SIZE_MAX;
+static size_t arg_journal_size_max = JOURNAL_SIZE_MAX;
+static off_t arg_keep_free = (off_t) -1;
+static off_t arg_max_use = (off_t) -1;
+
+static int parse_config(void) {
+ static const ConfigTableItem items[] = {
+ { "Coredump", "Storage", config_parse_coredump_storage, 0, &arg_storage },
+ { "Coredump", "Compress", config_parse_bool, 0, &arg_compress },
+ { "Coredump", "ProcessSizeMax", config_parse_iec_off, 0, &arg_process_size_max },
+ { "Coredump", "ExternalSizeMax", config_parse_iec_off, 0, &arg_external_size_max },
+ { "Coredump", "JournalSizeMax", config_parse_iec_size, 0, &arg_journal_size_max },
+ { "Coredump", "KeepFree", config_parse_iec_off, 0, &arg_keep_free },
+ { "Coredump", "MaxUse", config_parse_iec_off, 0, &arg_max_use },
+ {}
+ };
+
+ return config_parse(
+ NULL,
+ "/etc/systemd/coredump.conf",
+ NULL,
+ "Coredump\0",
+ config_item_table_lookup,
+ (void*) items,
+ false,
+ false,
+ NULL);
+}
+
+static int fix_acl(int fd, uid_t uid) {
+
+#ifdef HAVE_ACL
+ _cleanup_(acl_freep) acl_t acl = NULL;
+ acl_entry_t entry;
+ acl_permset_t permset;
+
+ assert(fd >= 0);
+
+ if (uid <= SYSTEM_UID_MAX)
+ return 0;
+
+ /* Make sure normal users can read (but not write or delete)
+ * their own coredumps */
+
+ acl = acl_get_fd(fd);
+ if (!acl) {
+ log_error("Failed to get ACL: %m");
+ return -errno;
+ }
+
+ if (acl_create_entry(&acl, &entry) < 0 ||
+ acl_set_tag_type(entry, ACL_USER) < 0 ||
+ acl_set_qualifier(entry, &uid) < 0) {
+ log_error("Failed to patch ACL: %m");
+ return -errno;
+ }
+
+ if (acl_get_permset(entry, &permset) < 0 ||
+ acl_add_perm(permset, ACL_READ) < 0 ||
+ calc_acl_mask_if_needed(&acl) < 0) {
+ log_warning("Failed to patch ACL: %m");
+ return -errno;
+ }
+
+ if (acl_set_fd(fd, acl) < 0) {
+ log_error("Failed to apply ACL: %m");
+ return -errno;
+ }
+#endif
+
+ return 0;
+}
+
+static int fix_xattr(int fd, const char *info[_INFO_LEN]) {
+
+ static const char * const xattrs[_INFO_LEN] = {
+ [INFO_PID] = "user.coredump.pid",
+ [INFO_UID] = "user.coredump.uid",
+ [INFO_GID] = "user.coredump.gid",
+ [INFO_SIGNAL] = "user.coredump.signal",
+ [INFO_TIMESTAMP] = "user.coredump.timestamp",
+ [INFO_COMM] = "user.coredump.comm",
+ [INFO_EXE] = "user.coredump.exe",
+ };
+
+ int r = 0;
+ unsigned i;
+
+ assert(fd >= 0);
+
+ /* Attach some metadata to coredumps via extended
+ * attributes. Just because we can. */
+
+ for (i = 0; i < _INFO_LEN; i++) {
+ int k;
+
+ if (isempty(info[i]) || !xattrs[i])
+ continue;
+
+ k = fsetxattr(fd, xattrs[i], info[i], strlen(info[i]), XATTR_CREATE);
+ if (k < 0 && r == 0)
+ r = -errno;
+ }
+
+ return r;
+}
+
+#define filename_escape(s) xescape((s), "./ ")
+
+static int fix_permissions(
+ int fd,
+ const char *filename,
+ const char *target,
+ const char *info[_INFO_LEN],
+ uid_t uid) {
+
+ assert(fd >= 0);
+ assert(filename);
+ assert(target);
+ assert(info);
+
+ /* Ignore errors on these */
+ fchmod(fd, 0640);
+ fix_acl(fd, uid);
+ fix_xattr(fd, info);
+
+ if (fsync(fd) < 0) {
+ log_error("Failed to sync coredump %s: %m", filename);
+ return -errno;
+ }
+
+ if (rename(filename, target) < 0) {
+ log_error("Failed to rename coredump %s -> %s: %m", filename, target);
+ return -errno;
+ }
+
+ return 0;
+}
+
+static int maybe_remove_external_coredump(const char *filename, off_t size) {
+
+ /* Returns 1 if might remove, 0 if will not remove, < 0 on error. */
+
+ if (IN_SET(arg_storage, COREDUMP_STORAGE_EXTERNAL, COREDUMP_STORAGE_BOTH) &&
+ size <= arg_external_size_max)
+ return 0;
+
+ if (!filename)
+ return 1;
+
+ if (unlink(filename) < 0 && errno != ENOENT) {
+ log_error("Failed to unlink %s: %m", filename);
+ return -errno;
+ }
+
+ return 1;
+}
+
+static int make_filename(const char *info[_INFO_LEN], char **ret) {
+ _cleanup_free_ char *c = NULL, *u = NULL, *p = NULL, *t = NULL;
+ sd_id128_t boot;
+ int r;
+
+ assert(info);
+
+ c = filename_escape(info[INFO_COMM]);
+ if (!c)
+ return -ENOMEM;
+
+ u = filename_escape(info[INFO_UID]);
+ if (!u)
+ return -ENOMEM;
+
+ r = sd_id128_get_boot(&boot);
+ if (r < 0)
+ return r;
+
+ p = filename_escape(info[INFO_PID]);
+ if (!p)
+ return -ENOMEM;
- log_info("Detected coredump of the journal daemon itself, diverting coredump to /var/lib/systemd/coredump/.");
+ t = filename_escape(info[INFO_TIMESTAMP]);
+ if (!t)
+ return -ENOMEM;
+
+ if (asprintf(ret,
+ "/var/lib/systemd/coredump/core.%s.%s." SD_ID128_FORMAT_STR ".%s.%s000000",
+ c,
+ u,
+ SD_ID128_FORMAT_VAL(boot),
+ p,
+ t) < 0)
+ return -ENOMEM;
+
+ return 0;
+}
+
+static int save_external_coredump(
+ const char *info[_INFO_LEN],
+ uid_t uid,
+ char **ret_filename,
+ int *ret_fd,
+ off_t *ret_size) {
+
+ _cleanup_free_ char *fn = NULL, *tmp = NULL;
+ _cleanup_close_ int fd = -1;
+ struct stat st;
+ int r;
+
+ assert(info);
+ assert(ret_filename);
+ assert(ret_fd);
+ assert(ret_size);
+
+ r = make_filename(info, &fn);
+ if (r < 0) {
+ log_error("Failed to determine coredump file name: %s", strerror(-r));
+ return r;
+ }
+
+ tmp = tempfn_random(fn);
+ if (!tmp)
+ return log_oom();
mkdir_p_label("/var/lib/systemd/coredump", 0755);
- f = fopen("/var/lib/systemd/coredump/core.systemd-journald", "we");
- if (!f) {
- log_error("Failed to create coredump file: %m");
+ fd = open(tmp, O_CREAT|O_EXCL|O_RDWR|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0640);
+ if (fd < 0) {
+ log_error("Failed to create coredump file %s: %m", tmp);
return -errno;
}
- for (;;) {
- uint8_t buffer[4096];
- size_t l, q;
+ r = copy_bytes(STDIN_FILENO, fd, arg_process_size_max);
+ if (r == -E2BIG) {
+ log_error("Coredump of %s (%s) is larger than configured processing limit, refusing.", info[INFO_PID], info[INFO_COMM]);
+ goto fail;
+ } else if (IN_SET(r, -EDQUOT, -ENOSPC)) {
+ log_error("Not enough disk space for coredump of %s (%s), refusing.", info[INFO_PID], info[INFO_COMM]);
+ goto fail;
+ } else if (r < 0) {
+ log_error("Failed to dump coredump to file: %s", strerror(-r));
+ goto fail;
+ }
+
+ if (fstat(fd, &st) < 0) {
+ log_error("Failed to fstat coredump %s: %m", tmp);
+ goto fail;
+ }
+
+ if (lseek(fd, 0, SEEK_SET) == (off_t) -1) {
+ log_error("Failed to seek on %s: %m", tmp);
+ goto fail;
+ }
+
+#ifdef HAVE_XZ
+ /* If we will remove the coredump anyway, do not compress. */
+ if (maybe_remove_external_coredump(NULL, st.st_size) == 0
+ && arg_compress) {
+
+ _cleanup_free_ char *fn_compressed = NULL, *tmp_compressed = NULL;
+ _cleanup_close_ int fd_compressed = -1;
- l = fread(buffer, 1, sizeof(buffer), stdin);
- if (l <= 0) {
- if (ferror(f)) {
- log_error("Failed to read coredump: %m");
- return -errno;
- }
+ fn_compressed = strappend(fn, ".xz");
+ if (!fn_compressed) {
+ r = log_oom();
+ goto uncompressed;
+ }
+
+ tmp_compressed = tempfn_random(fn_compressed);
+ if (!tmp_compressed) {
+ r = log_oom();
+ goto uncompressed;
+ }
- break;
+ fd_compressed = open(tmp_compressed, O_CREAT|O_EXCL|O_RDWR|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0640);
+ if (fd_compressed < 0) {
+ log_error("Failed to create file %s: %m", tmp_compressed);
+ goto uncompressed;
}
- q = fwrite(buffer, 1, l, f);
- if (q != l) {
- log_error("Failed to write coredump: %m");
- return -errno;
+ r = compress_stream(fd, fd_compressed, LZMA_PRESET_DEFAULT, -1);
+ if (r < 0) {
+ log_error("Failed to compress %s: %s", tmp_compressed, strerror(-r));
+ goto fail_compressed;
}
+
+ r = fix_permissions(fd_compressed, tmp_compressed, fn_compressed, info, uid);
+ if (r < 0)
+ goto fail_compressed;
+
+ /* OK, this worked, we can get rid of the uncompressed version now */
+ unlink_noerrno(tmp);
+
+ *ret_filename = fn_compressed; /* compressed */
+ *ret_fd = fd; /* uncompressed */
+ *ret_size = st.st_size; /* uncompressed */
+
+ fn_compressed = NULL;
+ fd = -1;
+
+ return 0;
+
+ fail_compressed:
+ unlink_noerrno(tmp_compressed);
}
+#endif
+
+uncompressed:
+ r = fix_permissions(fd, tmp, fn, info, uid);
+ if (r < 0)
+ goto fail;
+
+ *ret_filename = fn;
+ *ret_fd = fd;
+ *ret_size = st.st_size;
+
+ fn = NULL;
+ fd = -1;
+
+ return 0;
+
+fail:
+ unlink_noerrno(tmp);
+ return r;
+}
- fflush(f);
+static int allocate_journal_field(int fd, size_t size, char **ret, size_t *ret_size) {
+ _cleanup_free_ char *field = NULL;
+ ssize_t n;
+
+ assert(fd >= 0);
+ assert(ret);
+ assert(ret_size);
- if (ferror(f)) {
- log_error("Failed to write coredump: %m");
+ if (lseek(fd, 0, SEEK_SET) == (off_t) -1) {
+ log_warning("Failed to seek: %m");
return -errno;
}
+ field = malloc(9 + size);
+ if (!field) {
+ log_warning("Failed to allocate memory for coredump, coredump will not be stored.");
+ return -ENOMEM;
+ }
+
+ memcpy(field, "COREDUMP=", 9);
+
+ n = read(fd, field + 9, size);
+ if (n < 0) {
+ log_error("Failed to read core data: %s", strerror(-n));
+ return (int) n;
+ }
+ if ((size_t) n < size) {
+ log_error("Core data too short.");
+ return -EIO;
+ }
+
+ *ret = field;
+ *ret_size = size + 9;
+
+ field = NULL;
+
return 0;
}
int main(int argc, char* argv[]) {
- int r, j = 0;
- char *t;
- ssize_t n;
- pid_t pid;
- uid_t uid;
- gid_t gid;
- struct iovec iovec[14];
- size_t coredump_bufsize = 0, coredump_size = 0;
+
_cleanup_free_ char *core_pid = NULL, *core_uid = NULL, *core_gid = NULL, *core_signal = NULL,
*core_timestamp = NULL, *core_comm = NULL, *core_exe = NULL, *core_unit = NULL,
- *core_session = NULL, *core_message = NULL, *core_cmdline = NULL, *coredump_data = NULL;
+ *core_session = NULL, *core_message = NULL, *core_cmdline = NULL, *coredump_data = NULL,
+ *core_slice = NULL, *core_cgroup = NULL, *core_owner_uid = NULL,
+ *exe = NULL, *comm = NULL, *filename = NULL;
+ const char *info[_INFO_LEN];
+
+ _cleanup_close_ int coredump_fd = -1;
+
+ struct iovec iovec[18];
+ off_t coredump_size;
+ int r, j = 0;
+ uid_t uid, owner_uid;
+ gid_t gid;
+ pid_t pid;
+ char *t;
+ /* Make sure we never enter a loop */
prctl(PR_SET_DUMPABLE, 0);
- if (argc != _ARG_MAX) {
- log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
- log_open();
+ /* First, log to a safe place, since we don't know what
+ * crashed and it might be journald which we'd rather not log
+ * to then. */
+ log_set_target(LOG_TARGET_KMSG);
+ log_open();
- log_error("Invalid number of arguments passed from kernel.");
+ if (argc < INFO_COMM + 1) {
+ log_error("Not enough arguments passed from kernel (%d, expected %d).",
+ argc - 1, INFO_COMM + 1 - 1);
r = -EINVAL;
goto finish;
}
- r = parse_pid(argv[ARG_PID], &pid);
+ /* Ignore all parse errors */
+ parse_config();
+
+ log_debug("Selected storage '%s'.", coredump_storage_to_string(arg_storage));
+ log_debug("Selected compression %s.", yes_no(arg_compress));
+
+ r = parse_uid(argv[INFO_UID + 1], &uid);
if (r < 0) {
- log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
- log_open();
+ log_error("Failed to parse UID.");
+ goto finish;
+ }
+ r = parse_pid(argv[INFO_PID + 1], &pid);
+ if (r < 0) {
log_error("Failed to parse PID.");
goto finish;
}
+ r = parse_gid(argv[INFO_GID + 1], &gid);
+ if (r < 0) {
+ log_error("Failed to parse GID.");
+ goto finish;
+ }
+
+ if (get_process_comm(pid, &comm) < 0) {
+ log_warning("Failed to get COMM, falling back to the commandline.");
+ comm = strv_join(argv + INFO_COMM + 1, " ");
+ }
+
+ if (get_process_exe(pid, &exe) < 0)
+ log_warning("Failed to get EXE.");
+
+ info[INFO_PID] = argv[INFO_PID + 1];
+ info[INFO_UID] = argv[INFO_UID + 1];
+ info[INFO_GID] = argv[INFO_GID + 1];
+ info[INFO_SIGNAL] = argv[INFO_SIGNAL + 1];
+ info[INFO_TIMESTAMP] = argv[INFO_TIMESTAMP + 1];
+ info[INFO_COMM] = comm;
+ info[INFO_EXE] = exe;
+
if (cg_pid_get_unit(pid, &t) >= 0) {
if (streq(t, SPECIAL_JOURNALD_SERVICE)) {
- /* Make sure we don't make use of the journal,
- * if it's the journal which is crashing */
- log_set_target(LOG_TARGET_KMSG);
- log_open();
- r = divert_coredump();
+ /* If we are journald, we cut things short,
+ * don't write to the journal, but still
+ * create a coredump. */
+
+ if (arg_storage != COREDUMP_STORAGE_NONE)
+ arg_storage = COREDUMP_STORAGE_EXTERNAL;
+
+ r = save_external_coredump(info, uid, &filename, &coredump_fd, &coredump_size);
+ if (r < 0)
+ goto finish;
+
+ r = maybe_remove_external_coredump(filename, coredump_size);
+ if (r < 0)
+ goto finish;
+
+ log_info("Detected coredump of the journal daemon itself, diverted to %s.", filename);
goto finish;
}
if (core_unit)
IOVEC_SET_STRING(iovec[j++], core_unit);
- /* OK, now we know it's not the journal, hence make use of
- * it */
+ /* OK, now we know it's not the journal, hence we can make use
+ * of it now. */
log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
log_open();
- r = parse_uid(argv[ARG_UID], &uid);
- if (r < 0) {
- log_error("Failed to parse UID.");
- goto finish;
- }
-
- r = parse_gid(argv[ARG_GID], &gid);
- if (r < 0) {
- log_error("Failed to parse GID.");
- goto finish;
- }
-
- core_pid = strappend("COREDUMP_PID=", argv[ARG_PID]);
+ core_pid = strappend("COREDUMP_PID=", info[INFO_PID]);
if (core_pid)
IOVEC_SET_STRING(iovec[j++], core_pid);
- core_uid = strappend("COREDUMP_UID=", argv[ARG_UID]);
+ core_uid = strappend("COREDUMP_UID=", info[INFO_UID]);
if (core_uid)
IOVEC_SET_STRING(iovec[j++], core_uid);
- core_gid = strappend("COREDUMP_GID=", argv[ARG_GID]);
+ core_gid = strappend("COREDUMP_GID=", info[INFO_GID]);
if (core_gid)
IOVEC_SET_STRING(iovec[j++], core_gid);
- core_signal = strappend("COREDUMP_SIGNAL=", argv[ARG_SIGNAL]);
+ core_signal = strappend("COREDUMP_SIGNAL=", info[INFO_SIGNAL]);
if (core_signal)
IOVEC_SET_STRING(iovec[j++], core_signal);
- core_comm = strappend("COREDUMP_COMM=", argv[ARG_COMM]);
- if (core_comm)
- IOVEC_SET_STRING(iovec[j++], core_comm);
-
-#ifdef HAVE_LOGIND
if (sd_pid_get_session(pid, &t) >= 0) {
core_session = strappend("COREDUMP_SESSION=", t);
free(t);
IOVEC_SET_STRING(iovec[j++], core_session);
}
-#endif
+ if (sd_pid_get_owner_uid(pid, &owner_uid) >= 0) {
+ asprintf(&core_owner_uid, "COREDUMP_OWNER_UID=" UID_FMT, owner_uid);
- if (get_process_exe(pid, &t) >= 0) {
- core_exe = strappend("COREDUMP_EXE=", t);
+ if (core_owner_uid)
+ IOVEC_SET_STRING(iovec[j++], core_owner_uid);
+ }
+
+ if (sd_pid_get_slice(pid, &t) >= 0) {
+ core_slice = strappend("COREDUMP_SLICE=", t);
free(t);
+ if (core_slice)
+ IOVEC_SET_STRING(iovec[j++], core_slice);
+ }
+
+ if (comm) {
+ core_comm = strappend("COREDUMP_COMM=", comm);
+ if (core_comm)
+ IOVEC_SET_STRING(iovec[j++], core_comm);
+ }
+
+ if (exe) {
+ core_exe = strappend("COREDUMP_EXE=", exe);
if (core_exe)
IOVEC_SET_STRING(iovec[j++], core_exe);
}
IOVEC_SET_STRING(iovec[j++], core_cmdline);
}
- core_timestamp = strjoin("COREDUMP_TIMESTAMP=", argv[ARG_TIMESTAMP], "000000", NULL);
+ if (cg_pid_get_path_shifted(pid, NULL, &t) >= 0) {
+ core_cgroup = strappend("COREDUMP_CGROUP=", t);
+ free(t);
+
+ if (core_cgroup)
+ IOVEC_SET_STRING(iovec[j++], core_cgroup);
+ }
+
+ core_timestamp = strjoin("COREDUMP_TIMESTAMP=", info[INFO_TIMESTAMP], "000000", NULL);
if (core_timestamp)
IOVEC_SET_STRING(iovec[j++], core_timestamp);
IOVEC_SET_STRING(iovec[j++], "MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1");
IOVEC_SET_STRING(iovec[j++], "PRIORITY=2");
- core_message = strjoin("MESSAGE=Process ", argv[ARG_PID], " (", argv[ARG_COMM], ") dumped core.", NULL);
- if (core_message)
- IOVEC_SET_STRING(iovec[j++], core_message);
+ /* Vacuum before we write anything again */
+ coredump_vacuum(-1, arg_keep_free, arg_max_use);
+
+ /* Always stream the coredump to disk, if that's possible */
+ r = save_external_coredump(info, uid, &filename, &coredump_fd, &coredump_size);
+ if (r < 0)
+ /* skip whole core dumping part */
+ goto log;
+
+ /* If we don't want to keep the coredump on disk, remove it
+ * now, as later on we will lack the privileges for
+ * it. However, we keep the fd to it, so that we can still
+ * process it and log it. */
+ r = maybe_remove_external_coredump(filename, coredump_size);
+ if (r < 0)
+ goto finish;
+ if (r == 0) {
+ const char *coredump_filename;
+
+ coredump_filename = strappenda("COREDUMP_FILENAME=", filename);
+ IOVEC_SET_STRING(iovec[j++], coredump_filename);
+ }
+
+ /* Vacuum again, but exclude the coredump we just created */
+ coredump_vacuum(coredump_fd, arg_keep_free, arg_max_use);
/* Now, let's drop privileges to become the user who owns the
* segfaulted process and allocate the coredump memory under
* his uid. This also ensures that the credentials journald
* will see are the ones of the coredumping user, thus making
* sure the user himself gets access to the core dump. */
-
if (setresgid(gid, gid, gid) < 0 ||
setresuid(uid, uid, uid) < 0) {
log_error("Failed to drop privileges: %m");
goto finish;
}
- for (;;) {
- if (!GREEDY_REALLOC(coredump_data, coredump_bufsize,
- MAX(coredump_size + 1, COREDUMP_MIN_START/2))) {
- log_warning("Failed to allocate memory for core, core will not be stored.");
- goto finalize;
- }
+#ifdef HAVE_ELFUTILS
+ /* Try to get a strack trace if we can */
+ if (coredump_size <= arg_process_size_max) {
+ _cleanup_free_ char *stacktrace = NULL;
- if (coredump_size == 0) {
- memcpy(coredump_data, "COREDUMP=", 9);
- coredump_size = 9;
- }
+ r = coredump_make_stack_trace(coredump_fd, exe, &stacktrace);
+ if (r >= 0)
+ core_message = strjoin("MESSAGE=Process ", info[INFO_PID], " (", comm, ") of user ", info[INFO_UID], " dumped core.\n\n", stacktrace, NULL);
+ else
+ log_warning("Failed to generate stack trace: %s", strerror(-r));
+ }
- n = loop_read(STDIN_FILENO, coredump_data + coredump_size,
- coredump_bufsize - coredump_size, false);
- if (n < 0) {
- log_error("Failed to read core data: %s", strerror(-n));
- r = (int) n;
- goto finish;
- } else if (n == 0)
- break;
+ if (!core_message)
+#endif
+log:
+ core_message = strjoin("MESSAGE=Process ", info[INFO_PID], " (", comm, ") of user ", info[INFO_UID], " dumped core.", NULL);
+ if (core_message)
+ IOVEC_SET_STRING(iovec[j++], core_message);
- coredump_size += n;
+ /* Optionally store the entire coredump in the journal */
+ if (IN_SET(arg_storage, COREDUMP_STORAGE_JOURNAL, COREDUMP_STORAGE_BOTH) &&
+ coredump_size <= (off_t) arg_journal_size_max) {
+ size_t sz;
- if (coredump_size > COREDUMP_MAX) {
- log_error("Core too large, core will not be stored.");
- goto finalize;
+ /* Store the coredump itself in the journal */
+
+ r = allocate_journal_field(coredump_fd, (size_t) coredump_size, &coredump_data, &sz);
+ if (r >= 0) {
+ iovec[j].iov_base = coredump_data;
+ iovec[j].iov_len = sz;
+ j++;
}
}
- iovec[j].iov_base = coredump_data;
- iovec[j].iov_len = coredump_size;
- j++;
-
-finalize:
r = sd_journal_sendv(iovec, j);
if (r < 0)
log_error("Failed to log coredump: %s", strerror(-r));
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# See coredump.conf(5) for details
+
+[Coredump]
+#Storage=external
+#Compress=yes
+#ProcessSizeMax=2G
+#ExternalSizeMax=2G
+#JournalSizeMax=767M
+#MaxUse=
+#KeepFree=
#include "pager.h"
#include "macro.h"
#include "journal-internal.h"
+#include "copy.h"
+#include "compress.h"
static enum {
ACTION_NONE,
+ ACTION_INFO,
ACTION_LIST,
ACTION_DUMP,
ACTION_GDB,
} arg_action = ACTION_LIST;
-
-static FILE* output = NULL;
-static char* field = NULL;
-
+static const char* arg_field = NULL;
static int arg_no_pager = false;
static int arg_no_legend = false;
+static int arg_one = false;
+
+static FILE* output = NULL;
static Set *new_matches(void) {
Set *set;
}
static int help(void) {
- printf("%s [OPTIONS...] [MATCHES...]\n\n"
+
+ printf("%s [OPTIONS...]\n\n"
"List or retrieve coredumps from the journal.\n\n"
"Flags:\n"
- " -o --output=FILE Write output to FILE\n"
- " --no-pager Do not pipe output into a pager\n"
- " --no-legend Do not print the column headers.\n\n"
+ " -h --help Show this help\n"
+ " --version Print version string\n"
+ " --no-pager Do not pipe output into a pager\n"
+ " --no-legend Do not print the column headers.\n"
+ " -1 Show information about most recent entry only\n"
+ " -F --field=FIELD List all values a certain field takes\n"
+ " -o --output=FILE Write output to FILE\n\n"
"Commands:\n"
- " -h --help Show this help\n"
- " --version Print version string\n"
- " -F --field=FIELD List all values a certain field takes\n"
- " gdb Start gdb for the first matching coredump\n"
- " list List available coredumps\n"
- " dump PID Print coredump to stdout\n"
- " dump PATH Print coredump to stdout\n"
+ " list [MATCHES...] List available coredumps (default)\n"
+ " info [MATCHES...] Show detailed information about one or more coredumps\n"
+ " dump [MATCHES...] Print first matching coredump to stdout\n"
+ " gdb [MATCHES...] Start gdb for the first matching coredump\n"
, program_invocation_short_name);
return 0;
assert(argc >= 0);
assert(argv);
- while ((c = getopt_long(argc, argv, "ho:F:", options, NULL)) >= 0)
+ while ((c = getopt_long(argc, argv, "ho:F:1", options, NULL)) >= 0)
switch(c) {
case 'h':
break;
case 'F':
- if (field) {
+ if (arg_field) {
log_error("cannot use --field/-F more than once");
return -EINVAL;
}
+ arg_field = optarg;
+ break;
- field = optarg;
+ case '1':
+ arg_one = true;
break;
case '?':
arg_action = ACTION_DUMP;
else if (streq(cmd, "gdb"))
arg_action = ACTION_GDB;
+ else if (streq(cmd, "info"))
+ arg_action = ACTION_INFO;
else {
log_error("Unknown action '%s'", cmd);
return -EINVAL;
}
}
- if (field && arg_action != ACTION_LIST) {
+ if (arg_field && arg_action != ACTION_LIST) {
log_error("Option --field/-F only makes sense with list");
return -EINVAL;
}
static int retrieve(const void *data,
size_t len,
const char *name,
- const char **var) {
+ char **var) {
size_t ident;
+ char *v;
ident = strlen(name) + 1; /* name + "=" */
if (((const char*) data)[ident - 1] != '=')
return 0;
- *var = strndup((const char*)data + ident, len - ident);
- if (!*var)
+ v = strndup((const char*)data + ident, len - ident);
+ if (!v)
return log_oom();
+ free(*var);
+ *var = v;
+
return 0;
}
static void print_field(FILE* file, sd_journal *j) {
- _cleanup_free_ const char *value = NULL;
+ _cleanup_free_ char *value = NULL;
const void *d;
size_t l;
- assert(field);
+ assert(file);
+ assert(j);
+
+ assert(arg_field);
SD_JOURNAL_FOREACH_DATA(j, d, l)
- retrieve(d, l, field, &value);
+ retrieve(d, l, arg_field, &value);
+
if (value)
fprintf(file, "%s\n", value);
}
-static int print_entry(FILE* file, sd_journal *j, int had_legend) {
- _cleanup_free_ const char
+static int print_list(FILE* file, sd_journal *j, int had_legend) {
+ _cleanup_free_ char
*pid = NULL, *uid = NULL, *gid = NULL,
- *sgnl = NULL, *exe = NULL;
+ *sgnl = NULL, *exe = NULL, *comm = NULL, *cmdline = NULL,
+ *filename = NULL;
const void *d;
size_t l;
usec_t t;
char buf[FORMAT_TIMESTAMP_MAX];
int r;
+ bool present;
+
+ assert(file);
+ assert(j);
SD_JOURNAL_FOREACH_DATA(j, d, l) {
- retrieve(d, l, "COREDUMP_PID", &pid);
retrieve(d, l, "COREDUMP_PID", &pid);
retrieve(d, l, "COREDUMP_UID", &uid);
retrieve(d, l, "COREDUMP_GID", &gid);
retrieve(d, l, "COREDUMP_SIGNAL", &sgnl);
retrieve(d, l, "COREDUMP_EXE", &exe);
- if (!exe)
- retrieve(d, l, "COREDUMP_COMM", &exe);
- if (!exe)
- retrieve(d, l, "COREDUMP_CMDLINE", &exe);
+ retrieve(d, l, "COREDUMP_COMM", &comm);
+ retrieve(d, l, "COREDUMP_CMDLINE", &cmdline);
+ retrieve(d, l, "COREDUMP_FILENAME", &filename);
}
- if (!pid && !uid && !gid && !sgnl && !exe) {
+ if (!pid && !uid && !gid && !sgnl && !exe && !comm && !cmdline && !filename) {
log_warning("Empty coredump log entry");
return -EINVAL;
}
}
format_timestamp(buf, sizeof(buf), t);
+ present = filename && access(filename, F_OK) == 0;
if (!had_legend && !arg_no_legend)
- fprintf(file, "%-*s %*s %*s %*s %*s %s\n",
- FORMAT_TIMESTAMP_MAX-1, "TIME",
+ fprintf(file, "%-*s %*s %*s %*s %*s %*s %s\n",
+ FORMAT_TIMESTAMP_WIDTH, "TIME",
6, "PID",
5, "UID",
5, "GID",
3, "SIG",
+ 1, "PRESENT",
"EXE");
- fprintf(file, "%*s %*s %*s %*s %*s %s\n",
- FORMAT_TIMESTAMP_MAX-1, buf,
- 6, pid,
- 5, uid,
- 5, gid,
- 3, sgnl,
- exe);
+ fprintf(file, "%-*s %*s %*s %*s %*s %*s %s\n",
+ FORMAT_TIMESTAMP_WIDTH, buf,
+ 6, strna(pid),
+ 5, strna(uid),
+ 5, strna(gid),
+ 3, strna(sgnl),
+ 1, present ? "*" : "",
+ strna(exe ?: (comm ?: cmdline)));
return 0;
}
-static int dump_list(sd_journal *j) {
- int found = 0;
+static int print_info(FILE *file, sd_journal *j, bool need_space) {
+ _cleanup_free_ char
+ *pid = NULL, *uid = NULL, *gid = NULL,
+ *sgnl = NULL, *exe = NULL, *comm = NULL, *cmdline = NULL,
+ *unit = NULL, *user_unit = NULL, *session = NULL,
+ *boot_id = NULL, *machine_id = NULL, *hostname = NULL,
+ *slice = NULL, *cgroup = NULL, *owner_uid = NULL,
+ *message = NULL, *timestamp = NULL, *filename = NULL;
+ const void *d;
+ size_t l;
+ int r;
+ assert(file);
assert(j);
- /* The coredumps are likely to compressed, and for just
- * listing them we don't need to decompress them, so let's
- * pick a fairly low data threshold here */
- sd_journal_set_data_threshold(j, 4096);
+ SD_JOURNAL_FOREACH_DATA(j, d, l) {
+ retrieve(d, l, "COREDUMP_PID", &pid);
+ retrieve(d, l, "COREDUMP_UID", &uid);
+ retrieve(d, l, "COREDUMP_GID", &gid);
+ retrieve(d, l, "COREDUMP_SIGNAL", &sgnl);
+ retrieve(d, l, "COREDUMP_EXE", &exe);
+ retrieve(d, l, "COREDUMP_COMM", &comm);
+ retrieve(d, l, "COREDUMP_CMDLINE", &cmdline);
+ retrieve(d, l, "COREDUMP_UNIT", &unit);
+ retrieve(d, l, "COREDUMP_USER_UNIT", &user_unit);
+ retrieve(d, l, "COREDUMP_SESSION", &session);
+ retrieve(d, l, "COREDUMP_OWNER_UID", &owner_uid);
+ retrieve(d, l, "COREDUMP_SLICE", &slice);
+ retrieve(d, l, "COREDUMP_CGROUP", &cgroup);
+ retrieve(d, l, "COREDUMP_TIMESTAMP", ×tamp);
+ retrieve(d, l, "COREDUMP_FILENAME", &filename);
+ retrieve(d, l, "_BOOT_ID", &boot_id);
+ retrieve(d, l, "_MACHINE_ID", &machine_id);
+ retrieve(d, l, "_HOSTNAME", &hostname);
+ retrieve(d, l, "MESSAGE", &message);
+ }
+
+ if (need_space)
+ fputs("\n", file);
+
+ if (comm)
+ fprintf(file,
+ " PID: %s%s%s (%s)\n",
+ ansi_highlight(), strna(pid), ansi_highlight_off(), comm);
+ else
+ fprintf(file,
+ " PID: %s%s%s\n",
+ ansi_highlight(), strna(pid), ansi_highlight_off());
+
+ if (uid) {
+ uid_t n;
+
+ if (parse_uid(uid, &n) >= 0) {
+ _cleanup_free_ char *u = NULL;
+
+ u = uid_to_name(n);
+ fprintf(file,
+ " UID: %s (%s)\n",
+ uid, u);
+ } else {
+ fprintf(file,
+ " UID: %s\n",
+ uid);
+ }
+ }
+
+ if (gid) {
+ gid_t n;
- SD_JOURNAL_FOREACH(j) {
- if (field)
- print_field(stdout, j);
+ if (parse_gid(gid, &n) >= 0) {
+ _cleanup_free_ char *g = NULL;
+
+ g = gid_to_name(n);
+ fprintf(file,
+ " GID: %s (%s)\n",
+ gid, g);
+ } else {
+ fprintf(file,
+ " GID: %s\n",
+ gid);
+ }
+ }
+
+ if (sgnl) {
+ int sig;
+
+ if (safe_atoi(sgnl, &sig) >= 0)
+ fprintf(file, " Signal: %s (%s)\n", sgnl, signal_to_string(sig));
else
- print_entry(stdout, j, found++);
+ fprintf(file, " Signal: %s\n", sgnl);
+ }
+
+ if (timestamp) {
+ usec_t u;
+
+ r = safe_atou64(timestamp, &u);
+ if (r >= 0) {
+ char absolute[FORMAT_TIMESTAMP_MAX], relative[FORMAT_TIMESPAN_MAX];
+
+ fprintf(file,
+ " Timestamp: %s (%s)\n",
+ format_timestamp(absolute, sizeof(absolute), u),
+ format_timestamp_relative(relative, sizeof(relative), u));
+
+ } else
+ fprintf(file, " Timestamp: %s\n", timestamp);
+ }
+
+ if (cmdline)
+ fprintf(file, " Command Line: %s\n", cmdline);
+ if (exe)
+ fprintf(file, " Executable: %s%s%s\n", ansi_highlight(), exe, ansi_highlight_off());
+ if (cgroup)
+ fprintf(file, " Control Group: %s\n", cgroup);
+ if (unit)
+ fprintf(file, " Unit: %s\n", unit);
+ if (user_unit)
+ fprintf(file, " User Unit: %s\n", unit);
+ if (slice)
+ fprintf(file, " Slice: %s\n", slice);
+ if (session)
+ fprintf(file, " Session: %s\n", session);
+ if (owner_uid) {
+ uid_t n;
+
+ if (parse_uid(owner_uid, &n) >= 0) {
+ _cleanup_free_ char *u = NULL;
+
+ u = uid_to_name(n);
+ fprintf(file,
+ " Owner UID: %s (%s)\n",
+ owner_uid, u);
+ } else {
+ fprintf(file,
+ " Owner UID: %s\n",
+ owner_uid);
+ }
}
+ if (boot_id)
+ fprintf(file, " Boot ID: %s\n", boot_id);
+ if (machine_id)
+ fprintf(file, " Machine ID: %s\n", machine_id);
+ if (hostname)
+ fprintf(file, " Hostname: %s\n", hostname);
- if (!field && !found) {
- log_notice("No coredumps found");
- return -ESRCH;
+ if (filename && access(filename, F_OK) == 0)
+ fprintf(file, " Coredump: %s\n", filename);
+
+ if (message) {
+ _cleanup_free_ char *m = NULL;
+
+ m = strreplace(message, "\n", "\n ");
+
+ fprintf(file, " Message: %s\n", strstrip(m ?: message));
}
return 0;
return r;
}
if (r == 0) {
- log_error("No match found");
+ log_error("No match found.");
return -ESRCH;
}
return r;
}
-static int dump_core(sd_journal* j) {
- const void *data;
- size_t len, ret;
+static void print_entry(sd_journal *j, unsigned n_found) {
+ assert(j);
+
+ if (arg_action == ACTION_INFO)
+ print_info(stdout, j, n_found);
+ else if (arg_field)
+ print_field(stdout, j);
+ else
+ print_list(stdout, j, n_found);
+}
+
+static int dump_list(sd_journal *j) {
+ unsigned n_found = 0;
int r;
assert(j);
- /* We want full data, nothing truncated. */
- sd_journal_set_data_threshold(j, 0);
+ /* The coredumps are likely to compressed, and for just
+ * listing them we don't need to decompress them, so let's
+ * pick a fairly low data threshold here */
+ sd_journal_set_data_threshold(j, 4096);
+
+ if (arg_one) {
+ r = focus(j);
+ if (r < 0)
+ return r;
+
+ print_entry(j, 0);
+ } else {
+ SD_JOURNAL_FOREACH(j)
+ print_entry(j, n_found++);
+
+ if (!arg_field && n_found <= 0) {
+ log_notice("No coredumps found.");
+ return -ESRCH;
+ }
+ }
+
+ return 0;
+}
+
+static int save_core(sd_journal *j, int fd, char **path, bool *unlink_temp) {
+ const char *data;
+ _cleanup_free_ char *filename = NULL;
+ size_t len;
+ int r;
+
+ assert((fd >= 0) != !!path);
+ assert(!!path == !!unlink_temp);
+
+ /* Prefer uncompressed file to journal (probably cached) to
+ * compressed file (probably uncached). */
+ r = sd_journal_get_data(j, "COREDUMP_FILENAME", (const void**) &data, &len);
+ if (r < 0 && r != -ENOENT)
+ log_warning("Failed to retrieve COREDUMP_FILENAME: %s", strerror(-r));
+ else if (r == 0)
+ retrieve(data, len, "COREDUMP_FILENAME", &filename);
+
+ if (filename && access(filename, R_OK) < 0) {
+ log_debug("File %s is not readable: %m", filename);
+ free(filename);
+ filename = NULL;
+ }
+
+ if (filename && !endswith(filename, ".xz")) {
+ if (path) {
+ *path = filename;
+ filename = NULL;
+ }
+
+ return 0;
+ } else {
+ _cleanup_close_ int fdt = -1;
+ char *temp = NULL;
+
+ if (fd < 0) {
+ temp = strdup("/var/tmp/coredump-XXXXXX");
+ if (!temp)
+ return log_oom();
+
+ fdt = mkostemp_safe(temp, O_WRONLY|O_CLOEXEC);
+ if (fdt < 0) {
+ log_error("Failed to create temporary file: %m");
+ return -errno;
+ }
+ log_debug("Created temporary file %s", temp);
+
+ fd = fdt;
+ }
+
+ r = sd_journal_get_data(j, "COREDUMP", (const void**) &data, &len);
+ if (r == 0) {
+ ssize_t sz;
+
+ assert(len >= 9);
+ data += 9;
+ len -= 9;
+
+ sz = write(fdt, data, len);
+ if (sz < 0) {
+ log_error("Failed to write temporary file: %m");
+ r = -errno;
+ goto error;
+ }
+ if (sz != (ssize_t) len) {
+ log_error("Short write to temporary file.");
+ r = -EIO;
+ goto error;
+ }
+ } else if (filename) {
+#ifdef HAVE_XZ
+ _cleanup_close_ int fdf;
+
+ fdf = open(filename, O_RDONLY | O_CLOEXEC);
+ if (fdf < 0) {
+ log_error("Failed to open %s: %m", filename);
+ r = -errno;
+ goto error;
+ }
+
+ r = decompress_stream(fdf, fd, -1);
+ if (r < 0) {
+ log_error("Failed to decompress %s: %s", filename, strerror(-r));
+ goto error;
+ }
+#else
+ log_error("Cannot decompress file. Compiled without XZ support.");
+ r = -ENOTSUP;
+ goto error;
+#endif
+ } else {
+ if (r == -ENOENT)
+ log_error("Coredump neither in journal file nor stored externally on disk.");
+ else
+ log_error("Failed to retrieve COREDUMP field: %s", strerror(-r));
+ goto error;
+ }
+
+ if (temp) {
+ *path = temp;
+ *unlink_temp = true;
+ }
+
+ return 0;
+
+error:
+ if (temp) {
+ unlink(temp);
+ log_debug("Removed temporary file %s", temp);
+ }
+ return r;
+ }
+}
+
+static int dump_core(sd_journal* j) {
+ int r;
+
+ assert(j);
r = focus(j);
if (r < 0)
return r;
- print_entry(output ? stdout : stderr, j, false);
+ print_info(output ? stdout : stderr, j, false);
if (on_tty() && !output) {
- log_error("Refusing to dump core to tty");
+ log_error("Refusing to dump core to tty.");
return -ENOTTY;
}
- r = sd_journal_get_data(j, "COREDUMP", (const void**) &data, &len);
+ r = save_core(j, output ? fileno(output) : STDOUT_FILENO, NULL, NULL);
if (r < 0) {
- log_error("Failed to retrieve COREDUMP field: %s", strerror(-r));
+ log_error("Coredump retrieval failed: %s", strerror(-r));
return r;
}
- assert(len >= 9);
- data = (const uint8_t*) data + 9;
- len -= 9;
-
- ret = fwrite(data, len, 1, output ? output : stdout);
- if (ret != 1) {
- log_error("dumping coredump: %m (%zu)", ret);
- return -errno;
- }
-
r = sd_journal_previous(j);
if (r >= 0)
log_warning("More than one entry matches, ignoring rest.");
}
static int run_gdb(sd_journal *j) {
- char path[] = "/var/tmp/coredump-XXXXXX";
- const void *data;
+ _cleanup_free_ char *exe = NULL, *path = NULL;
+ bool unlink_path = false;
+ const char *data;
+ siginfo_t st;
size_t len;
- ssize_t sz;
pid_t pid;
- _cleanup_free_ char *exe = NULL;
int r;
- _cleanup_close_ int fd = -1;
- siginfo_t st;
assert(j);
- sd_journal_set_data_threshold(j, 0);
-
r = focus(j);
if (r < 0)
return r;
- print_entry(stdout, j, false);
+ print_info(stdout, j, false);
+ fputs("\n", stdout);
r = sd_journal_get_data(j, "COREDUMP_EXE", (const void**) &data, &len);
if (r < 0) {
return r;
}
- assert(len >= 13);
- data = (const uint8_t*) data + 13;
- len -= 13;
+ assert(len > strlen("COREDUMP_EXE="));
+ data += strlen("COREDUMP_EXE=");
+ len -= strlen("COREDUMP_EXE=");
exe = strndup(data, len);
if (!exe)
return -ENOENT;
}
- r = sd_journal_get_data(j, "COREDUMP", (const void**) &data, &len);
- if (r < 0) {
- log_error("Failed to retrieve COREDUMP field: %s", strerror(-r));
- return r;
- }
-
- assert(len >= 9);
- data = (const uint8_t*) data + 9;
- len -= 9;
-
- fd = mkostemp_safe(path, O_WRONLY|O_CLOEXEC);
- if (fd < 0) {
- log_error("Failed to create temporary file: %m");
- return -errno;
+ if (!path_is_absolute(exe)) {
+ log_error("Binary is not an absolute path.");
+ return -ENOENT;
}
- sz = write(fd, data, len);
- if (sz < 0) {
- log_error("Failed to write temporary file: %m");
- r = -errno;
- goto finish;
- }
- if (sz != (ssize_t) len) {
- log_error("Short write to temporary file.");
- r = -EIO;
- goto finish;
+ r = save_core(j, -1, &path, &unlink_path);
+ if (r < 0) {
+ log_error("Failed to retrieve core: %s", strerror(-r));
+ return r;
}
- fd = safe_close(fd);
-
pid = fork();
if (pid < 0) {
log_error("Failed to fork(): %m");
}
if (pid == 0) {
execlp("gdb", "gdb", exe, path, NULL);
+
log_error("Failed to invoke gdb: %m");
_exit(1);
}
r = st.si_code == CLD_EXITED ? st.si_status : 255;
finish:
- unlink(path);
+ if (unlink_path) {
+ log_debug("Removed temporary file %s", path);
+ unlink(path);
+ }
+
return r;
}
goto end;
}
+ /* We want full data, nothing truncated. */
+ sd_journal_set_data_threshold(j, 0);
+
SET_FOREACH(match, matches, it) {
r = sd_journal_add_match(j, match, strlen(match));
if (r != 0) {
switch(arg_action) {
case ACTION_LIST:
+ case ACTION_INFO:
if (!arg_no_pager)
pager_open(false);
if (r < 0)
return mhd_respondf(connection, MHD_HTTP_INTERNAL_SERVER_ERROR, "Failed to determine disk usage: %s\n", strerror(-r));
- parse_env_file("/etc/os-release", NEWLINE, "PRETTY_NAME", &os_name, NULL);
+ if (parse_env_file("/etc/os-release", NEWLINE, "PRETTY_NAME", &os_name, NULL) == -ENOENT)
+ parse_env_file("/usr/lib/os-release", NEWLINE, "PRETTY_NAME", &os_name, NULL);
get_virtualization(&v);
static int get_data_size(RemoteSource *source) {
int r;
- void _cleanup_free_ *data = NULL;
+ _cleanup_free_ void *data = NULL;
assert(source);
assert(source->state == STATE_DATA_START);
static int get_data_newline(RemoteSource *source) {
int r;
- char _cleanup_free_ *data = NULL;
+ _cleanup_free_ char *data = NULL;
assert(source);
assert(source->state == STATE_DATA_FINISH);
static int spawn_getter(char *getter, char *url) {
int r;
- char _cleanup_strv_free_ **words = NULL;
+ _cleanup_strv_free_ char **words = NULL;
assert(getter);
words = strv_split_quoted(getter);
}
static int open_output(Writer *s, const char* url) {
- char _cleanup_free_ *name, *output = NULL;
+ _cleanup_free_ char *name, *output = NULL;
char *c;
int r;
static int add_source(RemoteServer *s, int fd, const char* name) {
RemoteSource *source = NULL;
- char *realname;
+ _cleanup_free_ char *realname = NULL;
int r;
assert(s);
return log_oom();
}
- log_debug("Creating source for fd:%d (%s)", fd, name);
+ log_debug("Creating source for fd:%d (%s)", fd, realname);
r = get_source_for_fd(s, fd, &source);
if (r < 0) {
- log_error("Failed to create source for fd:%d (%s)", fd, name);
+ log_error("Failed to create source for fd:%d (%s)", fd, realname);
return r;
}
assert(source);
}
if (arg_url) {
- char _cleanup_free_ *url = NULL;
- char _cleanup_strv_free_ **urlv = strv_new(arg_url, "/entries", NULL);
+ _cleanup_free_ char *url = NULL;
+ _cleanup_strv_free_ char **urlv = strv_new(arg_url, "/entries", NULL);
if (!urlv)
return log_oom();
url = strv_join(urlv, "");
_public_ int sd_journal_sendv(const struct iovec *iov, int n) {
PROTECT_ERRNO;
- int fd, buffer_fd;
+ int fd;
+ _cleanup_close_ int buffer_fd = -1;
struct iovec *w;
uint64_t *l;
int i, j = 0;
return buffer_fd;
n = writev(buffer_fd, w, j);
- if (n < 0) {
- safe_close(buffer_fd);
+ if (n < 0)
return -errno;
- }
mh.msg_iov = NULL;
mh.msg_iovlen = 0;
mh.msg_controllen = cmsg->cmsg_len;
k = sendmsg(fd, &mh, MSG_NOSIGNAL);
- safe_close(buffer_fd);
-
if (k < 0)
return -errno;
.un.sun_family = AF_UNIX,
.un.sun_path = "/run/systemd/journal/stdout",
};
- int fd;
+ _cleanup_close_ int fd = -1;
char *header;
size_t l;
- ssize_t r;
+ int r;
assert_return(priority >= 0, -EINVAL);
assert_return(priority <= 7, -EINVAL);
return -errno;
r = connect(fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
- if (r < 0) {
- safe_close(fd);
+ if (r < 0)
return -errno;
- }
- if (shutdown(fd, SHUT_RD) < 0) {
- safe_close(fd);
+ if (shutdown(fd, SHUT_RD) < 0)
return -errno;
- }
fd_inc_sndbuf(fd, SNDBUF_SIZE);
header[l++] = '0';
header[l++] = '\n';
- r = loop_write(fd, header, l, false);
- if (r < 0) {
- safe_close(fd);
- return (int) r;
- }
+ r = (int) loop_write(fd, header, l, false);
+ if (r < 0)
+ return r;
- if ((size_t) r != l) {
- safe_close(fd);
+ if ((size_t) r != l)
return -errno;
- }
- return fd;
+ r = fd;
+ fd = -1;
+ return r;
}
_public_ int sd_journal_print_with_location(int priority, const char *file, const char *line, const char *func, const char *format, ...) {
qsort_safe(list, n_list, sizeof(struct vacuum_info), vacuum_compare);
for (i = 0; i < n_list; i++) {
- struct statvfs ss;
-
- if (fstatvfs(dirfd(d), &ss) < 0) {
- r = -errno;
- goto finish;
- }
-
if ((max_retention_usec <= 0 || list[i].realtime >= retention_limit) &&
(max_use <= 0 || sum <= max_use))
break;
#define DEFAULT_SYNC_INTERVAL_USEC (5*USEC_PER_MINUTE)
#define DEFAULT_RATE_LIMIT_INTERVAL (30*USEC_PER_SEC)
#define DEFAULT_RATE_LIMIT_BURST 1000
+#define DEFAULT_MAX_FILE_USEC USEC_PER_MONTH
#define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC)
log_warning("Failed to fix access mode on %s, ignoring: %s", f->path, strerror(-r));
#ifdef HAVE_ACL
- if (uid <= 0)
+ if (uid <= SYSTEM_UID_MAX)
return;
acl = acl_get_fd(f->fd);
/* Split up strictly by any UID */
journal_uid = realuid;
else if (s->split_mode == SPLIT_LOGIN && realuid > 0 && owner_valid && owner > 0)
- /* Split up by login UIDs, this avoids creation of
- * individual journals for system UIDs. We do this
- * only if the realuid is not root, in order not to
- * accidentally leak privileged information to the
- * user that is logged by a privileged process that is
- * part of an unprivileged session.*/
+ /* Split up by login UIDs. We do this only if the
+ * realuid is not root, in order not to accidentally
+ * leak privileged information to the user that is
+ * logged by a privileged process that is part of an
+ * unprivileged session.*/
journal_uid = owner;
else
journal_uid = 0;
s->forward_to_syslog = true;
s->forward_to_wall = true;
+ s->max_file_usec = DEFAULT_MAX_FILE_USEC;
+
s->max_level_store = LOG_DEBUG;
s->max_level_syslog = LOG_DEBUG;
s->max_level_kmsg = LOG_NOTICE;
} Storage;
typedef enum SplitMode {
- SPLIT_LOGIN,
SPLIT_UID,
+ SPLIT_LOGIN,
SPLIT_NONE,
_SPLIT_MAX,
_SPLIT_INVALID = -1
#Storage=auto
#Compress=yes
#Seal=yes
-#SplitMode=login
+#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
const union MHD_ConnectionInfo *ci;
gnutls_session_t session;
gnutls_x509_crt_t client_cert;
- char _cleanup_free_ *buf = NULL;
+ _cleanup_free_ char *buf = NULL;
int r;
assert(connection);
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <dwarf.h>
+#include <elfutils/libdwfl.h>
+
+#include "util.h"
+#include "macro.h"
+#include "stacktrace.h"
+
+#define FRAMES_MAX 64
+#define THREADS_MAX 64
+
+struct stack_context {
+ FILE *f;
+ Dwfl *dwfl;
+ Elf *elf;
+ unsigned n_thread;
+ unsigned n_frame;
+};
+
+static int frame_callback(Dwfl_Frame *frame, void *userdata) {
+ struct stack_context *c = userdata;
+ Dwarf_Addr pc, pc_adjusted, bias = 0;
+ _cleanup_free_ Dwarf_Die *scopes = NULL;
+ const char *fname = NULL, *symbol = NULL;
+ Dwfl_Module *module;
+ bool is_activation;
+
+ assert(frame);
+ assert(c);
+
+ if (c->n_frame >= FRAMES_MAX)
+ return DWARF_CB_ABORT;
+
+ if (!dwfl_frame_pc(frame, &pc, &is_activation))
+ return DWARF_CB_ABORT;
+
+ pc_adjusted = pc - (is_activation ? 0 : 1);
+
+ module = dwfl_addrmodule(c->dwfl, pc_adjusted);
+ if (module) {
+ Dwarf_Die *s, *cudie;
+ int n;
+
+ cudie = dwfl_module_addrdie(module, pc_adjusted, &bias);
+ if (cudie) {
+ n = dwarf_getscopes(cudie, pc_adjusted - bias, &scopes);
+ for (s = scopes; s < scopes + n; s++) {
+ if (IN_SET(dwarf_tag(s), DW_TAG_subprogram, DW_TAG_inlined_subroutine, DW_TAG_entry_point)) {
+ Dwarf_Attribute *a, space;
+
+ a = dwarf_attr_integrate(s, DW_AT_MIPS_linkage_name, &space);
+ if (!a)
+ a = dwarf_attr_integrate(s, DW_AT_linkage_name, &space);
+ if (a)
+ symbol = dwarf_formstring(a);
+ if (!symbol)
+ symbol = dwarf_diename(s);
+
+ if (symbol)
+ break;
+ }
+ }
+ }
+
+ if (!symbol)
+ symbol = dwfl_module_addrname(module, pc_adjusted);
+
+ fname = dwfl_module_info(module, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+ }
+
+ fprintf(c->f, "#%-2u 0x%016" PRIx64 " %s (%s)\n", c->n_frame, (uint64_t) pc, strna(symbol), strna(fname));
+ c->n_frame ++;
+
+ return DWARF_CB_OK;
+}
+
+static int thread_callback(Dwfl_Thread *thread, void *userdata) {
+ struct stack_context *c = userdata;
+ pid_t tid;
+
+ assert(thread);
+ assert(c);
+
+ if (c->n_thread >= THREADS_MAX)
+ return DWARF_CB_ABORT;
+
+ if (c->n_thread != 0)
+ fputc('\n', c->f);
+
+ c->n_frame = 0;
+
+ tid = dwfl_thread_tid(thread);
+ fprintf(c->f, "Stack trace of thread " PID_FMT ":\n", tid);
+
+ if (dwfl_thread_getframes(thread, frame_callback, c) < 0)
+ return DWARF_CB_ABORT;
+
+ c->n_thread ++;
+
+ return DWARF_CB_OK;
+}
+
+int coredump_make_stack_trace(int fd, const char *executable, char **ret) {
+
+ static const Dwfl_Callbacks callbacks = {
+ .find_elf = dwfl_build_id_find_elf,
+ .find_debuginfo = dwfl_standard_find_debuginfo,
+ };
+
+ struct stack_context c = {};
+ char *buf = NULL;
+ size_t sz = 0;
+ int r;
+
+ assert(fd >= 0);
+ assert(ret);
+
+ if (lseek(fd, 0, SEEK_SET) == (off_t) -1)
+ return -errno;
+
+ c.f = open_memstream(&buf, &sz);
+ if (!c.f)
+ return -ENOMEM;
+
+ elf_version(EV_CURRENT);
+
+ c.elf = elf_begin(fd, ELF_C_READ_MMAP, NULL);
+ if (!c.elf) {
+ r = -EINVAL;
+ goto finish;
+ }
+
+ c.dwfl = dwfl_begin(&callbacks);
+ if (!c.dwfl) {
+ r = -EINVAL;
+ goto finish;
+ }
+
+ if (dwfl_core_file_report(c.dwfl, c.elf, executable) < 0) {
+ r = -EINVAL;
+ goto finish;
+ }
+
+ if (dwfl_report_end(c.dwfl, NULL, NULL) != 0) {
+ r = -EINVAL;
+ goto finish;
+ }
+
+ if (dwfl_core_file_attach(c.dwfl, c.elf) < 0) {
+ r = -EINVAL;
+ goto finish;
+ }
+
+ if (dwfl_getthreads(c.dwfl, thread_callback, &c) < 0) {
+ r = -EINVAL;
+ goto finish;
+ }
+
+ fclose(c.f);
+ c.f = NULL;
+
+ *ret = buf;
+ buf = NULL;
+
+ r = 0;
+
+finish:
+ if (c.dwfl)
+ dwfl_end(c.dwfl);
+
+ if (c.elf)
+ elf_end(c.elf);
+
+ if (c.f)
+ fclose(c.f);
+
+ free(buf);
+
+ return r;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+int coredump_make_stack_trace(int fd, const char *executable, char **ret);
--- /dev/null
+/***
+ This file is part of systemd
+
+ Copyright 2014 Ronny Chevalier
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "compress.h"
+#include "util.h"
+#include "macro.h"
+
+static void test_compress_uncompress(void) {
+ char text[] = "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF"
+ "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF";
+ char compressed[512];
+ uint64_t csize = 512;
+ uint64_t usize = 0;
+ _cleanup_free_ char *uncompressed = NULL;
+
+ assert_se(compress_blob(text, sizeof(text), compressed, &csize));
+ assert_se(uncompress_blob(compressed,
+ csize,
+ (void **) &uncompressed,
+ &usize, &csize, 0));
+ assert_se(uncompressed);
+ assert_se(streq(uncompressed, text));
+ assert_se(!uncompress_blob("garbage",
+ 7,
+ (void **) &uncompressed,
+ &usize, &csize, 0));
+}
+
+static void test_uncompress_startswith(void) {
+ char text[] = "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF"
+ "foofoofoofoo AAAA aaaaaaaaa ghost busters barbarbar FFF";
+ char compressed[512];
+ uint64_t csize = 512;
+ uint64_t usize = 0;
+ _cleanup_free_ char *uncompressed = NULL;
+
+ assert_se(compress_blob(text, sizeof(text), compressed, &csize));
+ assert_se(uncompress_startswith(compressed,
+ csize,
+ (void **) &uncompressed,
+ &usize,
+ "foofoofoofoo", 12, ' '));
+ assert_se(!uncompress_startswith(compressed,
+ csize,
+ (void **) &uncompressed,
+ &usize,
+ "foofoofoofoo", 12, 'w'));
+ assert_se(!uncompress_startswith(compressed,
+ csize,
+ (void **) &uncompressed,
+ &usize,
+ "barbarbar", 9, ' '));
+}
+
+static void test_compress_stream(const char *srcfile) {
+ _cleanup_close_ int src = -1, dst = -1, dst2 = -1;
+ char pattern[] = "/tmp/systemd-test.xz.XXXXXX",
+ pattern2[] = "/tmp/systemd-test.xz.XXXXXX";
+ int r;
+ _cleanup_free_ char *cmd, *cmd2;
+ struct stat st = {};
+
+ log_debug("/* create source from %s */", srcfile);
+
+ assert_se((src = open(srcfile, O_RDONLY|O_CLOEXEC)) >= 0);
+
+ log_debug("/* test compression */");
+
+ assert_se((dst = mkostemp_safe(pattern, O_RDWR|O_CLOEXEC)) >= 0);
+
+ r = compress_stream(src, dst, 1, -1);
+ assert(r == 0);
+
+ assert_se(asprintf(&cmd, "xzcat %s | diff %s -", pattern, srcfile) > 0);
+ assert_se(system(cmd) == 0);
+
+ log_debug("/* test decompression */");
+
+ assert_se((dst2 = mkostemp_safe(pattern2, O_RDWR|O_CLOEXEC)) >= 0);
+
+ assert_se(stat(srcfile, &st) == 0);
+
+ assert_se(lseek(dst, 0, SEEK_SET) == 0);
+ r = decompress_stream(dst, dst2, st.st_size);
+ assert(r == 0);
+
+ assert_se(asprintf(&cmd2, "diff %s %s", srcfile, pattern2) > 0);
+ assert_se(system(cmd2) == 0);
+
+ log_debug("/* test faulty decompression */");
+
+ assert_se(lseek(dst, 1, SEEK_SET) == 1);
+ r = decompress_stream(dst, dst2, st.st_size);
+ assert(r == -EBADMSG);
+
+ assert_se(lseek(dst, 0, SEEK_SET) == 0);
+ assert_se(lseek(dst2, 0, SEEK_SET) == 0);
+ r = decompress_stream(dst, dst2, st.st_size - 1);
+ assert(r == -E2BIG);
+
+ assert_se(unlink(pattern) == 0);
+ assert_se(unlink(pattern2) == 0);
+}
+
+int main(int argc, char *argv[]) {
+
+ log_set_max_level(LOG_DEBUG);
+
+ test_compress_uncompress();
+ test_uncompress_startswith();
+ test_compress_stream(argv[0]);
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2012 Zbigniew Jędrzejewski-Szmek
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdlib.h>
+
+#include "coredump-vacuum.h"
+
+int main(int argc, char *argv[]) {
+
+ if (coredump_vacuum(-1, (off_t) -1, 70 * 1024) < 0)
+ return EXIT_FAILURE;
+
+ return EXIT_SUCCESS;
+}
if [[ -f /etc/os-release ]]; then
. /etc/os-release
+elif [[ -f /usr/lib/os-release ]]; then
+ . /usr/lib/os-release
fi
if ! [[ $PRETTY_NAME ]]; then
#include "socket-util.h"
+#include "sd-dhcp-client.h"
#include "dhcp-protocol.h"
int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link, uint32_t xid);
int dhcp_message_init(DHCPMessage *message, uint8_t op, uint32_t xid, uint8_t type,
size_t optlen, size_t *optoffset);
-uint16_t dhcp_packet_checksum(void *buf, size_t len);
+uint16_t dhcp_packet_checksum(uint8_t *buf, size_t len);
void dhcp_packet_append_ip_headers(DHCPPacket *packet, be32_t source_addr,
uint16_t source, be32_t destination_addr,
int dhcp_packet_verify_headers(DHCPPacket *packet, size_t len, bool checksum);
+DEFINE_TRIVIAL_CLEANUP_FUNC(sd_dhcp_client*, sd_dhcp_client_unref);
+#define _cleanup_dhcp_client_unref_ _cleanup_(sd_dhcp_client_unrefp)
+
+/* If we are invoking callbacks of a dhcp-client, ensure unreffing the
+ * client from the callback doesn't destroy the object we are working
+ * on */
+#define DHCP_CLIENT_DONT_DESTROY(client) \
+ _cleanup_dhcp_client_unref_ _unused_ sd_dhcp_client *_dont_destroy_##client = sd_dhcp_client_ref(client)
+
#define log_dhcp_client(client, fmt, ...) log_meta(LOG_DEBUG, __FILE__, __LINE__, __func__, "DHCP CLIENT (0x%x): " fmt, client->xid, ##__VA_ARGS__)
#include "sd-dhcp-client.h"
+struct sd_dhcp_route {
+ struct in_addr dst_addr;
+ struct in_addr gw_addr;
+ uint8_t dst_prefixlen;
+};
+
struct sd_dhcp_lease {
RefCount n_ref;
size_t ntp_size;
struct in_addr *policy_filter;
size_t policy_filter_size;
- struct in_addr *static_route;
+ struct sd_dhcp_route *static_route;
size_t static_route_size;
+ size_t static_route_allocated;
uint16_t boot_file_size;
uint16_t mdr;
uint16_t mtu;
BPF_STMT(BPF_LD + BPF_W + BPF_LEN, 0), /* A <- packet length */
BPF_JUMP(BPF_JMP + BPF_JGE + BPF_K, sizeof(DHCPPacket), 1, 0), /* packet >= DHCPPacket ? */
BPF_STMT(BPF_RET + BPF_K, 0), /* ignore */
- /* TODO: match ip.version */
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, offsetof(DHCPPacket, ip.protocol)), /* A <- IP protocol */
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, IPPROTO_UDP, 1, 0), /* IP protocol == UDP ? */
BPF_STMT(BPF_RET + BPF_K, 0), /* ignore */
+ BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(DHCPPacket, ip.frag_off)), /* A <- Flags + Fragment offset */
+ BPF_STMT(BPF_ALU + BPF_AND + BPF_K, 0x1fff), /* A <- A & 0x1fff */
+ BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0, 1, 0), /* A == 0 ? */
+ BPF_STMT(BPF_RET + BPF_K, 0), /* ignore */
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(DHCPPacket, udp.dest)), /* A <- UDP destination port */
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, DHCP_PORT_CLIENT, 1, 0), /* UDP destination port == DHCP client port ? */
BPF_STMT(BPF_RET + BPF_K, 0), /* ignore */
.filter = filter
};
_cleanup_close_ int s = -1;
- int r, one = 1;
+ int r, on = 1;
assert(index > 0);
assert(link);
if (s < 0)
return -errno;
- r = setsockopt (s, SOL_PACKET, PACKET_AUXDATA, &one, sizeof(one));
+ r = setsockopt (s, SOL_PACKET, PACKET_AUXDATA, &on, sizeof(on));
if (r < 0)
return -errno;
if (r < 0)
return -errno;
+ if (address == INADDR_ANY) {
+ int on = 1;
+
+ r = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IP, IP_PKTINFO, &on, sizeof(on));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));
+ if (r < 0)
+ return -errno;
+ }
+
r = bind(s, &src.sa, sizeof(src.in));
if (r < 0)
return -errno;
return 0;
}
-uint16_t dhcp_packet_checksum(void *buf, size_t len) {
- uint64_t *buf_64 = buf;
- uint64_t *end_64 = (uint64_t*)buf + (len / sizeof(uint64_t));
- uint32_t *buf_32;
- uint16_t *buf_16;
- uint8_t *buf_8;
+uint16_t dhcp_packet_checksum(uint8_t *buf, size_t len) {
+ uint64_t *buf_64 = (uint64_t*)buf;
+ uint64_t *end_64 = buf_64 + (len / sizeof(uint64_t));
uint64_t sum = 0;
+ /* See RFC1071 */
+
while (buf_64 < end_64) {
sum += *buf_64;
if (sum < *buf_64)
+ /* wrap around in one's complement */
sum++;
buf_64 ++;
}
- buf_32 = (uint32_t*)buf_64;
-
- if (len & sizeof(uint32_t)) {
- sum += *buf_32;
- if (sum < *buf_32)
- sum++;
-
- buf_32 ++;
- }
-
- buf_16 = (uint16_t*)buf_32;
-
- if (len & sizeof(uint16_t)) {
- sum += *buf_16;
- if (sum < *buf_16)
- sum ++;
-
- buf_16 ++;
- }
+ if (len % sizeof(uint64_t)) {
+ /* If the buffer is not aligned to 64-bit, we need
+ to zero-pad the last few bytes and add them in */
+ uint64_t buf_tail = 0;
- buf_8 = (uint8_t*)buf_16;
+ memcpy(&buf_tail, buf_64, len % sizeof(uint64_t));
- if (len & sizeof(uint8_t)) {
- sum += *buf_8;
- if (sum < *buf_8)
+ sum += buf_tail;
+ if (sum < buf_tail)
+ /* wrap around */
sum++;
}
packet->udp.len = htobe16(len - DHCP_IP_SIZE);
packet->ip.check = packet->udp.len;
- packet->udp.check = dhcp_packet_checksum(&packet->ip.ttl, len - 8);
+ packet->udp.check = dhcp_packet_checksum((uint8_t*)&packet->ip.ttl, len - 8);
packet->ip.ttl = IPDEFTTL;
packet->ip.check = 0;
- packet->ip.check = dhcp_packet_checksum(&packet->ip, DHCP_IP_SIZE);
+ packet->ip.check = dhcp_packet_checksum((uint8_t*)&packet->ip, DHCP_IP_SIZE);
}
int dhcp_packet_verify_headers(DHCPPacket *packet, size_t len, bool checksum) {
if all the other checks have passed
*/
- if (dhcp_packet_checksum(&packet->ip, hdrlen)) {
+ if (dhcp_packet_checksum((uint8_t*)&packet->ip, hdrlen)) {
log_debug("ignoring packet: invalid IP checksum");
return -EINVAL;
}
packet->ip.check = packet->udp.len;
packet->ip.ttl = 0;
- if (dhcp_packet_checksum(&packet->ip.ttl,
+ if (dhcp_packet_checksum((uint8_t*)&packet->ip.ttl,
be16toh(packet->udp.len) + 12)) {
log_debug("ignoring packet: invalid UDP checksum");
return -EINVAL;
DHCP_OPTION_RENEWAL_T1_TIME = 58,
DHCP_OPTION_REBINDING_T2_TIME = 59,
DHCP_OPTION_CLIENT_IDENTIFIER = 61,
+ DHCP_OPTION_CLASSLESS_STATIC_ROUTE = 121,
DHCP_OPTION_END = 255,
};
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2013 Intel Corporation. All rights reserved.
+ Copyright (C) 2014 Tom Gundersen
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "sd-event.h"
+#include "sd-dhcp-server.h"
+
+#include "hashmap.h"
+#include "refcnt.h"
+#include "util.h"
+#include "log.h"
+
+#include "dhcp-internal.h"
+
+typedef struct DHCPClientId {
+ size_t length;
+ uint8_t *data;
+} DHCPClientId;
+
+typedef struct DHCPLease {
+ DHCPClientId client_id;
+
+ be32_t address;
+ usec_t expiration;
+} DHCPLease;
+
+struct sd_dhcp_server {
+ RefCount n_ref;
+
+ sd_event *event;
+ int event_priority;
+ sd_event_source *receive_message;
+ int fd;
+ int fd_raw;
+
+ int index;
+ be32_t address;
+ be32_t pool_start;
+ size_t pool_size;
+ size_t next_offer;
+
+ Hashmap *leases_by_client_id;
+ DHCPLease **bound_leases;
+};
+
+typedef struct DHCPRequest {
+ /* received message */
+ DHCPMessage *message;
+
+ /* options */
+ DHCPClientId client_id;
+ size_t max_optlen;
+ be32_t server_id;
+ be32_t requested_ip;
+ int lifetime;
+} DHCPRequest;
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(sd_dhcp_server*, sd_dhcp_server_unref);
+#define _cleanup_dhcp_server_unref_ _cleanup_(sd_dhcp_server_unrefp)
+
+#define log_dhcp_server(client, fmt, ...) log_meta(LOG_DEBUG, __FILE__, __LINE__, __func__, "DHCP SERVER: " fmt, ##__VA_ARGS__)
+
+int dhcp_server_handle_message(sd_dhcp_server *server, DHCPMessage *message,
+ size_t length);
+int dhcp_server_send_packet(sd_dhcp_server *server,
+ DHCPRequest *req, DHCPPacket *packet,
+ int type, size_t optoffset);
+
+unsigned long client_id_hash_func(const void *p, const uint8_t hash_key[HASH_KEY_SIZE]);
+int client_id_compare_func(const void *_a, const void *_b);
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <net/ethernet.h>
+#include <netinet/in.h>
+
+#include "sparse-endian.h"
+#include "sd-event.h"
+#include "list.h"
+#include "macro.h"
+
+typedef struct DHCP6Address DHCP6Address;
+
+struct DHCP6Address {
+ LIST_FIELDS(DHCP6Address, addresses);
+
+ struct {
+ struct in6_addr address;
+ be32_t lifetime_preferred;
+ be32_t lifetime_valid;
+ } _packed_;
+};
+
+struct DHCP6IA {
+ uint16_t type;
+ struct {
+ be32_t id;
+ be32_t lifetime_t1;
+ be32_t lifetime_t2;
+ } _packed_;
+ sd_event_source *timeout_t1;
+ sd_event_source *timeout_t2;
+
+ LIST_HEAD(DHCP6Address, addresses);
+};
+
+typedef struct DHCP6IA DHCP6IA;
+
+#define log_dhcp6_client(p, fmt, ...) log_meta(LOG_DEBUG, __FILE__, __LINE__, __func__, "DHCPv6 CLIENT: " fmt, ##__VA_ARGS__)
+
+int dhcp_network_icmp6_bind_router_solicitation(int index);
+int dhcp_network_icmp6_send_router_solicitation(int s, const struct ether_addr *ether_addr);
+
+int dhcp6_option_append(uint8_t **buf, size_t *buflen, uint16_t code,
+ size_t optlen, const void *optval);
+int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia);
+int dhcp6_option_parse(uint8_t **buf, size_t *buflen, uint16_t *optcode,
+ size_t *optlen, uint8_t **optvalue);
+int dhcp6_option_parse_ia(uint8_t **buf, size_t *buflen, uint16_t iatype,
+ DHCP6IA *ia);
+
+int dhcp6_network_bind_udp_socket(int index, struct in6_addr *address);
+int dhcp6_network_send_udp_socket(int s, struct in6_addr *address,
+ const void *packet, size_t len);
+
+const char *dhcp6_message_type_to_string(int s) _const_;
+int dhcp6_message_type_from_string(const char *s) _pure_;
+const char *dhcp6_message_status_to_string(int s) _const_;
+int dhcp6_message_status_from_string(const char *s) _pure_;
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Tom Gundersen
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdint.h>
+
+#include "refcnt.h"
+
+#include "sd-dhcp6-lease.h"
+#include "dhcp6-internal.h"
+
+struct sd_dhcp6_lease {
+ RefCount n_ref;
+
+ uint8_t *serverid;
+ size_t serverid_len;
+ uint8_t preference;
+ bool rapid_commit;
+
+ DHCP6IA ia;
+
+ DHCP6Address *addr_iter;
+};
+
+int dhcp6_lease_clear_timers(DHCP6IA *ia);
+int dhcp6_lease_ia_rebind_expire(const DHCP6IA *ia, uint32_t *expire);
+DHCP6IA *dhcp6_lease_free_ia(DHCP6IA *ia);
+
+int dhcp6_lease_set_serverid(sd_dhcp6_lease *lease, const uint8_t *id,
+ size_t len);
+int dhcp6_lease_get_serverid(sd_dhcp6_lease *lease, uint8_t **id, size_t *len);
+int dhcp6_lease_set_preference(sd_dhcp6_lease *lease, uint8_t preference);
+int dhcp6_lease_get_preference(sd_dhcp6_lease *lease, uint8_t *preference);
+int dhcp6_lease_set_rapid_commit(sd_dhcp6_lease *lease);
+int dhcp6_lease_get_rapid_commit(sd_dhcp6_lease *lease, bool *rapid_commit);
+
+int dhcp6_lease_get_iaid(sd_dhcp6_lease *lease, be32_t *iaid);
+
+int dhcp6_lease_new(sd_dhcp6_lease **ret);
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(sd_dhcp6_lease*, sd_dhcp6_lease_unref);
+#define _cleanup_dhcp6_lease_free_ _cleanup_(sd_dhcp6_lease_unrefp)
--- /dev/null
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <string.h>
+#include <linux/if_packet.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <netinet/ip6.h>
+#include <netinet/icmp6.h>
+#include <netinet/in.h>
+
+#include "socket-util.h"
+
+#include "dhcp6-internal.h"
+#include "dhcp6-protocol.h"
+
+#define IN6ADDR_ALL_ROUTERS_MULTICAST_INIT \
+ { { { 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 } } }
+
+#define IN6ADDR_ALL_NODES_MULTICAST_INIT \
+ { { { 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }
+
+int dhcp_network_icmp6_bind_router_solicitation(int index)
+{
+ struct icmp6_filter filter = { };
+ struct ipv6_mreq mreq = {
+ .ipv6mr_multiaddr = IN6ADDR_ALL_NODES_MULTICAST_INIT,
+ .ipv6mr_interface = index,
+ };
+ _cleanup_close_ int s = -1;
+ int r, zero = 0, hops = 255;
+
+ s = socket(AF_INET6, SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK,
+ IPPROTO_ICMPV6);
+ if (s < 0)
+ return -errno;
+
+ ICMP6_FILTER_SETBLOCKALL(&filter);
+ ICMP6_FILTER_SETPASS(ND_ROUTER_ADVERT, &filter);
+ r = setsockopt(s, IPPROTO_ICMPV6, ICMP6_FILTER, &filter,
+ sizeof(filter));
+ if (r < 0)
+ return -errno;
+
+ /* RFC 3315, section 6.7, bullet point 2 may indicate that an
+ IPV6_PKTINFO socket option also applies for ICMPv6 multicast.
+ Empirical experiments indicates otherwise and therefore an
+ IPV6_MULTICAST_IF socket option is used here instead */
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_IF, &index,
+ sizeof(index));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &zero,
+ sizeof(zero));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &hops,
+ sizeof(hops));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq,
+ sizeof(mreq));
+ if (r < 0)
+ return -errno;
+
+ r = s;
+ s = -1;
+ return r;
+}
+
+int dhcp_network_icmp6_send_router_solicitation(int s, const struct ether_addr *ether_addr)
+{
+ struct sockaddr_in6 dst = {
+ .sin6_family = AF_INET6,
+ .sin6_addr = IN6ADDR_ALL_ROUTERS_MULTICAST_INIT,
+ };
+ struct {
+ struct nd_router_solicit rs;
+ struct nd_opt_hdr rs_opt;
+ struct ether_addr rs_opt_mac;
+ } _packed_ rs = {
+ .rs.nd_rs_type = ND_ROUTER_SOLICIT,
+ };
+ struct iovec iov[1] = {
+ { &rs, },
+ };
+ struct msghdr msg = {
+ .msg_name = &dst,
+ .msg_namelen = sizeof(dst),
+ .msg_iov = iov,
+ .msg_iovlen = 1,
+ };
+ int r;
+
+ if (ether_addr) {
+ memcpy(&rs.rs_opt_mac, ether_addr, ETH_ALEN);
+ rs.rs_opt.nd_opt_type = ND_OPT_SOURCE_LINKADDR;
+ rs.rs_opt.nd_opt_len = 1;
+ iov[0].iov_len = sizeof(rs);
+ } else
+ iov[0].iov_len = sizeof(rs.rs);
+
+ r = sendmsg(s, &msg, 0);
+ if (r < 0)
+ return -errno;
+
+ return 0;
+}
+
+int dhcp6_network_bind_udp_socket(int index, struct in6_addr *local_address) {
+ struct in6_pktinfo pktinfo = {
+ .ipi6_ifindex = index,
+ };
+ union sockaddr_union src = {
+ .in6.sin6_family = AF_INET6,
+ .in6.sin6_port = htobe16(DHCP6_PORT_CLIENT),
+ .in6.sin6_addr = IN6ADDR_ANY_INIT,
+ };
+ _cleanup_close_ int s = -1;
+ int r, off = 0, on = 1;
+
+ if (local_address)
+ memcpy(&src.in6.sin6_addr, local_address,
+ sizeof(src.in6.sin6_addr));
+
+ s = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK,
+ IPPROTO_UDP);
+ if (s < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, &pktinfo,
+ sizeof(pktinfo));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on));
+ if (r < 0)
+ return -errno;
+
+ r = setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &off, sizeof(off));
+ if (r < 0)
+ return -errno;
+
+ r = bind(s, &src.sa, sizeof(src.in6));
+ if (r < 0)
+ return -errno;
+
+ r = s;
+ s = -1;
+ return r;
+}
+
+int dhcp6_network_send_udp_socket(int s, struct in6_addr *server_address,
+ const void *packet, size_t len) {
+ union sockaddr_union dest = {
+ .in6.sin6_family = AF_INET6,
+ .in6.sin6_port = htobe16(DHCP6_PORT_SERVER),
+ };
+ int r;
+
+ assert(server_address);
+
+ memcpy(&dest.in6.sin6_addr, server_address, sizeof(dest.in6.sin6_addr));
+
+ r = sendto(s, packet, len, 0, &dest.sa, sizeof(dest.in6));
+ if (r < 0)
+ return -errno;
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/in.h>
+#include <errno.h>
+#include <string.h>
+
+#include "sparse-endian.h"
+#include "util.h"
+
+#include "dhcp6-internal.h"
+#include "dhcp6-protocol.h"
+
+#define DHCP6_OPTION_HDR_LEN 4
+#define DHCP6_OPTION_IA_NA_LEN 12
+#define DHCP6_OPTION_IA_TA_LEN 4
+#define DHCP6_OPTION_IAADDR_LEN 24
+
+static int option_append_hdr(uint8_t **buf, size_t *buflen, uint16_t optcode,
+ size_t optlen) {
+ assert_return(buf, -EINVAL);
+ assert_return(*buf, -EINVAL);
+ assert_return(buflen, -EINVAL);
+
+ if (optlen > 0xffff || *buflen < optlen + DHCP6_OPTION_HDR_LEN)
+ return -ENOBUFS;
+
+ (*buf)[0] = optcode >> 8;
+ (*buf)[1] = optcode & 0xff;
+ (*buf)[2] = optlen >> 8;
+ (*buf)[3] = optlen & 0xff;
+
+ *buf += DHCP6_OPTION_HDR_LEN;
+ *buflen -= DHCP6_OPTION_HDR_LEN;
+
+ return 0;
+}
+
+int dhcp6_option_append(uint8_t **buf, size_t *buflen, uint16_t code,
+ size_t optlen, const void *optval) {
+ int r;
+
+ assert_return(optval || optlen == 0, -EINVAL);
+
+ r = option_append_hdr(buf, buflen, code, optlen);
+ if (r < 0)
+ return r;
+
+ if (optval)
+ memcpy(*buf, optval, optlen);
+
+ *buf += optlen;
+ *buflen -= optlen;
+
+ return 0;
+}
+
+int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) {
+ uint16_t len;
+ uint8_t *ia_hdr;
+ size_t ia_buflen, ia_addrlen = 0;
+ DHCP6Address *addr;
+ int r;
+
+ assert_return(buf && *buf && buflen && ia, -EINVAL);
+
+ switch (ia->type) {
+ case DHCP6_OPTION_IA_NA:
+ len = DHCP6_OPTION_IA_NA_LEN;
+ break;
+
+ case DHCP6_OPTION_IA_TA:
+ len = DHCP6_OPTION_IA_TA_LEN;
+ break;
+
+ default:
+ return -EINVAL;
+ }
+
+ if (*buflen < len)
+ return -ENOBUFS;
+
+ ia_hdr = *buf;
+ ia_buflen = *buflen;
+
+ *buf += DHCP6_OPTION_HDR_LEN;
+ *buflen -= DHCP6_OPTION_HDR_LEN;
+
+ memcpy(*buf, &ia->id, len);
+
+ *buf += len;
+ *buflen -= len;
+
+ LIST_FOREACH(addresses, addr, ia->addresses) {
+ r = option_append_hdr(buf, buflen, DHCP6_OPTION_IAADDR,
+ DHCP6_OPTION_IAADDR_LEN);
+ if (r < 0)
+ return r;
+
+ memcpy(*buf, &addr->address, DHCP6_OPTION_IAADDR_LEN);
+
+ *buf += DHCP6_OPTION_IAADDR_LEN;
+ *buflen -= DHCP6_OPTION_IAADDR_LEN;
+
+ ia_addrlen += DHCP6_OPTION_HDR_LEN + DHCP6_OPTION_IAADDR_LEN;
+ }
+
+ r = option_append_hdr(&ia_hdr, &ia_buflen, ia->type, len + ia_addrlen);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+
+static int option_parse_hdr(uint8_t **buf, size_t *buflen, uint16_t *opt,
+ size_t *optlen) {
+ uint16_t len;
+
+ assert_return(buf, -EINVAL);
+ assert_return(opt, -EINVAL);
+ assert_return(optlen, -EINVAL);
+
+ if (*buflen < 4)
+ return -ENOMSG;
+
+ len = (*buf)[2] << 8 | (*buf)[3];
+
+ if (len > *buflen)
+ return -ENOMSG;
+
+ *opt = (*buf)[0] << 8 | (*buf)[1];
+ *optlen = len;
+
+ *buf += 4;
+ *buflen -= 4;
+
+ return 0;
+}
+
+int dhcp6_option_parse(uint8_t **buf, size_t *buflen, uint16_t *optcode,
+ size_t *optlen, uint8_t **optvalue) {
+ int r;
+
+ assert_return(buf && buflen && optcode && optlen && optvalue, -EINVAL);
+
+ r = option_parse_hdr(buf, buflen, optcode, optlen);
+ if (r < 0)
+ return r;
+
+ if (*optlen > *buflen)
+ return -ENOBUFS;
+
+ *optvalue = *buf;
+ *buflen -= *optlen;
+ *buf += *optlen;
+
+ return 0;
+}
+
+int dhcp6_option_parse_ia(uint8_t **buf, size_t *buflen, uint16_t iatype,
+ DHCP6IA *ia) {
+ int r;
+ uint16_t opt, status;
+ size_t optlen;
+ size_t iaaddr_offset;
+ DHCP6Address *addr;
+ uint32_t lt_t1, lt_t2, lt_valid, lt_pref, lt_min = ~0;
+
+ assert_return(ia, -EINVAL);
+ assert_return(!ia->addresses, -EINVAL);
+
+ switch (iatype) {
+ case DHCP6_OPTION_IA_NA:
+
+ if (*buflen < DHCP6_OPTION_IA_NA_LEN + DHCP6_OPTION_HDR_LEN +
+ DHCP6_OPTION_IAADDR_LEN) {
+ r = -ENOBUFS;
+ goto error;
+ }
+
+ iaaddr_offset = DHCP6_OPTION_IA_NA_LEN;
+ memcpy(&ia->id, *buf, iaaddr_offset);
+
+ lt_t1 = be32toh(ia->lifetime_t1);
+ lt_t2 = be32toh(ia->lifetime_t2);
+
+ if (lt_t1 && lt_t2 && lt_t1 > lt_t2) {
+ log_dhcp6_client(client, "IA T1 %ds > T2 %ds",
+ lt_t1, lt_t2);
+ r = -EINVAL;
+ goto error;
+ }
+
+ break;
+
+ case DHCP6_OPTION_IA_TA:
+ if (*buflen < DHCP6_OPTION_IA_TA_LEN + DHCP6_OPTION_HDR_LEN +
+ DHCP6_OPTION_IAADDR_LEN) {
+ r = -ENOBUFS;
+ goto error;
+ }
+
+ iaaddr_offset = DHCP6_OPTION_IA_TA_LEN;
+ memcpy(&ia->id, *buf, iaaddr_offset);
+
+ ia->lifetime_t1 = 0;
+ ia->lifetime_t2 = 0;
+
+ break;
+
+ default:
+ r = -ENOMSG;
+ goto error;
+ }
+
+ ia->type = iatype;
+
+ *buflen -= iaaddr_offset;
+ *buf += iaaddr_offset;
+
+ while ((r = option_parse_hdr(buf, buflen, &opt, &optlen)) >= 0) {
+
+ switch (opt) {
+ case DHCP6_OPTION_IAADDR:
+
+ addr = new0(DHCP6Address, 1);
+ if (!addr) {
+ r = -ENOMEM;
+ goto error;
+ }
+
+ LIST_INIT(addresses, addr);
+
+ memcpy(&addr->address, *buf, DHCP6_OPTION_IAADDR_LEN);
+
+ lt_valid = be32toh(addr->lifetime_valid);
+ lt_pref = be32toh(addr->lifetime_valid);
+
+ if (!lt_valid || lt_pref > lt_valid) {
+ log_dhcp6_client(client, "IA preferred %ds > valid %ds",
+ lt_pref, lt_valid);
+ free(addr);
+ } else {
+ LIST_PREPEND(addresses, ia->addresses, addr);
+ if (lt_valid < lt_min)
+ lt_min = lt_valid;
+ }
+
+ break;
+
+ case DHCP6_OPTION_STATUS_CODE:
+ if (optlen < sizeof(status))
+ break;
+
+ status = (*buf)[0] << 8 | (*buf)[1];
+ if (status) {
+ log_dhcp6_client(client, "IA status %d",
+ status);
+ r = -EINVAL;
+ goto error;
+ }
+
+ break;
+
+ default:
+ log_dhcp6_client(client, "Unknown IA option %d", opt);
+ break;
+ }
+
+ *buflen -= optlen;
+ *buf += optlen;
+ }
+
+ if (r == -ENOMSG)
+ r = 0;
+
+ if (!ia->lifetime_t1 && !ia->lifetime_t2) {
+ lt_t1 = lt_min / 2;
+ lt_t2 = lt_min / 10 * 8;
+ ia->lifetime_t1 = htobe32(lt_t1);
+ ia->lifetime_t2 = htobe32(lt_t2);
+
+ log_dhcp6_client(client, "Computed IA T1 %ds and T2 %ds as both were zero",
+ lt_t1, lt_t2);
+ }
+
+ if (*buflen)
+ r = -ENOMSG;
+
+error:
+ *buf += *buflen;
+ *buflen = 0;
+
+ return r;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/ip6.h>
+#include <netinet/udp.h>
+
+#include "macro.h"
+#include "sparse-endian.h"
+
+struct DHCP6Message {
+ union {
+ struct {
+ uint8_t type;
+ uint8_t _pad[3];
+ } _packed_;
+ be32_t transaction_id;
+ };
+} _packed_;
+
+typedef struct DHCP6Message DHCP6Message;
+
+#define DHCP6_MIN_OPTIONS_SIZE \
+ 1280 - sizeof(struct ip6_hdr) - sizeof(struct udphdr)
+
+#define IN6ADDR_ALL_DHCP6_RELAY_AGENTS_AND_SERVERS_INIT \
+ { { { 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02 } } }
+
+enum {
+ DHCP6_PORT_SERVER = 547,
+ DHCP6_PORT_CLIENT = 546,
+};
+
+#define DHCP6_SOL_MAX_DELAY 1 * USEC_PER_SEC
+#define DHCP6_SOL_TIMEOUT 1 * USEC_PER_SEC
+#define DHCP6_SOL_MAX_RT 120 * USEC_PER_SEC
+#define DHCP6_REQ_TIMEOUT 1 * USEC_PER_SEC
+#define DHCP6_REQ_MAX_RT 120 * USEC_PER_SEC
+#define DHCP6_REQ_MAX_RC 10
+#define DHCP6_REN_TIMEOUT 10 * USEC_PER_SEC
+#define DHCP6_REN_MAX_RT 600 * USEC_PER_SEC
+#define DHCP6_REB_TIMEOUT 10 * USEC_PER_SEC
+#define DHCP6_REB_MAX_RT 600 * USEC_PER_SEC
+
+enum {
+ DHCP6_DUID_LLT = 1,
+ DHCP6_DUID_EN = 2,
+ DHCP6_DUID_LL = 3,
+ DHCP6_DUID_UUID = 4,
+};
+
+enum DHCP6State {
+ DHCP6_STATE_STOPPED = 0,
+ DHCP6_STATE_RS = 1,
+ DHCP6_STATE_SOLICITATION = 2,
+ DHCP6_STATE_REQUEST = 3,
+ DHCP6_STATE_BOUND = 4,
+ DHCP6_STATE_RENEW = 5,
+ DHCP6_STATE_REBIND = 6,
+};
+
+enum {
+ DHCP6_SOLICIT = 1,
+ DHCP6_ADVERTISE = 2,
+ DHCP6_REQUEST = 3,
+ DHCP6_CONFIRM = 4,
+ DHCP6_RENEW = 5,
+ DHCP6_REBIND = 6,
+ DHCP6_REPLY = 7,
+ DHCP6_RELEASE = 8,
+ DHCP6_DECLINE = 9,
+ DHCP6_RECONFIGURE = 10,
+ DHCP6_INFORMATION_REQUEST = 11,
+ DHCP6_RELAY_FORW = 12,
+ DHCP6_RELAY_REPL = 13,
+ _DHCP6_MESSAGE_MAX = 14,
+};
+
+enum {
+ DHCP6_OPTION_CLIENTID = 1,
+ DHCP6_OPTION_SERVERID = 2,
+ DHCP6_OPTION_IA_NA = 3,
+ DHCP6_OPTION_IA_TA = 4,
+ DHCP6_OPTION_IAADDR = 5,
+ DHCP6_OPTION_ORO = 6,
+ DHCP6_OPTION_PREFERENCE = 7,
+ DHCP6_OPTION_ELAPSED_TIME = 8,
+ DHCP6_OPTION_RELAY_MSG = 9,
+ /* option code 10 is unassigned */
+ DHCP6_OPTION_AUTH = 11,
+ DHCP6_OPTION_UNICAST = 12,
+ DHCP6_OPTION_STATUS_CODE = 13,
+ DHCP6_OPTION_RAPID_COMMIT = 14,
+ DHCP6_OPTION_USER_CLASS = 15,
+ DHCP6_OPTION_VENDOR_CLASS = 16,
+ DHCP6_OPTION_VENDOR_OPTS = 17,
+ DHCP6_OPTION_INTERFACE_ID = 18,
+ DHCP6_OPTION_RECONF_MSG = 19,
+ DHCP6_OPTION_RECONF_ACCEPT = 20,
+
+ DHCP6_OPTION_DNS_SERVERS = 23, /* RFC 3646 */
+ DHCP6_OPTION_DOMAIN_LIST = 24, /* RFC 3646 */
+
+ DHCP6_OPTION_SNTP_SERVERS = 31, /* RFC 4075 */
+
+ /* option code 35 is unassigned */
+
+ DHCP6_OPTION_NTP_SERVER = 56, /* RFC 5908 */
+
+ /* option codes 89-142 are unassigned */
+ /* option codes 144-65535 are unassigned */
+};
+
+enum {
+ DHCP6_STATUS_SUCCESS = 0,
+ DHCP6_STATUS_UNSPEC_FAIL = 1,
+ DHCP6_STATUS_NO_ADDRS_AVAIL = 2,
+ DHCP6_STATUS_NO_BINDING = 3,
+ DHCP6_STATUS_NOT_ON_LINK = 4,
+ DHCP6_STATUS_USE_MULTICAST = 5,
+ _DHCP6_STATUS_MAX = 6,
+};
#include "siphash24.h"
#include "libudev-private.h"
#include "network-internal.h"
+#include "dhcp-lease-internal.h"
#include "log.h"
#include "utf8.h"
#include "util.h"
#include "conf-parser.h"
#include "condition.h"
-#define HASH_KEY SD_ID128_MAKE(d3,1e,48,fa,90,fe,4b,4c,9d,af,d5,d7,a1,b1,2e,8a)
-
-int net_get_unique_predictable_data(struct udev_device *device, uint8_t result[8]) {
- size_t l, sz = 0;
+const char *net_get_name(struct udev_device *device) {
const char *name = NULL, *field = NULL;
- int r;
- uint8_t *v;
+
+ assert(device);
/* fetch some persistent data unique (on this machine) to this device */
- FOREACH_STRING(field, "ID_NET_NAME_ONBOARD", "ID_NET_NAME_SLOT", "ID_NET_NAME_PATH", "ID_NET_NAME_MAC") {
+ FOREACH_STRING(field, "ID_NET_NAME_ONBOARD", "ID_NET_NAME_SLOT",
+ "ID_NET_NAME_PATH", "ID_NET_NAME_MAC") {
name = udev_device_get_property_value(device, field);
if (name)
break;
}
+ return name;
+}
+
+#define HASH_KEY SD_ID128_MAKE(d3,1e,48,fa,90,fe,4b,4c,9d,af,d5,d7,a1,b1,2e,8a)
+
+int net_get_unique_predictable_data(struct udev_device *device, uint8_t result[8]) {
+ size_t l, sz = 0;
+ const char *name = NULL;
+ int r;
+ uint8_t *v;
+
+ assert(device);
+
+ name = net_get_name(device);
if (!name)
return -ENOENT;
void *userdata) {
char **s = data;
- char *n;
+ _cleanup_free_ char *n = NULL;
assert(filename);
assert(lvalue);
}
free(*s);
- if (*n)
+ if (*n) {
*s = n;
- else {
- free(n);
+ n = NULL;
+ } else
*s = NULL;
- }
return 0;
}
return 0;
}
+
+void serialize_dhcp_routes(FILE *f, const char *key, struct sd_dhcp_route *routes, size_t size) {
+ unsigned i;
+
+ assert(f);
+ assert(key);
+ assert(routes);
+ assert(size);
+
+ fprintf(f, "%s=", key);
+
+ for (i = 0; i < size; i++)
+ fprintf(f, "%s/%" PRIu8 ",%s%s", inet_ntoa(routes[i].dst_addr),
+ routes[i].dst_prefixlen, inet_ntoa(routes[i].gw_addr),
+ (i < (size - 1)) ? " ": "");
+
+ fputs("\n", f);
+}
+
+int deserialize_dhcp_routes(struct sd_dhcp_route **ret, size_t *ret_size, size_t *ret_allocated, const char *string) {
+ _cleanup_free_ struct sd_dhcp_route *routes = NULL;
+ size_t size = 0, allocated = 0;
+ char *word, *state;
+ size_t len;
+
+ assert(ret);
+ assert(ret_size);
+ assert(ret_allocated);
+ assert(string);
+
+ FOREACH_WORD(word, len, string, state) {
+ /* WORD FORMAT: dst_ip/dst_prefixlen,gw_ip */
+ _cleanup_free_ char* entry = NULL;
+ char *tok, *tok_end;
+ unsigned n;
+ int r;
+
+ if (!GREEDY_REALLOC(routes, allocated, size + 1))
+ return -ENOMEM;
+
+ entry = strndup(word, len);
+ if(!entry)
+ return -ENOMEM;
+
+ tok = entry;
+
+ /* get the subnet */
+ tok_end = strchr(tok, '/');
+ if (!tok_end)
+ continue;
+ *tok_end = '\0';
+
+ r = inet_aton(tok, &routes[size].dst_addr);
+ if (r == 0)
+ continue;
+
+ tok = tok_end + 1;
+
+ /* get the prefixlen */
+ tok_end = strchr(tok, ',');
+ if (!tok_end)
+ continue;
+
+ *tok_end = '\0';
+
+ r = safe_atou(tok, &n);
+ if (r < 0 || n > 32)
+ continue;
+
+ routes[size].dst_prefixlen = (uint8_t) n;
+ tok = tok_end + 1;
+
+ /* get the gateway */
+ r = inet_aton(tok, &routes[size].gw_addr);
+ if (r == 0)
+ continue;
+
+ size++;
+ }
+
+ *ret_size = size;
+ *ret_allocated = allocated;
+ *ret = routes;
+ routes = NULL;
+
+ return 0;
+}
int net_parse_inaddr(const char *address, unsigned char *family, void *dst);
int net_get_unique_predictable_data(struct udev_device *device, uint8_t result[8]);
+const char *net_get_name(struct udev_device *device);
void serialize_in_addrs(FILE *f, const char *key, struct in_addr *addresses, size_t size);
int deserialize_in_addrs(struct in_addr **addresses, size_t *size, const char *string);
int deserialize_in6_addrs(struct in6_addr **addresses, size_t *size, const char *string);
+
+
+/* don't include "dhcp-lease-internal.h" as it causes conflicts between netinet/ip.h and linux/ip.h */
+struct sd_dhcp_route;
+
+void serialize_dhcp_routes(FILE *f, const char *key, struct sd_dhcp_route *routes, size_t size);
+int deserialize_dhcp_routes(struct sd_dhcp_route **ret, size_t *ret_size, size_t *ret_allocated, const char *string);
uint8_t type;
struct ether_addr mac_addr;
} _packed_ client_id;
+ char *hostname;
uint32_t xid;
usec_t start_time;
uint16_t secs;
uint32_t revents, void *userdata);
static int client_receive_message_udp(sd_event_source *s, int fd,
uint32_t revents, void *userdata);
-static sd_dhcp_client *client_stop(sd_dhcp_client *client, int error);
+static void client_stop(sd_dhcp_client *client, int error);
int sd_dhcp_client_set_callback(sd_dhcp_client *client, sd_dhcp_client_cb_t cb,
void *userdata) {
int sd_dhcp_client_set_mac(sd_dhcp_client *client,
const struct ether_addr *addr) {
+ DHCP_CLIENT_DONT_DESTROY(client);
bool need_restart = false;
assert_return(client, -EINVAL);
log_dhcp_client(client, "Changing MAC address on running DHCP "
"client, restarting");
need_restart = true;
- client = client_stop(client, DHCP_EVENT_STOP);
+ client_stop(client, DHCP_EVENT_STOP);
}
- if (!client)
- return 0;
-
memcpy(&client->client_id.mac_addr, addr, ETH_ALEN);
client->client_id.type = 0x01;
return 0;
}
+int sd_dhcp_client_set_hostname(sd_dhcp_client *client,
+ const char *hostname) {
+ char *new_hostname = NULL;
+
+ assert_return(client, -EINVAL);
+
+ if (streq_ptr(client->hostname, hostname))
+ return 0;
+
+ if (hostname) {
+ new_hostname = strdup(hostname);
+ if (!new_hostname)
+ return -ENOMEM;
+ }
+
+ free(client->hostname);
+ client->hostname = new_hostname;
+
+ return 0;
+}
+
int sd_dhcp_client_get_lease(sd_dhcp_client *client, sd_dhcp_lease **ret) {
assert_return(client, -EINVAL);
assert_return(ret, -EINVAL);
return 0;
}
-static sd_dhcp_client *client_notify(sd_dhcp_client *client, int event) {
- if (client->cb) {
- client = sd_dhcp_client_ref(client);
+static void client_notify(sd_dhcp_client *client, int event) {
+ if (client->cb)
client->cb(client, event, client->userdata);
- client = sd_dhcp_client_unref(client);
- }
-
- return client;
}
static int client_initialize(sd_dhcp_client *client) {
return 0;
}
-static sd_dhcp_client *client_stop(sd_dhcp_client *client, int error) {
- assert_return(client, NULL);
+static void client_stop(sd_dhcp_client *client, int error) {
+ assert(client);
if (error < 0)
log_dhcp_client(client, "STOPPED: %s", strerror(-error));
}
}
- client = client_notify(client, error);
-
- if (client)
- client_initialize(client);
+ client_notify(client, error);
- return client;
+ client_initialize(client);
}
static int client_message_init(sd_dhcp_client *client, DHCPPacket **ret,
return r;
}
+ /* it is unclear from RFC 2131 if client should send hostname in
+ DHCPDISCOVER but dhclient does and so we do as well
+ */
+ if (client->hostname) {
+ r = dhcp_option_append(&discover->dhcp, optlen, &optoffset, 0,
+ DHCP_OPTION_HOST_NAME,
+ strlen(client->hostname), client->hostname);
+ if (r < 0)
+ return r;
+ }
+
r = dhcp_option_append(&discover->dhcp, optlen, &optoffset, 0,
DHCP_OPTION_END, 0, NULL);
+ if (r < 0)
+ return r;
/* We currently ignore:
The client SHOULD wait a random time between one and ten seconds to
}
static int client_send_request(sd_dhcp_client *client) {
- _cleanup_free_ DHCPPacket *request;
+ _cleanup_free_ DHCPPacket *request = NULL;
size_t optoffset, optlen;
int r;
return -EINVAL;
}
+ if (client->hostname) {
+ r = dhcp_option_append(&request->dhcp, optlen, &optoffset, 0,
+ DHCP_OPTION_HOST_NAME,
+ strlen(client->hostname), client->hostname);
+ if (r < 0)
+ return r;
+ }
+
r = dhcp_option_append(&request->dhcp, optlen, &optoffset, 0,
DHCP_OPTION_END, 0, NULL);
if (r < 0)
static int client_timeout_resend(sd_event_source *s, uint64_t usec,
void *userdata) {
sd_dhcp_client *client = userdata;
+ DHCP_CLIENT_DONT_DESTROY(client);
usec_t next_timeout = 0;
uint64_t time_now;
uint32_t time_left;
static int client_timeout_expire(sd_event_source *s, uint64_t usec,
void *userdata) {
sd_dhcp_client *client = userdata;
+ DHCP_CLIENT_DONT_DESTROY(client);
log_dhcp_client(client, "EXPIRED");
- client = client_notify(client, DHCP_EVENT_EXPIRED);
+ client_notify(client, DHCP_EVENT_EXPIRED);
/* lease was lost, start over if not freed or stopped in callback */
- if (client && client->state != DHCP_STATE_STOPPED) {
+ if (client->state != DHCP_STATE_STOPPED) {
client_initialize(client);
client_start(client);
}
static int client_timeout_t2(sd_event_source *s, uint64_t usec, void *userdata) {
sd_dhcp_client *client = userdata;
+ DHCP_CLIENT_DONT_DESTROY(client);
int r;
client->receive_message = sd_event_source_unref(client->receive_message);
static int client_timeout_t1(sd_event_source *s, uint64_t usec,
void *userdata) {
sd_dhcp_client *client = userdata;
+ DHCP_CLIENT_DONT_DESTROY(client);
int r;
client->state = DHCP_STATE_RENEWING;
r = dhcp_network_bind_udp_socket(client->lease->address,
DHCP_PORT_CLIENT);
if (r < 0) {
- client_stop(client, r);
+ log_dhcp_client(client, "could not bind UDP socket");
return 0;
}
client->lease->subnet_mask != lease->subnet_mask ||
client->lease->router != lease->router) {
r = DHCP_EVENT_IP_CHANGE;
- }
+ } else
+ r = DHCP_EVENT_RENEW;
client->lease = sd_dhcp_lease_unref(client->lease);
}
static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message,
int len) {
+ DHCP_CLIENT_DONT_DESTROY(client);
int r = 0, notify_event = 0;
assert(client);
goto error;
if (notify_event) {
- client = client_notify(client, notify_event);
- if (!client ||
- client->state == DHCP_STATE_STOPPED)
+ client_notify(client, notify_event);
+ if (client->state == DHCP_STATE_STOPPED)
return 0;
}
}
int sd_dhcp_client_stop(sd_dhcp_client *client) {
+ DHCP_CLIENT_DONT_DESTROY(client);
+
assert_return(client, -EINVAL);
- if (client_stop(client, DHCP_EVENT_STOP))
- client->state = DHCP_STATE_STOPPED;
+ client_stop(client, DHCP_EVENT_STOP);
+ client->state = DHCP_STATE_STOPPED;
return 0;
}
sd_dhcp_client *sd_dhcp_client_unref(sd_dhcp_client *client) {
if (client && REFCNT_DEC(client->n_ref) <= 0) {
- log_dhcp_client(client, "UNREF");
+ log_dhcp_client(client, "FREE");
client_initialize(client);
sd_dhcp_lease_unref(client->lease);
free(client->req_opts);
+ free(client->hostname);
free(client);
-
- return NULL;
}
- return client;
+ return NULL;
}
-DEFINE_TRIVIAL_CLEANUP_FUNC(sd_dhcp_client*, sd_dhcp_client_unref);
-#define _cleanup_dhcp_client_free_ _cleanup_(sd_dhcp_client_unrefp)
-
int sd_dhcp_client_new(sd_dhcp_client **ret) {
- _cleanup_dhcp_client_free_ sd_dhcp_client *client = NULL;
+ _cleanup_dhcp_client_unref_ sd_dhcp_client *client = NULL;
assert_return(ret, -EINVAL);
return 0;
}
+int sd_dhcp_lease_get_lifetime(sd_dhcp_lease *lease, uint32_t *lifetime) {
+ assert_return(lease, -EINVAL);
+ assert_return(lease, -EINVAL);
+
+ *lifetime = lease->lifetime;
+
+ return 0;
+}
+
int sd_dhcp_lease_get_mtu(sd_dhcp_lease *lease, uint16_t *mtu) {
assert_return(lease, -EINVAL);
assert_return(mtu, -EINVAL);
return 0;
}
+int sd_dhcp_lease_get_routes(sd_dhcp_lease *lease, struct sd_dhcp_route **routes,
+ size_t *routes_size) {
+
+ assert_return(lease, -EINVAL);
+ assert_return(routes, -EINVAL);
+ assert_return(routes_size, -EINVAL);
+
+ if (lease->static_route_size) {
+ *routes = lease->static_route;
+ *routes_size = lease->static_route_size;
+ } else
+ return -ENOENT;
+
+ return 0;
+}
+
sd_dhcp_lease *sd_dhcp_lease_ref(sd_dhcp_lease *lease) {
if (lease)
assert_se(REFCNT_INC(lease->n_ref) >= 2);
free(lease->domainname);
free(lease->dns);
free(lease->ntp);
+ free(lease->static_route);
free(lease);
}
return lease_parse_in_addrs_aux(option, len, ret, ret_size, 2);
}
+static int class_prefixlen(uint8_t msb_octet, uint8_t *ret) {
+ if (msb_octet < 128)
+ /* Class A */
+ *ret = 8;
+ else if (msb_octet < 192)
+ /* Class B */
+ *ret = 16;
+ else if (msb_octet < 224)
+ /* Class C */
+ *ret = 24;
+ else
+ /* Class D or E -- no subnet mask */
+ return -ERANGE;
+
+ return 0;
+}
+
+static int lease_parse_routes(const uint8_t *option, size_t len, struct sd_dhcp_route **routes,
+ size_t *routes_size, size_t *routes_allocated) {
+
+ struct in_addr addr;
+
+ assert(option);
+ assert(routes);
+ assert(routes_size);
+ assert(routes_allocated);
+
+ if (!len)
+ return 0;
+
+ if (len % 8 != 0)
+ return -EINVAL;
+
+ if (!GREEDY_REALLOC(*routes, *routes_allocated, *routes_size + (len / 8)))
+ return -ENOMEM;
+
+ while (len >= 8) {
+ struct sd_dhcp_route *route = *routes + *routes_size;
+
+ if (class_prefixlen(*option, &route->dst_prefixlen) < 0) {
+ log_error("Failed to determine destination prefix length from class based IP, ignoring");
+ continue;
+ }
+
+ lease_parse_be32(option, 4, &addr.s_addr);
+ route->dst_addr = inet_makeaddr(inet_netof(addr), 0);
+ option += 4;
+
+ lease_parse_be32(option, 4, &route->gw_addr.s_addr);
+ option += 4;
+
+ len -= 8;
+ (*routes_size)++;
+ }
+
+ return 0;
+}
+
+/* parses RFC3442 Classless Static Route Option */
+static int lease_parse_classless_routes(const uint8_t *option, size_t len, struct sd_dhcp_route **routes,
+ size_t *routes_size, size_t *routes_allocated) {
+
+ assert(option);
+ assert(routes);
+ assert(routes_size);
+ assert(routes_allocated);
+
+ /* option format: (subnet-mask-width significant-subnet-octets gateway-ip)* */
+
+ while (len > 0) {
+ uint8_t dst_octets;
+ struct sd_dhcp_route *route;
+
+ if (!GREEDY_REALLOC(*routes, *routes_allocated, *routes_size + 1))
+ return -ENOMEM;
+
+ route = *routes + *routes_size;
+
+ dst_octets = (*option == 0 ? 0 : ((*option - 1) / 8) + 1);
+ route->dst_prefixlen = *option;
+ option++;
+ len--;
+
+ /* can't have more than 4 octets in IPv4 */
+ if (dst_octets > 4 || len < dst_octets)
+ return -EINVAL;
+
+ route->dst_addr.s_addr = 0;
+ memcpy(&route->dst_addr.s_addr, option, dst_octets);
+ option += dst_octets;
+ len -= dst_octets;
+
+ if (len < 4)
+ return -EINVAL;
+
+ lease_parse_be32(option, 4, &route->gw_addr.s_addr);
+ option += 4;
+ len -= 4;
+
+ (*routes_size)++;
+ }
+
+ return 0;
+}
+
int dhcp_lease_parse_options(uint8_t code, uint8_t len, const uint8_t *option,
void *user_data) {
sd_dhcp_lease *lease = user_data;
break;
case DHCP_OPTION_STATIC_ROUTE:
- r = lease_parse_in_addrs_pairs(option, len, &lease->static_route, &lease->static_route_size);
+ r = lease_parse_routes(option, len, &lease->static_route, &lease->static_route_size,
+ &lease->static_route_allocated);
if (r < 0)
return r;
lease_parse_bool(option, len, &lease->ip_forward_non_local);
break;
+
+ case DHCP_OPTION_CLASSLESS_STATIC_ROUTE:
+ r = lease_parse_classless_routes(option, len, &lease->static_route, &lease->static_route_size,
+ &lease->static_route_allocated);
+ if (r < 0)
+ return r;
+
+ break;
}
return 0;
size_t addresses_size;
const char *string;
uint16_t mtu;
+ struct sd_dhcp_route *routes;
+ size_t routes_size;
int r;
assert(lease);
if (r >= 0)
fprintf(f, "ROOT_PATH=%s\n", string);
+ r = sd_dhcp_lease_get_routes(lease, &routes, &routes_size);
+ if (r >= 0)
+ serialize_dhcp_routes(f, "ROUTES", routes, routes_size);
+
r = 0;
fflush(f);
_cleanup_dhcp_lease_unref_ sd_dhcp_lease *lease = NULL;
_cleanup_free_ char *address = NULL, *router = NULL, *netmask = NULL,
*server_address = NULL, *next_server = NULL,
- *dns = NULL, *ntp = NULL, *mtu = NULL;
+ *dns = NULL, *ntp = NULL, *mtu = NULL, *routes = NULL;
struct in_addr addr;
int r;
"DOMAINNAME", &lease->domainname,
"HOSTNAME", &lease->hostname,
"ROOT_PATH", &lease->root_path,
+ "ROUTES", &routes,
NULL);
if (r < 0) {
if (r == -ENOENT)
lease->mtu = u;
}
+ if (routes) {
+ r = deserialize_dhcp_routes(&lease->static_route, &lease->static_route_size,
+ &lease->static_route_allocated, routes);
+ if (r < 0)
+ return r;
+ }
+
*ret = lease;
lease = NULL;
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2013 Intel Corporation. All rights reserved.
+ Copyright (C) 2014 Tom Gundersen
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <sys/ioctl.h>
+#include <netinet/if_ether.h>
+
+#include "siphash24.h"
+
+#include "sd-dhcp-server.h"
+#include "dhcp-server-internal.h"
+#include "dhcp-internal.h"
+
+#define DHCP_DEFAULT_LEASE_TIME 3600 /* one hour */
+
+int sd_dhcp_server_set_lease_pool(sd_dhcp_server *server, struct in_addr *address,
+ size_t size) {
+ assert_return(server, -EINVAL);
+ assert_return(address, -EINVAL);
+ assert_return(address->s_addr, -EINVAL);
+ assert_return(size, -EINVAL);
+ assert_return(server->pool_start == htobe32(INADDR_ANY), -EBUSY);
+ assert_return(!server->pool_size, -EBUSY);
+ assert_return(!server->bound_leases, -EBUSY);
+
+ server->bound_leases = new0(DHCPLease*, size);
+ if (!server->bound_leases)
+ return -ENOMEM;
+
+ server->pool_start = address->s_addr;
+ server->pool_size = size;
+
+ return 0;
+}
+
+int sd_dhcp_server_set_address(sd_dhcp_server *server, struct in_addr *address) {
+ assert_return(server, -EINVAL);
+ assert_return(address, -EINVAL);
+ assert_return(address->s_addr, -EINVAL);
+ assert_return(server->address == htobe32(INADDR_ANY), -EBUSY);
+
+ server->address = address->s_addr;
+
+ return 0;
+}
+
+bool sd_dhcp_server_is_running(sd_dhcp_server *server) {
+ assert_return(server, -EINVAL);
+
+ return !!server->receive_message;
+}
+
+sd_dhcp_server *sd_dhcp_server_ref(sd_dhcp_server *server) {
+ if (server)
+ assert_se(REFCNT_INC(server->n_ref) >= 2);
+
+ return server;
+}
+
+unsigned long client_id_hash_func(const void *p, const uint8_t hash_key[HASH_KEY_SIZE]) {
+ uint64_t u;
+ const DHCPClientId *id = p;
+
+ assert(id);
+ assert(id->length);
+ assert(id->data);
+
+ siphash24((uint8_t*) &u, id->data, id->length, hash_key);
+
+ return (unsigned long) u;
+}
+
+int client_id_compare_func(const void *_a, const void *_b) {
+ const DHCPClientId *a, *b;
+
+ a = _a;
+ b = _b;
+
+ assert(!a->length || a->data);
+ assert(!b->length || b->data);
+
+ if (a->length != b->length)
+ return a->length < b->length ? -1 : 1;
+
+ return memcmp(a->data, b->data, a->length);
+}
+
+static void dhcp_lease_free(DHCPLease *lease) {
+ if (!lease)
+ return;
+
+ free(lease->client_id.data);
+ free(lease);
+}
+
+sd_dhcp_server *sd_dhcp_server_unref(sd_dhcp_server *server) {
+ DHCPLease *lease;
+
+ if (!server)
+ return NULL;
+
+ if (REFCNT_DEC(server->n_ref) > 0)
+ return NULL;
+
+ log_dhcp_server(server, "UNREF");
+
+ sd_dhcp_server_stop(server);
+
+ sd_event_unref(server->event);
+
+ while ((lease = hashmap_steal_first(server->leases_by_client_id)))
+ dhcp_lease_free(lease);
+ hashmap_free(server->leases_by_client_id);
+
+ free(server->bound_leases);
+ free(server);
+
+ return NULL;
+}
+
+int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex) {
+ _cleanup_dhcp_server_unref_ sd_dhcp_server *server = NULL;
+
+ assert_return(ret, -EINVAL);
+ assert_return(ifindex > 0, -EINVAL);
+
+ server = new0(sd_dhcp_server, 1);
+ if (!server)
+ return -ENOMEM;
+
+ server->n_ref = REFCNT_INIT;
+ server->fd_raw = -1;
+ server->fd = -1;
+ server->address = htobe32(INADDR_ANY);
+ server->index = ifindex;
+ server->leases_by_client_id = hashmap_new(client_id_hash_func, client_id_compare_func);
+
+ *ret = server;
+ server = NULL;
+
+ return 0;
+}
+
+int sd_dhcp_server_attach_event(sd_dhcp_server *server, sd_event *event, int priority) {
+ int r;
+
+ assert_return(server, -EINVAL);
+ assert_return(!server->event, -EBUSY);
+
+ if (event)
+ server->event = sd_event_ref(event);
+ else {
+ r = sd_event_default(&server->event);
+ if (r < 0)
+ return r;
+ }
+
+ server->event_priority = priority;
+
+ return 0;
+}
+
+int sd_dhcp_server_detach_event(sd_dhcp_server *server) {
+ assert_return(server, -EINVAL);
+
+ server->event = sd_event_unref(server->event);
+
+ return 0;
+}
+
+sd_event *sd_dhcp_server_get_event(sd_dhcp_server *server) {
+ assert_return(server, NULL);
+
+ return server->event;
+}
+
+int sd_dhcp_server_stop(sd_dhcp_server *server) {
+ assert_return(server, -EINVAL);
+
+ server->receive_message =
+ sd_event_source_unref(server->receive_message);
+
+ server->fd_raw = safe_close(server->fd_raw);
+ server->fd = safe_close(server->fd);
+
+ log_dhcp_server(server, "STOPPED");
+
+ return 0;
+}
+
+static int dhcp_server_send_unicast_raw(sd_dhcp_server *server, DHCPPacket *packet,
+ size_t len) {
+ union sockaddr_union link = {
+ .ll.sll_family = AF_PACKET,
+ .ll.sll_protocol = htons(ETH_P_IP),
+ .ll.sll_ifindex = server->index,
+ .ll.sll_halen = ETH_ALEN,
+ };
+ int r;
+
+ assert(server);
+ assert(server->index > 0);
+ assert(server->address);
+ assert(packet);
+ assert(len > sizeof(DHCPPacket));
+
+ memcpy(&link.ll.sll_addr, &packet->dhcp.chaddr, ETH_ALEN);
+
+ dhcp_packet_append_ip_headers(packet, server->address, DHCP_PORT_SERVER,
+ packet->dhcp.yiaddr, DHCP_PORT_CLIENT, len);
+
+ r = dhcp_network_send_raw_socket(server->fd_raw, &link, packet, len);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+static int dhcp_server_send_udp(sd_dhcp_server *server, be32_t destination,
+ DHCPMessage *message, size_t len) {
+ union sockaddr_union dest = {
+ .in.sin_family = AF_INET,
+ .in.sin_port = htobe16(DHCP_PORT_CLIENT),
+ .in.sin_addr.s_addr = destination,
+ };
+ struct iovec iov = {
+ .iov_base = message,
+ .iov_len = len,
+ };
+ uint8_t cmsgbuf[CMSG_LEN(sizeof(struct in_pktinfo))] = {};
+ struct msghdr msg = {
+ .msg_name = &dest,
+ .msg_namelen = sizeof(dest.in),
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = cmsgbuf,
+ .msg_controllen = sizeof(cmsgbuf),
+ };
+ struct cmsghdr *cmsg;
+ struct in_pktinfo *pktinfo;
+ int r;
+
+ assert(server);
+ assert(server->fd > 0);
+ assert(message);
+ assert(len > sizeof(DHCPMessage));
+
+ cmsg = CMSG_FIRSTHDR(&msg);
+ assert(cmsg);
+
+ cmsg->cmsg_level = IPPROTO_IP;
+ cmsg->cmsg_type = IP_PKTINFO;
+ cmsg->cmsg_len = CMSG_LEN(sizeof(struct in_pktinfo));
+
+ /* we attach source interface and address info to the message
+ rather than binding the socket. This will be mostly useful
+ when we gain support for arbitrary number of server addresses
+ */
+ pktinfo = (struct in_pktinfo*) CMSG_DATA(cmsg);
+ assert(pktinfo);
+
+ pktinfo->ipi_ifindex = server->index;
+ pktinfo->ipi_spec_dst.s_addr = server->address;
+
+ r = sendmsg(server->fd, &msg, 0);
+ if (r < 0)
+ return -errno;
+
+ return 0;
+}
+
+static bool requested_broadcast(DHCPRequest *req) {
+ assert(req);
+
+ return req->message->flags & htobe16(0x8000);
+}
+
+int dhcp_server_send_packet(sd_dhcp_server *server,
+ DHCPRequest *req, DHCPPacket *packet,
+ int type, size_t optoffset) {
+ be32_t destination = INADDR_ANY;
+ int r;
+
+ assert(server);
+ assert(req);
+ assert(req->max_optlen);
+ assert(optoffset <= req->max_optlen);
+ assert(packet);
+
+ r = dhcp_option_append(&packet->dhcp, req->max_optlen, &optoffset, 0,
+ DHCP_OPTION_SERVER_IDENTIFIER,
+ 4, &server->address);
+ if (r < 0)
+ return r;
+
+ r = dhcp_option_append(&packet->dhcp, req->max_optlen, &optoffset, 0,
+ DHCP_OPTION_END, 0, NULL);
+ if (r < 0)
+ return r;
+
+ /* RFC 2131 Section 4.1
+
+ If the ’giaddr’ field in a DHCP message from a client is non-zero,
+ the server sends any return messages to the ’DHCP server’ port on the
+ BOOTP relay agent whose address appears in ’giaddr’. If the ’giaddr’
+ field is zero and the ’ciaddr’ field is nonzero, then the server
+ unicasts DHCPOFFER and DHCPACK messages to the address in ’ciaddr’.
+ If ’giaddr’ is zero and ’ciaddr’ is zero, and the broadcast bit is
+ set, then the server broadcasts DHCPOFFER and DHCPACK messages to
+ 0xffffffff. If the broadcast bit is not set and ’giaddr’ is zero and
+ ’ciaddr’ is zero, then the server unicasts DHCPOFFER and DHCPACK
+ messages to the client’s hardware address and ’yiaddr’ address. In
+ all cases, when ’giaddr’ is zero, the server broadcasts any DHCPNAK
+ messages to 0xffffffff.
+
+ Section 4.3.2
+
+ If ’giaddr’ is set in the DHCPREQUEST message, the client is on a
+ different subnet. The server MUST set the broadcast bit in the
+ DHCPNAK, so that the relay agent will broadcast the DHCPNAK to the
+ client, because the client may not have a correct network address
+ or subnet mask, and the client may not be answering ARP requests.
+ */
+ if (req->message->giaddr) {
+ destination = req->message->giaddr;
+ if (type == DHCP_NAK)
+ packet->dhcp.flags = htobe16(0x8000);
+ } else if (req->message->ciaddr && type != DHCP_NAK)
+ destination = req->message->ciaddr;
+
+ if (destination != INADDR_ANY)
+ return dhcp_server_send_udp(server, destination, &packet->dhcp,
+ sizeof(DHCPMessage) + optoffset);
+ else if (requested_broadcast(req) || type == DHCP_NAK)
+ return dhcp_server_send_udp(server, INADDR_BROADCAST, &packet->dhcp,
+ sizeof(DHCPMessage) + optoffset);
+ else
+ /* we cannot send UDP packet to specific MAC address when the address is
+ not yet configured, so must fall back to raw packets */
+ return dhcp_server_send_unicast_raw(server, packet,
+ sizeof(DHCPPacket) + optoffset);
+}
+
+static int server_message_init(sd_dhcp_server *server, DHCPPacket **ret,
+ uint8_t type, size_t *_optoffset, DHCPRequest *req) {
+ _cleanup_free_ DHCPPacket *packet = NULL;
+ size_t optoffset;
+ int r;
+
+ assert(server);
+ assert(ret);
+ assert(_optoffset);
+ assert(IN_SET(type, DHCP_OFFER, DHCP_ACK, DHCP_NAK));
+
+ packet = malloc0(sizeof(DHCPPacket) + req->max_optlen);
+ if (!packet)
+ return -ENOMEM;
+
+ r = dhcp_message_init(&packet->dhcp, BOOTREPLY, be32toh(req->message->xid),
+ type, req->max_optlen, &optoffset);
+ if (r < 0)
+ return r;
+
+ packet->dhcp.flags = req->message->flags;
+ packet->dhcp.giaddr = req->message->giaddr;
+ memcpy(&packet->dhcp.chaddr, &req->message->chaddr, ETH_ALEN);
+
+ *_optoffset = optoffset;
+ *ret = packet;
+ packet = NULL;
+
+ return 0;
+}
+
+static int server_send_offer(sd_dhcp_server *server, DHCPRequest *req, be32_t address) {
+ _cleanup_free_ DHCPPacket *packet = NULL;
+ size_t offset;
+ be32_t lease_time;
+ int r;
+
+ r = server_message_init(server, &packet, DHCP_OFFER, &offset, req);
+ if (r < 0)
+ return r;
+
+ packet->dhcp.yiaddr = address;
+
+ lease_time = htobe32(req->lifetime);
+ r = dhcp_option_append(&packet->dhcp, req->max_optlen, &offset, 0,
+ DHCP_OPTION_IP_ADDRESS_LEASE_TIME, 4, &lease_time);
+ if (r < 0)
+ return r;
+
+ r = dhcp_server_send_packet(server, req, packet, DHCP_OFFER, offset);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+static int server_send_ack(sd_dhcp_server *server, DHCPRequest *req, be32_t address) {
+ _cleanup_free_ DHCPPacket *packet = NULL;
+ size_t offset;
+ be32_t lease_time;
+ int r;
+
+ r = server_message_init(server, &packet, DHCP_ACK, &offset, req);
+ if (r < 0)
+ return r;
+
+ packet->dhcp.yiaddr = address;
+
+ lease_time = htobe32(req->lifetime);
+ r = dhcp_option_append(&packet->dhcp, req->max_optlen, &offset, 0,
+ DHCP_OPTION_IP_ADDRESS_LEASE_TIME, 4, &lease_time);
+ if (r < 0)
+ return r;
+
+ r = dhcp_server_send_packet(server, req, packet, DHCP_ACK, offset);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+static int server_send_nak(sd_dhcp_server *server, DHCPRequest *req) {
+ _cleanup_free_ DHCPPacket *packet = NULL;
+ size_t offset;
+ int r;
+
+ r = server_message_init(server, &packet, DHCP_NAK, &offset, req);
+ if (r < 0)
+ return r;
+
+ r = dhcp_server_send_packet(server, req, packet, DHCP_NAK, offset);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+static int parse_request(uint8_t code, uint8_t len, const uint8_t *option,
+ void *user_data) {
+ DHCPRequest *req = user_data;
+
+ assert(req);
+
+ switch(code) {
+ case DHCP_OPTION_IP_ADDRESS_LEASE_TIME:
+ if (len == 4)
+ req->lifetime = be32toh(*(be32_t*)option);
+
+ break;
+ case DHCP_OPTION_REQUESTED_IP_ADDRESS:
+ if (len == 4)
+ req->requested_ip = *(be32_t*)option;
+
+ break;
+ case DHCP_OPTION_SERVER_IDENTIFIER:
+ if (len == 4)
+ req->server_id = *(be32_t*)option;
+
+ break;
+ case DHCP_OPTION_CLIENT_IDENTIFIER:
+ if (len >= 2) {
+ uint8_t *data;
+
+ data = memdup(option, len);
+ if (!data)
+ return -ENOMEM;
+
+ free(req->client_id.data);
+ req->client_id.data = data;
+ req->client_id.length = len;
+ }
+
+ break;
+ case DHCP_OPTION_MAXIMUM_MESSAGE_SIZE:
+ if (len == 2)
+ req->max_optlen = be16toh(*(be16_t*)option) -
+ - sizeof(DHCPPacket);
+
+ break;
+ }
+
+ return 0;
+}
+
+static void dhcp_request_free(DHCPRequest *req) {
+ if (!req)
+ return;
+
+ free(req->client_id.data);
+ free(req);
+}
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(DHCPRequest*, dhcp_request_free);
+#define _cleanup_dhcp_request_free_ _cleanup_(dhcp_request_freep)
+
+static int ensure_sane_request(DHCPRequest *req, DHCPMessage *message) {
+ assert(req);
+ assert(message);
+
+ req->message = message;
+
+ /* set client id based on mac address if client did not send an explicit one */
+ if (!req->client_id.data) {
+ uint8_t *data;
+
+ data = new0(uint8_t, ETH_ALEN + 1);
+ if (!data)
+ return -ENOMEM;
+
+ req->client_id.length = ETH_ALEN + 1;
+ req->client_id.data = data;
+ req->client_id.data[0] = 0x01;
+ memcpy(&req->client_id.data[1], &message->chaddr, ETH_ALEN);
+ }
+
+ if (req->max_optlen < DHCP_MIN_OPTIONS_SIZE)
+ req->max_optlen = DHCP_MIN_OPTIONS_SIZE;
+
+ if (!req->lifetime)
+ req->lifetime = DHCP_DEFAULT_LEASE_TIME;
+
+ return 0;
+}
+
+static int get_pool_offset(sd_dhcp_server *server, be32_t requested_ip) {
+ assert(server);
+
+ if (!server->pool_size)
+ return -EINVAL;
+
+ if (be32toh(requested_ip) < be32toh(server->pool_start) ||
+ be32toh(requested_ip) >= be32toh(server->pool_start) +
+ + server->pool_size)
+ return -EINVAL;
+
+ return be32toh(requested_ip) - be32toh(server->pool_start);
+}
+
+int dhcp_server_handle_message(sd_dhcp_server *server, DHCPMessage *message,
+ size_t length) {
+ _cleanup_dhcp_request_free_ DHCPRequest *req = NULL;
+ DHCPLease *existing_lease;
+ int type, r;
+
+ assert(server);
+ assert(message);
+
+ if (message->op != BOOTREQUEST ||
+ message->htype != ARPHRD_ETHER ||
+ message->hlen != ETHER_ADDR_LEN)
+ return 0;
+
+ req = new0(DHCPRequest, 1);
+ if (!req)
+ return -ENOMEM;
+
+ type = dhcp_option_parse(message, length, parse_request, req);
+ if (type < 0)
+ return 0;
+
+ r = ensure_sane_request(req, message);
+ if (r < 0)
+ /* this only fails on critical errors */
+ return r;
+
+ existing_lease = hashmap_get(server->leases_by_client_id, &req->client_id);
+
+ switch(type) {
+ case DHCP_DISCOVER:
+ {
+ be32_t address = INADDR_ANY;
+ unsigned i;
+
+ log_dhcp_server(server, "DISCOVER (0x%x)",
+ be32toh(req->message->xid));
+
+ if (!server->pool_size)
+ /* no pool allocated */
+ return 0;
+
+ /* for now pick a random free address from the pool */
+ if (existing_lease)
+ address = existing_lease->address;
+ else {
+ for (i = 0; i < server->pool_size; i++) {
+ if (!server->bound_leases[server->next_offer]) {
+ address = htobe32(be32toh(server->pool_start) + server->next_offer);
+ break;
+ } else
+ server->next_offer = (server->next_offer + 1) % server->pool_size;
+ }
+ }
+
+ if (address == INADDR_ANY)
+ /* no free addresses left */
+ return 0;
+
+ r = server_send_offer(server, req, address);
+ if (r < 0) {
+ /* this only fails on critical errors */
+ log_dhcp_server(server, "could not send offer: %s",
+ strerror(-r));
+ return r;
+ } else {
+ log_dhcp_server(server, "OFFER (0x%x)",
+ be32toh(req->message->xid));
+ return DHCP_OFFER;
+ }
+
+ break;
+ }
+ case DHCP_DECLINE:
+ log_dhcp_server(server, "DECLINE (0x%x)",
+ be32toh(req->message->xid));
+
+ /* TODO: make sure we don't offer this address again */
+
+ return 1;
+
+ break;
+ case DHCP_REQUEST:
+ {
+ be32_t address;
+ bool init_reboot = false;
+ int pool_offset;
+
+ /* see RFC 2131, section 4.3.2 */
+
+ if (req->server_id) {
+ log_dhcp_server(server, "REQUEST (selecting) (0x%x)",
+ be32toh(req->message->xid));
+
+ /* SELECTING */
+ if (req->server_id != server->address)
+ /* client did not pick us */
+ return 0;
+
+ if (req->message->ciaddr)
+ /* this MUST be zero */
+ return 0;
+
+ if (!req->requested_ip)
+ /* this must be filled in with the yiaddr
+ from the chosen OFFER */
+ return 0;
+
+ address = req->requested_ip;
+ } else if (req->requested_ip) {
+ log_dhcp_server(server, "REQUEST (init-reboot) (0x%x)",
+ be32toh(req->message->xid));
+
+ /* INIT-REBOOT */
+ if (req->message->ciaddr)
+ /* this MUST be zero */
+ return 0;
+
+ /* TODO: check more carefully if IP is correct */
+ address = req->requested_ip;
+ init_reboot = true;
+ } else {
+ log_dhcp_server(server, "REQUEST (rebinding/renewing) (0x%x)",
+ be32toh(req->message->xid));
+
+ /* REBINDING / RENEWING */
+ if (!req->message->ciaddr)
+ /* this MUST be filled in with clients IP address */
+ return 0;
+
+ address = req->message->ciaddr;
+ }
+
+ pool_offset = get_pool_offset(server, address);
+
+ /* verify that the requested address is from the pool, and either
+ owned by the current client or free */
+ if (pool_offset >= 0 &&
+ server->bound_leases[pool_offset] == existing_lease) {
+ DHCPLease *lease;
+ usec_t time_now;
+
+ if (!existing_lease) {
+ lease = new0(DHCPLease, 1);
+ lease->address = req->requested_ip;
+ lease->client_id.data = memdup(req->client_id.data,
+ req->client_id.length);
+ if (!lease->client_id.data) {
+ free(lease);
+ return -ENOMEM;
+ }
+ lease->client_id.length = req->client_id.length;
+ } else
+ lease = existing_lease;
+
+ r = sd_event_now(server->event, CLOCK_MONOTONIC, &time_now);
+ if (r < 0)
+ time_now = now(CLOCK_MONOTONIC);
+ lease->expiration = req->lifetime * USEC_PER_SEC + time_now;
+
+ r = server_send_ack(server, req, address);
+ if (r < 0) {
+ /* this only fails on critical errors */
+ log_dhcp_server(server, "could not send ack: %s",
+ strerror(-r));
+
+ if (!existing_lease)
+ dhcp_lease_free(lease);
+
+ return r;
+ } else {
+ log_dhcp_server(server, "ACK (0x%x)",
+ be32toh(req->message->xid));
+
+ server->bound_leases[pool_offset] = lease;
+ hashmap_put(server->leases_by_client_id, &lease->client_id, lease);
+
+ return DHCP_ACK;
+ }
+ } else if (init_reboot) {
+ r = server_send_nak(server, req);
+ if (r < 0) {
+ /* this only fails on critical errors */
+ log_dhcp_server(server, "could not send nak: %s",
+ strerror(-r));
+ return r;
+ } else {
+ log_dhcp_server(server, "NAK (0x%x)",
+ be32toh(req->message->xid));
+ return DHCP_NAK;
+ }
+ }
+
+ break;
+ }
+ case DHCP_RELEASE: {
+ int pool_offset;
+
+ log_dhcp_server(server, "RELEASE (0x%x)",
+ be32toh(req->message->xid));
+
+ if (!existing_lease)
+ return 0;
+
+ if (existing_lease->address != req->message->ciaddr)
+ return 0;
+
+ pool_offset = get_pool_offset(server, req->message->ciaddr);
+ if (pool_offset < 0)
+ return 0;
+
+ if (server->bound_leases[pool_offset] == existing_lease) {
+ server->bound_leases[pool_offset] = NULL;
+ hashmap_remove(server->leases_by_client_id, existing_lease);
+ dhcp_lease_free(existing_lease);
+
+ return 1;
+ } else
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+static int server_receive_message(sd_event_source *s, int fd,
+ uint32_t revents, void *userdata) {
+ _cleanup_free_ DHCPMessage *message = NULL;
+ uint8_t cmsgbuf[CMSG_LEN(sizeof(struct in_pktinfo))];
+ sd_dhcp_server *server = userdata;
+ struct iovec iov = {};
+ struct msghdr msg = {
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = cmsgbuf,
+ .msg_controllen = sizeof(cmsgbuf),
+ };
+ struct cmsghdr *cmsg;
+ int buflen = 0, len, r;
+
+ assert(server);
+
+ r = ioctl(fd, FIONREAD, &buflen);
+ if (r < 0)
+ return r;
+ if (buflen < 0)
+ return -EIO;
+
+ message = malloc0(buflen);
+ if (!message)
+ return -ENOMEM;
+
+ iov.iov_base = message;
+ iov.iov_len = buflen;
+
+ len = recvmsg(fd, &msg, 0);
+ if (len < buflen)
+ return 0;
+ else if ((size_t)len < sizeof(DHCPMessage))
+ return 0;
+
+ for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
+ if (cmsg->cmsg_level == IPPROTO_IP &&
+ cmsg->cmsg_type == IP_PKTINFO &&
+ cmsg->cmsg_len == CMSG_LEN(sizeof(struct in_pktinfo))) {
+ struct in_pktinfo *info = (struct in_pktinfo*)CMSG_DATA(cmsg);
+
+ /* TODO figure out if this can be done as a filter on the socket, like for IPv6 */
+ if (server->index != info->ipi_ifindex)
+ return 0;
+
+ break;
+ }
+ }
+
+ return dhcp_server_handle_message(server, message, (size_t)len);
+}
+
+int sd_dhcp_server_start(sd_dhcp_server *server) {
+ int r;
+
+ assert_return(server, -EINVAL);
+ assert_return(server->event, -EINVAL);
+ assert_return(!server->receive_message, -EBUSY);
+ assert_return(server->fd_raw == -1, -EBUSY);
+ assert_return(server->fd == -1, -EBUSY);
+ assert_return(server->address != htobe32(INADDR_ANY), -EUNATCH);
+
+ r = socket(AF_PACKET, SOCK_DGRAM | SOCK_NONBLOCK, 0);
+ if (r < 0) {
+ r = -errno;
+ sd_dhcp_server_stop(server);
+ return r;
+ }
+ server->fd_raw = r;
+
+ r = dhcp_network_bind_udp_socket(INADDR_ANY, DHCP_PORT_SERVER);
+ if (r < 0) {
+ sd_dhcp_server_stop(server);
+ return r;
+ }
+ server->fd = r;
+
+ r = sd_event_add_io(server->event, &server->receive_message,
+ server->fd, EPOLLIN,
+ server_receive_message, server);
+ if (r < 0) {
+ sd_dhcp_server_stop(server);
+ return r;
+ }
+
+ r = sd_event_source_set_priority(server->receive_message,
+ server->event_priority);
+ if (r < 0) {
+ sd_dhcp_server_stop(server);
+ return r;
+ }
+
+ log_dhcp_server(server, "STARTED");
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <errno.h>
+#include <string.h>
+#include <sys/ioctl.h>
+
+#include "udev.h"
+#include "udev-util.h"
+#include "virt.h"
+#include "siphash24.h"
+#include "util.h"
+#include "refcnt.h"
+
+#include "network-internal.h"
+#include "sd-dhcp6-client.h"
+#include "dhcp6-protocol.h"
+#include "dhcp6-internal.h"
+#include "dhcp6-lease-internal.h"
+
+#define SYSTEMD_PEN 43793
+#define HASH_KEY SD_ID128_MAKE(80,11,8c,c2,fe,4a,03,ee,3e,d6,0c,6f,36,39,14,09)
+
+struct sd_dhcp6_client {
+ RefCount n_ref;
+
+ enum DHCP6State state;
+ sd_event *event;
+ int event_priority;
+ int index;
+ struct ether_addr mac_addr;
+ DHCP6IA ia_na;
+ be32_t transaction_id;
+ struct sd_dhcp6_lease *lease;
+ int fd;
+ be16_t *req_opts;
+ size_t req_opts_allocated;
+ size_t req_opts_len;
+ sd_event_source *receive_message;
+ usec_t retransmit_time;
+ uint8_t retransmit_count;
+ sd_event_source *timeout_resend;
+ sd_event_source *timeout_resend_expire;
+ sd_dhcp6_client_cb_t cb;
+ void *userdata;
+
+ struct duid_en {
+ uint16_t type; /* DHCP6_DUID_EN */
+ uint32_t pen;
+ uint8_t id[8];
+ } _packed_ duid;
+};
+
+static const uint16_t default_req_opts[] = {
+ DHCP6_OPTION_DNS_SERVERS,
+ DHCP6_OPTION_DOMAIN_LIST,
+ DHCP6_OPTION_NTP_SERVER,
+};
+
+const char * dhcp6_message_type_table[_DHCP6_MESSAGE_MAX] = {
+ [DHCP6_SOLICIT] = "SOLICIT",
+ [DHCP6_ADVERTISE] = "ADVERTISE",
+ [DHCP6_REQUEST] = "REQUEST",
+ [DHCP6_CONFIRM] = "CONFIRM",
+ [DHCP6_RENEW] = "RENEW",
+ [DHCP6_REBIND] = "REBIND",
+ [DHCP6_REPLY] = "REPLY",
+ [DHCP6_RELEASE] = "RELEASE",
+ [DHCP6_DECLINE] = "DECLINE",
+ [DHCP6_RECONFIGURE] = "RECONFIGURE",
+ [DHCP6_INFORMATION_REQUEST] = "INFORMATION-REQUEST",
+ [DHCP6_RELAY_FORW] = "RELAY-FORW",
+ [DHCP6_RELAY_REPL] = "RELAY-REPL",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(dhcp6_message_type, int);
+
+const char * dhcp6_message_status_table[_DHCP6_STATUS_MAX] = {
+ [DHCP6_STATUS_SUCCESS] = "Success",
+ [DHCP6_STATUS_UNSPEC_FAIL] = "Unspecified failure",
+ [DHCP6_STATUS_NO_ADDRS_AVAIL] = "No addresses available",
+ [DHCP6_STATUS_NO_BINDING] = "Binding unavailable",
+ [DHCP6_STATUS_NOT_ON_LINK] = "Not on link",
+ [DHCP6_STATUS_USE_MULTICAST] = "Use multicast",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(dhcp6_message_status, int);
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(sd_dhcp6_client*, sd_dhcp6_client_unref);
+#define _cleanup_dhcp6_client_unref_ _cleanup_(sd_dhcp6_client_unrefp)
+
+#define DHCP6_CLIENT_DONT_DESTROY(client) \
+ _cleanup_dhcp6_client_unref_ _unused_ sd_dhcp6_client *_dont_destroy_##client = sd_dhcp6_client_ref(client)
+
+static int client_start(sd_dhcp6_client *client, enum DHCP6State state);
+
+int sd_dhcp6_client_set_callback(sd_dhcp6_client *client,
+ sd_dhcp6_client_cb_t cb, void *userdata)
+{
+ assert_return(client, -EINVAL);
+
+ client->cb = cb;
+ client->userdata = userdata;
+
+ return 0;
+}
+
+int sd_dhcp6_client_set_index(sd_dhcp6_client *client, int interface_index)
+{
+ assert_return(client, -EINVAL);
+ assert_return(interface_index >= -1, -EINVAL);
+
+ client->index = interface_index;
+
+ return 0;
+}
+
+int sd_dhcp6_client_set_mac(sd_dhcp6_client *client,
+ const struct ether_addr *mac_addr)
+{
+ assert_return(client, -EINVAL);
+
+ if (mac_addr)
+ memcpy(&client->mac_addr, mac_addr, sizeof(client->mac_addr));
+ else
+ memset(&client->mac_addr, 0x00, sizeof(client->mac_addr));
+
+ return 0;
+}
+
+int sd_dhcp6_client_set_request_option(sd_dhcp6_client *client,
+ uint16_t option) {
+ size_t t;
+
+ assert_return(client, -EINVAL);
+ assert_return(client->state == DHCP6_STATE_STOPPED, -EBUSY);
+
+ switch(option) {
+ case DHCP6_OPTION_DNS_SERVERS:
+ case DHCP6_OPTION_DOMAIN_LIST:
+ case DHCP6_OPTION_SNTP_SERVERS:
+ case DHCP6_OPTION_NTP_SERVER:
+ break;
+
+ default:
+ return -EINVAL;
+ }
+
+ for (t = 0; t < client->req_opts_len; t++)
+ if (client->req_opts[t] == htobe16(option))
+ return -EEXIST;
+
+ if (!GREEDY_REALLOC(client->req_opts, client->req_opts_allocated,
+ client->req_opts_len + 1))
+ return -ENOMEM;
+
+ client->req_opts[client->req_opts_len++] = htobe16(option);
+
+ return 0;
+}
+
+int sd_dhcp6_client_get_lease(sd_dhcp6_client *client, sd_dhcp6_lease **ret) {
+ assert_return(client, -EINVAL);
+ assert_return(ret, -EINVAL);
+
+ if (!client->lease)
+ return -ENOMSG;
+
+ *ret = sd_dhcp6_lease_ref(client->lease);
+
+ return 0;
+}
+
+static void client_notify(sd_dhcp6_client *client, int event) {
+ if (client->cb)
+ client->cb(client, event, client->userdata);
+}
+
+static int client_reset(sd_dhcp6_client *client) {
+ assert_return(client, -EINVAL);
+
+ client->receive_message =
+ sd_event_source_unref(client->receive_message);
+
+ client->fd = safe_close(client->fd);
+
+ client->transaction_id = 0;
+
+ client->ia_na.timeout_t1 =
+ sd_event_source_unref(client->ia_na.timeout_t1);
+ client->ia_na.timeout_t2 =
+ sd_event_source_unref(client->ia_na.timeout_t2);
+
+ client->retransmit_time = 0;
+ client->retransmit_count = 0;
+ client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+ client->timeout_resend_expire =
+ sd_event_source_unref(client->timeout_resend_expire);
+
+ client->state = DHCP6_STATE_STOPPED;
+
+ return 0;
+}
+
+static void client_stop(sd_dhcp6_client *client, int error) {
+ DHCP6_CLIENT_DONT_DESTROY(client);
+
+ assert(client);
+
+ client_notify(client, error);
+
+ client_reset(client);
+}
+
+static int client_send_message(sd_dhcp6_client *client) {
+ _cleanup_free_ DHCP6Message *message = NULL;
+ struct in6_addr all_servers =
+ IN6ADDR_ALL_DHCP6_RELAY_AGENTS_AND_SERVERS_INIT;
+ size_t len, optlen = 512;
+ uint8_t *opt;
+ int r;
+
+ len = sizeof(DHCP6Message) + optlen;
+
+ message = malloc0(len);
+ if (!message)
+ return -ENOMEM;
+
+ opt = (uint8_t *)(message + 1);
+
+ message->transaction_id = client->transaction_id;
+
+ switch(client->state) {
+ case DHCP6_STATE_SOLICITATION:
+ message->type = DHCP6_SOLICIT;
+
+ r = dhcp6_option_append(&opt, &optlen,
+ DHCP6_OPTION_RAPID_COMMIT, 0, NULL);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_option_append_ia(&opt, &optlen, &client->ia_na);
+ if (r < 0)
+ return r;
+
+ break;
+
+ case DHCP6_STATE_REQUEST:
+ case DHCP6_STATE_RENEW:
+
+ if (client->state == DHCP6_STATE_REQUEST)
+ message->type = DHCP6_REQUEST;
+ else
+ message->type = DHCP6_RENEW;
+
+ r = dhcp6_option_append(&opt, &optlen, DHCP6_OPTION_SERVERID,
+ client->lease->serverid_len,
+ client->lease->serverid);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_option_append_ia(&opt, &optlen, &client->lease->ia);
+ if (r < 0)
+ return r;
+
+ break;
+
+ case DHCP6_STATE_REBIND:
+ message->type = DHCP6_REBIND;
+
+ r = dhcp6_option_append_ia(&opt, &optlen, &client->lease->ia);
+ if (r < 0)
+ return r;
+
+ break;
+
+ case DHCP6_STATE_STOPPED:
+ case DHCP6_STATE_RS:
+ case DHCP6_STATE_BOUND:
+ return -EINVAL;
+ }
+
+ r = dhcp6_option_append(&opt, &optlen, DHCP6_OPTION_ORO,
+ client->req_opts_len * sizeof(be16_t),
+ client->req_opts);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_option_append(&opt, &optlen, DHCP6_OPTION_CLIENTID,
+ sizeof(client->duid), &client->duid);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_network_send_udp_socket(client->fd, &all_servers, message,
+ len - optlen);
+ if (r < 0)
+ return r;
+
+ log_dhcp6_client(client, "Sent %s",
+ dhcp6_message_type_to_string(message->type));
+
+ return 0;
+}
+
+static int client_timeout_t2(sd_event_source *s, uint64_t usec,
+ void *userdata) {
+ sd_dhcp6_client *client = userdata;
+
+ assert_return(s, -EINVAL);
+ assert_return(client, -EINVAL);
+ assert_return(client->lease, -EINVAL);
+
+ client->lease->ia.timeout_t2 =
+ sd_event_source_unref(client->lease->ia.timeout_t2);
+
+ log_dhcp6_client(client, "Timeout T2");
+
+ client_start(client, DHCP6_STATE_REBIND);
+
+ return 0;
+}
+
+static int client_timeout_t1(sd_event_source *s, uint64_t usec,
+ void *userdata) {
+ sd_dhcp6_client *client = userdata;
+
+ assert_return(s, -EINVAL);
+ assert_return(client, -EINVAL);
+ assert_return(client->lease, -EINVAL);
+
+ client->lease->ia.timeout_t1 =
+ sd_event_source_unref(client->lease->ia.timeout_t1);
+
+ log_dhcp6_client(client, "Timeout T1");
+
+ client_start(client, DHCP6_STATE_RENEW);
+
+ return 0;
+}
+
+static int client_timeout_resend_expire(sd_event_source *s, uint64_t usec,
+ void *userdata) {
+ sd_dhcp6_client *client = userdata;
+ DHCP6_CLIENT_DONT_DESTROY(client);
+ enum DHCP6State state;
+
+ assert(s);
+ assert(client);
+ assert(client->event);
+
+ state = client->state;
+
+ client_stop(client, DHCP6_EVENT_RESEND_EXPIRE);
+
+ /* RFC 3315, section 18.1.4., says that "...the client may choose to
+ use a Solicit message to locate a new DHCP server..." */
+ if (state == DHCP6_STATE_REBIND)
+ client_start(client, DHCP6_STATE_SOLICITATION);
+
+ return 0;
+}
+
+static usec_t client_timeout_compute_random(usec_t val) {
+ return val - val / 10 +
+ (random_u32() % (2 * USEC_PER_SEC)) * val / 10 / USEC_PER_SEC;
+}
+
+static int client_timeout_resend(sd_event_source *s, uint64_t usec,
+ void *userdata) {
+ int r = 0;
+ sd_dhcp6_client *client = userdata;
+ usec_t time_now, init_retransmit_time, max_retransmit_time;
+ usec_t max_retransmit_duration = 0;
+ uint8_t max_retransmit_count = 0;
+ char time_string[FORMAT_TIMESPAN_MAX];
+ uint32_t expire = 0;
+
+ assert(s);
+ assert(client);
+ assert(client->event);
+
+ client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+
+ switch (client->state) {
+ case DHCP6_STATE_SOLICITATION:
+
+ if (client->retransmit_count && client->lease) {
+ client_start(client, DHCP6_STATE_REQUEST);
+ return 0;
+ }
+
+ init_retransmit_time = DHCP6_SOL_TIMEOUT;
+ max_retransmit_time = DHCP6_SOL_MAX_RT;
+
+ break;
+
+ case DHCP6_STATE_REQUEST:
+ init_retransmit_time = DHCP6_REQ_TIMEOUT;
+ max_retransmit_time = DHCP6_REQ_MAX_RT;
+ max_retransmit_count = DHCP6_REQ_MAX_RC;
+
+ break;
+
+ case DHCP6_STATE_RENEW:
+ init_retransmit_time = DHCP6_REN_TIMEOUT;
+ max_retransmit_time = DHCP6_REN_MAX_RT;
+
+ /* RFC 3315, section 18.1.3. says max retransmit duration will
+ be the remaining time until T2. Instead of setting MRD,
+ wait for T2 to trigger with the same end result */
+
+ break;
+
+ case DHCP6_STATE_REBIND:
+ init_retransmit_time = DHCP6_REB_TIMEOUT;
+ max_retransmit_time = DHCP6_REB_MAX_RT;
+
+ if (!client->timeout_resend_expire) {
+ r = dhcp6_lease_ia_rebind_expire(&client->lease->ia,
+ &expire);
+ if (r < 0) {
+ client_stop(client, r);
+ return 0;
+ }
+ max_retransmit_duration = expire * USEC_PER_SEC;
+ }
+
+ break;
+
+ case DHCP6_STATE_STOPPED:
+ case DHCP6_STATE_RS:
+ case DHCP6_STATE_BOUND:
+ return 0;
+ }
+
+ if (max_retransmit_count &&
+ client->retransmit_count >= max_retransmit_count) {
+ client_stop(client, DHCP6_EVENT_RETRANS_MAX);
+ return 0;
+ }
+
+ r = client_send_message(client);
+ if (r >= 0)
+ client->retransmit_count++;
+
+
+ r = sd_event_now(client->event, CLOCK_MONOTONIC, &time_now);
+ if (r < 0)
+ goto error;
+
+ if (!client->retransmit_time) {
+ client->retransmit_time =
+ client_timeout_compute_random(init_retransmit_time);
+
+ if (client->state == DHCP6_STATE_SOLICITATION)
+ client->retransmit_time += init_retransmit_time / 10;
+
+ } else {
+ if (max_retransmit_time &&
+ client->retransmit_time > max_retransmit_time / 2)
+ client->retransmit_time = client_timeout_compute_random(max_retransmit_time);
+ else
+ client->retransmit_time += client_timeout_compute_random(client->retransmit_time);
+ }
+
+ log_dhcp6_client(client, "Next retransmission in %s",
+ format_timespan(time_string, FORMAT_TIMESPAN_MAX,
+ client->retransmit_time, 0));
+
+ r = sd_event_add_time(client->event, &client->timeout_resend,
+ CLOCK_MONOTONIC,
+ time_now + client->retransmit_time,
+ 10 * USEC_PER_MSEC, client_timeout_resend,
+ client);
+ if (r < 0)
+ goto error;
+
+ r = sd_event_source_set_priority(client->timeout_resend,
+ client->event_priority);
+ if (r < 0)
+ goto error;
+
+ if (max_retransmit_duration && !client->timeout_resend_expire) {
+
+ log_dhcp6_client(client, "Max retransmission duration %"PRIu64" secs",
+ max_retransmit_duration / USEC_PER_SEC);
+
+ r = sd_event_add_time(client->event,
+ &client->timeout_resend_expire,
+ CLOCK_MONOTONIC,
+ time_now + max_retransmit_duration,
+ USEC_PER_SEC,
+ client_timeout_resend_expire, client);
+ if (r < 0)
+ goto error;
+
+ r = sd_event_source_set_priority(client->timeout_resend_expire,
+ client->event_priority);
+ if (r < 0)
+ goto error;
+ }
+
+error:
+ if (r < 0)
+ client_stop(client, r);
+
+ return 0;
+}
+
+static int client_ensure_iaid(sd_dhcp6_client *client) {
+ /* name is a pointer to memory in the udev_device struct, so must
+ have the same scope */
+ _cleanup_udev_device_unref_ struct udev_device *device = NULL;
+ const char *name = NULL;
+ uint64_t id;
+
+ assert(client);
+
+ if (client->ia_na.id)
+ return 0;
+
+ if (detect_container(NULL) <= 0) {
+ /* not in a container, udev will be around */
+ _cleanup_udev_unref_ struct udev *udev;
+ char ifindex_str[2 + DECIMAL_STR_MAX(int)];
+
+ udev = udev_new();
+ if (!udev)
+ return -ENOMEM;
+
+ sprintf(ifindex_str, "n%d", client->index);
+ device = udev_device_new_from_device_id(udev, ifindex_str);
+ if (!device)
+ return -errno;
+
+ if (udev_device_get_is_initialized(device) <= 0)
+ /* not yet ready */
+ return -EBUSY;
+
+ name = net_get_name(device);
+ }
+
+ if (name)
+ siphash24((uint8_t*)&id, name, strlen(name), HASH_KEY.bytes);
+ else
+ /* fall back to mac address if no predictable name available */
+ siphash24((uint8_t*)&id, &client->mac_addr, ETH_ALEN,
+ HASH_KEY.bytes);
+
+ /* fold into 32 bits */
+ client->ia_na.id = (id & 0xffffffff) ^ (id >> 32);
+
+ return 0;
+}
+
+static int client_parse_message(sd_dhcp6_client *client,
+ DHCP6Message *message, size_t len,
+ sd_dhcp6_lease *lease) {
+ int r;
+ uint8_t *optval, *option = (uint8_t *)(message + 1), *id = NULL;
+ uint16_t optcode, status;
+ size_t optlen, id_len;
+ bool clientid = false;
+ be32_t iaid_lease;
+
+ while ((r = dhcp6_option_parse(&option, &len, &optcode, &optlen,
+ &optval)) >= 0) {
+ switch (optcode) {
+ case DHCP6_OPTION_CLIENTID:
+ if (clientid) {
+ log_dhcp6_client(client, "%s contains multiple clientids",
+ dhcp6_message_type_to_string(message->type));
+ return -EINVAL;
+ }
+
+ if (optlen != sizeof(client->duid) ||
+ memcmp(&client->duid, optval, optlen) != 0) {
+ log_dhcp6_client(client, "%s DUID does not match",
+ dhcp6_message_type_to_string(message->type));
+
+ return -EINVAL;
+ }
+ clientid = true;
+
+ break;
+
+ case DHCP6_OPTION_SERVERID:
+ r = dhcp6_lease_get_serverid(lease, &id, &id_len);
+ if (r >= 0 && id) {
+ log_dhcp6_client(client, "%s contains multiple serverids",
+ dhcp6_message_type_to_string(message->type));
+ return -EINVAL;
+ }
+
+ r = dhcp6_lease_set_serverid(lease, optval, optlen);
+ if (r < 0)
+ return r;
+
+ break;
+
+ case DHCP6_OPTION_PREFERENCE:
+ if (optlen != 1)
+ return -EINVAL;
+
+ r = dhcp6_lease_set_preference(lease, *optval);
+ if (r < 0)
+ return r;
+
+ break;
+
+ case DHCP6_OPTION_STATUS_CODE:
+ if (optlen < 2)
+ return -EINVAL;
+
+ status = optval[0] << 8 | optval[1];
+ if (status) {
+ log_dhcp6_client(client, "%s Status %s",
+ dhcp6_message_type_to_string(message->type),
+ dhcp6_message_status_to_string(status));
+ return -EINVAL;
+ }
+
+ break;
+
+ case DHCP6_OPTION_IA_NA:
+ r = dhcp6_option_parse_ia(&optval, &optlen, optcode,
+ &lease->ia);
+ if (r < 0 && r != -ENOMSG)
+ return r;
+
+ r = dhcp6_lease_get_iaid(lease, &iaid_lease);
+ if (r < 0)
+ return r;
+
+ if (client->ia_na.id != iaid_lease) {
+ log_dhcp6_client(client, "%s has wrong IAID",
+ dhcp6_message_type_to_string(message->type));
+ return -EINVAL;
+ }
+
+ break;
+
+ case DHCP6_OPTION_RAPID_COMMIT:
+ r = dhcp6_lease_set_rapid_commit(lease);
+ if (r < 0)
+ return r;
+
+ break;
+ }
+ }
+
+ if ((r < 0 && r != -ENOMSG) || !clientid) {
+ log_dhcp6_client(client, "%s has incomplete options",
+ dhcp6_message_type_to_string(message->type));
+ return -EINVAL;
+ }
+
+ r = dhcp6_lease_get_serverid(lease, &id, &id_len);
+ if (r < 0)
+ log_dhcp6_client(client, "%s has no server id",
+ dhcp6_message_type_to_string(message->type));
+
+ return r;
+}
+
+static int client_receive_reply(sd_dhcp6_client *client, DHCP6Message *reply,
+ size_t len)
+{
+ int r;
+ _cleanup_dhcp6_lease_free_ sd_dhcp6_lease *lease = NULL;
+ bool rapid_commit;
+
+ if (reply->type != DHCP6_REPLY)
+ return 0;
+
+ r = dhcp6_lease_new(&lease);
+ if (r < 0)
+ return -ENOMEM;
+
+ r = client_parse_message(client, reply, len, lease);
+ if (r < 0)
+ return r;
+
+ if (client->state == DHCP6_STATE_SOLICITATION) {
+ r = dhcp6_lease_get_rapid_commit(lease, &rapid_commit);
+ if (r < 0)
+ return r;
+
+ if (!rapid_commit)
+ return 0;
+ }
+
+ dhcp6_lease_clear_timers(&client->lease->ia);
+
+ client->lease = sd_dhcp6_lease_unref(client->lease);
+ client->lease = lease;
+ lease = NULL;
+
+ return DHCP6_STATE_BOUND;
+}
+
+static int client_receive_advertise(sd_dhcp6_client *client,
+ DHCP6Message *advertise, size_t len) {
+ int r;
+ _cleanup_dhcp6_lease_free_ sd_dhcp6_lease *lease = NULL;
+ uint8_t pref_advertise = 0, pref_lease = 0;
+
+ if (advertise->type != DHCP6_ADVERTISE)
+ return 0;
+
+ r = dhcp6_lease_new(&lease);
+ if (r < 0)
+ return r;
+
+ r = client_parse_message(client, advertise, len, lease);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_lease_get_preference(lease, &pref_advertise);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_lease_get_preference(client->lease, &pref_lease);
+ if (!client->lease || r < 0 || pref_advertise > pref_lease) {
+ sd_dhcp6_lease_unref(client->lease);
+ client->lease = lease;
+ lease = NULL;
+ r = 0;
+ }
+
+ if (pref_advertise == 255 || client->retransmit_count > 1)
+ r = DHCP6_STATE_REQUEST;
+
+ return r;
+}
+
+static int client_receive_message(sd_event_source *s, int fd, uint32_t revents,
+ void *userdata) {
+ sd_dhcp6_client *client = userdata;
+ DHCP6_CLIENT_DONT_DESTROY(client);
+ _cleanup_free_ DHCP6Message *message;
+ int r, buflen, len;
+
+ assert(s);
+ assert(client);
+ assert(client->event);
+
+ r = ioctl(fd, FIONREAD, &buflen);
+ if (r < 0 || buflen <= 0)
+ buflen = DHCP6_MIN_OPTIONS_SIZE;
+
+ message = malloc0(buflen);
+ if (!message)
+ return -ENOMEM;
+
+ len = read(fd, message, buflen);
+ if ((size_t)len < sizeof(DHCP6Message)) {
+ log_dhcp6_client(client, "could not receive message from UDP socket: %m");
+ return 0;
+ }
+
+ switch(message->type) {
+ case DHCP6_SOLICIT:
+ case DHCP6_REQUEST:
+ case DHCP6_CONFIRM:
+ case DHCP6_RENEW:
+ case DHCP6_REBIND:
+ case DHCP6_RELEASE:
+ case DHCP6_DECLINE:
+ case DHCP6_INFORMATION_REQUEST:
+ case DHCP6_RELAY_FORW:
+ case DHCP6_RELAY_REPL:
+ return 0;
+
+ case DHCP6_ADVERTISE:
+ case DHCP6_REPLY:
+ case DHCP6_RECONFIGURE:
+ break;
+
+ default:
+ log_dhcp6_client(client, "unknown message type %d",
+ message->type);
+ return 0;
+ }
+
+ if (client->transaction_id != (message->transaction_id &
+ htobe32(0x00ffffff)))
+ return 0;
+
+ switch (client->state) {
+ case DHCP6_STATE_SOLICITATION:
+ r = client_receive_advertise(client, message, len);
+
+ if (r == DHCP6_STATE_REQUEST) {
+ client_start(client, r);
+
+ break;
+ }
+
+ /* fall through for Soliciation Rapid Commit option check */
+ case DHCP6_STATE_REQUEST:
+ case DHCP6_STATE_RENEW:
+ case DHCP6_STATE_REBIND:
+
+ r = client_receive_reply(client, message, len);
+ if (r < 0)
+ return 0;
+
+ if (r == DHCP6_STATE_BOUND) {
+
+ r = client_start(client, DHCP6_STATE_BOUND);
+ if (r < 0) {
+ client_stop(client, r);
+ return 0;
+ }
+
+ client_notify(client, DHCP6_EVENT_IP_ACQUIRE);
+ }
+
+ break;
+
+ case DHCP6_STATE_BOUND:
+
+ break;
+
+ case DHCP6_STATE_STOPPED:
+ case DHCP6_STATE_RS:
+ return 0;
+ }
+
+ if (r >= 0) {
+ log_dhcp6_client(client, "Recv %s",
+ dhcp6_message_type_to_string(message->type));
+ }
+
+ return 0;
+}
+
+static int client_start(sd_dhcp6_client *client, enum DHCP6State state)
+{
+ int r;
+ usec_t timeout, time_now;
+ char time_string[FORMAT_TIMESPAN_MAX];
+
+ assert_return(client, -EINVAL);
+ assert_return(client->event, -EINVAL);
+ assert_return(client->index > 0, -EINVAL);
+ assert_return(client->state != state, -EINVAL);
+
+ client->timeout_resend_expire =
+ sd_event_source_unref(client->timeout_resend_expire);
+ client->timeout_resend = sd_event_source_unref(client->timeout_resend);
+ client->retransmit_time = 0;
+ client->retransmit_count = 0;
+
+ switch (state) {
+ case DHCP6_STATE_STOPPED:
+ case DHCP6_STATE_RS:
+ case DHCP6_STATE_SOLICITATION:
+
+ r = client_ensure_iaid(client);
+ if (r < 0)
+ return r;
+
+ r = dhcp6_network_bind_udp_socket(client->index, NULL);
+ if (r < 0)
+ return r;
+
+ client->fd = r;
+
+ r = sd_event_add_io(client->event, &client->receive_message,
+ client->fd, EPOLLIN, client_receive_message,
+ client);
+ if (r < 0)
+ return r;
+
+ r = sd_event_source_set_priority(client->receive_message,
+ client->event_priority);
+ if (r < 0)
+ return r;
+
+ client->state = DHCP6_STATE_SOLICITATION;
+
+ break;
+
+ case DHCP6_STATE_REQUEST:
+ case DHCP6_STATE_RENEW:
+ case DHCP6_STATE_REBIND:
+
+ client->state = state;
+
+ break;
+
+ case DHCP6_STATE_BOUND:
+
+ r = sd_event_now(client->event, CLOCK_MONOTONIC, &time_now);
+ if (r < 0)
+ return r;
+
+ if (client->lease->ia.lifetime_t1 == 0xffffffff ||
+ client->lease->ia.lifetime_t2 == 0xffffffff) {
+
+ log_dhcp6_client(client, "infinite T1 0x%08x or T2 0x%08x",
+ be32toh(client->lease->ia.lifetime_t1),
+ be32toh(client->lease->ia.lifetime_t2));
+
+ return 0;
+ }
+
+ timeout = client_timeout_compute_random(be32toh(client->lease->ia.lifetime_t1) * USEC_PER_SEC);
+
+ log_dhcp6_client(client, "T1 expires in %s",
+ format_timespan(time_string,
+ FORMAT_TIMESPAN_MAX,
+ timeout, 0));
+
+ r = sd_event_add_time(client->event,
+ &client->lease->ia.timeout_t1,
+ CLOCK_MONOTONIC, time_now + timeout,
+ 10 * USEC_PER_SEC, client_timeout_t1,
+ client);
+ if (r < 0)
+ return r;
+
+ r = sd_event_source_set_priority(client->lease->ia.timeout_t1,
+ client->event_priority);
+ if (r < 0)
+ return r;
+
+ timeout = client_timeout_compute_random(be32toh(client->lease->ia.lifetime_t2) * USEC_PER_SEC);
+
+ log_dhcp6_client(client, "T2 expires in %s",
+ format_timespan(time_string,
+ FORMAT_TIMESPAN_MAX,
+ timeout, 0));
+
+ r = sd_event_add_time(client->event,
+ &client->lease->ia.timeout_t2,
+ CLOCK_MONOTONIC, time_now + timeout,
+ 10 * USEC_PER_SEC, client_timeout_t2,
+ client);
+ if (r < 0)
+ return r;
+
+ r = sd_event_source_set_priority(client->lease->ia.timeout_t2,
+ client->event_priority);
+ if (r < 0)
+ return r;
+
+ client->state = state;
+
+ return 0;
+ }
+
+ client->transaction_id = random_u32() & htobe32(0x00ffffff);
+
+ r = sd_event_add_time(client->event, &client->timeout_resend,
+ CLOCK_MONOTONIC, 0, 0, client_timeout_resend,
+ client);
+ if (r < 0)
+ return r;
+
+ r = sd_event_source_set_priority(client->timeout_resend,
+ client->event_priority);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
+int sd_dhcp6_client_stop(sd_dhcp6_client *client)
+{
+ client_stop(client, DHCP6_EVENT_STOP);
+
+ return 0;
+}
+
+int sd_dhcp6_client_start(sd_dhcp6_client *client)
+{
+ int r = 0;
+
+ assert_return(client, -EINVAL);
+ assert_return(client->event, -EINVAL);
+ assert_return(client->index > 0, -EINVAL);
+
+ r = client_reset(client);
+ if (r < 0)
+ return r;
+
+ return client_start(client, DHCP6_STATE_SOLICITATION);
+}
+
+int sd_dhcp6_client_attach_event(sd_dhcp6_client *client, sd_event *event,
+ int priority)
+{
+ int r;
+
+ assert_return(client, -EINVAL);
+ assert_return(!client->event, -EBUSY);
+
+ if (event)
+ client->event = sd_event_ref(event);
+ else {
+ r = sd_event_default(&client->event);
+ if (r < 0)
+ return 0;
+ }
+
+ client->event_priority = priority;
+
+ return 0;
+}
+
+int sd_dhcp6_client_detach_event(sd_dhcp6_client *client) {
+ assert_return(client, -EINVAL);
+
+ client->event = sd_event_unref(client->event);
+
+ return 0;
+}
+
+sd_event *sd_dhcp6_client_get_event(sd_dhcp6_client *client) {
+ if (!client)
+ return NULL;
+
+ return client->event;
+}
+
+sd_dhcp6_client *sd_dhcp6_client_ref(sd_dhcp6_client *client) {
+ if (client)
+ assert_se(REFCNT_INC(client->n_ref) >= 2);
+
+ return client;
+}
+
+sd_dhcp6_client *sd_dhcp6_client_unref(sd_dhcp6_client *client) {
+ if (client && REFCNT_DEC(client->n_ref) <= 0) {
+ client_reset(client);
+
+ sd_dhcp6_client_detach_event(client);
+
+ free(client->req_opts);
+ free(client);
+
+ return NULL;
+ }
+
+ return client;
+}
+
+int sd_dhcp6_client_new(sd_dhcp6_client **ret)
+{
+ _cleanup_dhcp6_client_unref_ sd_dhcp6_client *client = NULL;
+ sd_id128_t machine_id;
+ int r;
+ size_t t;
+
+ assert_return(ret, -EINVAL);
+
+ client = new0(sd_dhcp6_client, 1);
+ if (!client)
+ return -ENOMEM;
+
+ client->n_ref = REFCNT_INIT;
+
+ client->ia_na.type = DHCP6_OPTION_IA_NA;
+
+ client->index = -1;
+
+ client->fd = -1;
+
+ /* initialize DUID */
+ client->duid.type = htobe16(DHCP6_DUID_EN);
+ client->duid.pen = htobe32(SYSTEMD_PEN);
+
+ r = sd_id128_get_machine(&machine_id);
+ if (r < 0)
+ return r;
+
+ /* a bit of snake-oil perhaps, but no need to expose the machine-id
+ directly */
+ siphash24(client->duid.id, &machine_id, sizeof(machine_id),
+ HASH_KEY.bytes);
+
+ client->req_opts_len = ELEMENTSOF(default_req_opts);
+
+ client->req_opts = new0(be16_t, client->req_opts_len);
+ if (!client->req_opts)
+ return -ENOMEM;
+
+ for (t = 0; t < client->req_opts_len; t++)
+ client->req_opts[t] = htobe16(default_req_opts[t]);
+
+ *ret = client;
+ client = NULL;
+
+ return 0;
+}
--- /dev/null
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Tom Gundersen
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <errno.h>
+
+#include "util.h"
+
+#include "dhcp6-lease-internal.h"
+
+int dhcp6_lease_clear_timers(DHCP6IA *ia) {
+ assert_return(ia, -EINVAL);
+
+ ia->timeout_t1 = sd_event_source_unref(ia->timeout_t1);
+ ia->timeout_t2 = sd_event_source_unref(ia->timeout_t2);
+
+ return 0;
+}
+
+int dhcp6_lease_ia_rebind_expire(const DHCP6IA *ia, uint32_t *expire) {
+ DHCP6Address *addr;
+ uint32_t valid = 0, t;
+
+ assert_return(ia, -EINVAL);
+ assert_return(expire, -EINVAL);
+
+ LIST_FOREACH(addresses, addr, ia->addresses) {
+ t = be32toh(addr->lifetime_valid);
+ if (valid < t)
+ valid = t;
+ }
+
+ t = be32toh(ia->lifetime_t2);
+ if (t > valid)
+ return -EINVAL;
+
+ *expire = valid - t;
+
+ return 0;
+}
+
+DHCP6IA *dhcp6_lease_free_ia(DHCP6IA *ia) {
+ DHCP6Address *address;
+
+ if (!ia)
+ return NULL;
+
+ dhcp6_lease_clear_timers(ia);
+
+ while (ia->addresses) {
+ address = ia->addresses;
+
+ LIST_REMOVE(addresses, ia->addresses, address);
+
+ free(address);
+ }
+
+ return NULL;
+}
+
+int dhcp6_lease_set_serverid(sd_dhcp6_lease *lease, const uint8_t *id,
+ size_t len) {
+ assert_return(lease, -EINVAL);
+ assert_return(id, -EINVAL);
+
+ free(lease->serverid);
+
+ lease->serverid = memdup(id, len);
+ if (!lease->serverid)
+ return -EINVAL;
+
+ lease->serverid_len = len;
+
+ return 0;
+}
+
+int dhcp6_lease_get_serverid(sd_dhcp6_lease *lease, uint8_t **id, size_t *len) {
+ assert_return(lease, -EINVAL);
+ assert_return(id, -EINVAL);
+ assert_return(len, -EINVAL);
+
+ *id = lease->serverid;
+ *len = lease->serverid_len;
+
+ return 0;
+}
+
+int dhcp6_lease_set_preference(sd_dhcp6_lease *lease, uint8_t preference) {
+ assert_return(lease, -EINVAL);
+
+ lease->preference = preference;
+
+ return 0;
+}
+
+int dhcp6_lease_get_preference(sd_dhcp6_lease *lease, uint8_t *preference) {
+ assert_return(lease, -EINVAL);
+ assert_return(preference, -EINVAL);
+
+ *preference = lease->preference;
+
+ return 0;
+}
+
+int dhcp6_lease_set_rapid_commit(sd_dhcp6_lease *lease) {
+ assert_return(lease, -EINVAL);
+
+ lease->rapid_commit = true;
+
+ return 0;
+}
+
+int dhcp6_lease_get_rapid_commit(sd_dhcp6_lease *lease, bool *rapid_commit) {
+ assert_return(lease, -EINVAL);
+ assert_return(rapid_commit, -EINVAL);
+
+ *rapid_commit = lease->rapid_commit;
+
+ return 0;
+}
+
+int dhcp6_lease_get_iaid(sd_dhcp6_lease *lease, be32_t *iaid) {
+ assert_return(lease, -EINVAL);
+ assert_return(iaid, -EINVAL);
+
+ *iaid = lease->ia.id;
+
+ return 0;
+}
+
+int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease *lease,
+ struct in6_addr *addr,
+ uint32_t *lifetime_preferred,
+ uint32_t *lifetime_valid) {
+ assert_return(lease, -EINVAL);
+ assert_return(addr, -EINVAL);
+ assert_return(lifetime_preferred, -EINVAL);
+ assert_return(lifetime_valid, -EINVAL);
+
+ if (!lease->addr_iter)
+ return -ENOMSG;
+
+ memcpy(addr, &lease->addr_iter->address, sizeof(struct in6_addr));
+ *lifetime_preferred = be32toh(lease->addr_iter->lifetime_preferred);
+ *lifetime_valid = be32toh(lease->addr_iter->lifetime_valid);
+
+ lease->addr_iter = lease->addr_iter->addresses_next;
+
+ return 0;
+}
+
+int sd_dhcp6_lease_get_first_address(sd_dhcp6_lease *lease,
+ struct in6_addr *addr,
+ uint32_t *lifetime_preferred,
+ uint32_t *lifetime_valid) {
+ assert_return(lease, -EINVAL);
+ assert_return(addr, -EINVAL);
+ assert_return(lifetime_preferred, -EINVAL);
+ assert_return(lifetime_valid, -EINVAL);
+
+ if (!lease->ia.addresses)
+ return -ENOMSG;
+
+ lease->addr_iter = lease->ia.addresses;
+
+ return sd_dhcp6_lease_get_next_address(lease, addr, lifetime_preferred,
+ lifetime_valid);
+}
+
+sd_dhcp6_lease *sd_dhcp6_lease_ref(sd_dhcp6_lease *lease) {
+ if (lease)
+ assert_se(REFCNT_INC(lease->n_ref) >= 2);
+
+ return lease;
+}
+
+sd_dhcp6_lease *sd_dhcp6_lease_unref(sd_dhcp6_lease *lease) {
+ if (lease && REFCNT_DEC(lease->n_ref) <= 0) {
+ free(lease->serverid);
+ dhcp6_lease_free_ia(&lease->ia);
+
+ free(lease);
+ }
+
+ return NULL;
+}
+
+int dhcp6_lease_new(sd_dhcp6_lease **ret) {
+ sd_dhcp6_lease *lease;
+
+ lease = new0(sd_dhcp6_lease, 1);
+ if (!lease)
+ return -ENOMEM;
+
+ lease->n_ref = REFCNT_INIT;
+
+ LIST_HEAD_INIT(lease->ia.addresses);
+
+ *ret = lease;
+ return 0;
+}
--- /dev/null
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/icmp6.h>
+#include <string.h>
+#include <stdbool.h>
+#include <netinet/in.h>
+
+#include "socket-util.h"
+#include "refcnt.h"
+#include "async.h"
+
+#include "dhcp6-internal.h"
+#include "sd-icmp6-nd.h"
+
+#define ICMP6_ROUTER_SOLICITATION_INTERVAL 4 * USEC_PER_SEC
+#define ICMP6_MAX_ROUTER_SOLICITATIONS 3
+
+enum icmp6_nd_state {
+ ICMP6_NEIGHBOR_DISCOVERY_IDLE = 0,
+ ICMP6_ROUTER_SOLICITATION_SENT = 10,
+ ICMP6_ROUTER_ADVERTISMENT_LISTEN = 11,
+};
+
+struct sd_icmp6_nd {
+ RefCount n_ref;
+
+ enum icmp6_nd_state state;
+ sd_event *event;
+ int event_priority;
+ int index;
+ struct ether_addr mac_addr;
+ int fd;
+ sd_event_source *recv;
+ sd_event_source *timeout;
+ int nd_sent;
+ sd_icmp6_nd_callback_t callback;
+ void *userdata;
+};
+
+#define log_icmp6_nd(p, fmt, ...) log_meta(LOG_DEBUG, __FILE__, __LINE__, __func__, "ICMPv6 CLIENT: " fmt, ##__VA_ARGS__)
+
+static void icmp6_nd_notify(sd_icmp6_nd *nd, int event)
+{
+ if (nd->callback)
+ nd->callback(nd, event, nd->userdata);
+}
+
+int sd_icmp6_nd_set_callback(sd_icmp6_nd *nd, sd_icmp6_nd_callback_t callback,
+ void *userdata) {
+ assert(nd);
+
+ nd->callback = callback;
+ nd->userdata = userdata;
+
+ return 0;
+}
+
+int sd_icmp6_nd_set_index(sd_icmp6_nd *nd, int interface_index) {
+ assert(nd);
+ assert(interface_index >= -1);
+
+ nd->index = interface_index;
+
+ return 0;
+}
+
+int sd_icmp6_nd_set_mac(sd_icmp6_nd *nd, const struct ether_addr *mac_addr) {
+ assert(nd);
+
+ if (mac_addr)
+ memcpy(&nd->mac_addr, mac_addr, sizeof(nd->mac_addr));
+ else
+ memset(&nd->mac_addr, 0x00, sizeof(nd->mac_addr));
+
+ return 0;
+
+}
+
+int sd_icmp6_nd_attach_event(sd_icmp6_nd *nd, sd_event *event, int priority) {
+ int r;
+
+ assert_return(nd, -EINVAL);
+ assert_return(!nd->event, -EBUSY);
+
+ if (event)
+ nd->event = sd_event_ref(event);
+ else {
+ r = sd_event_default(&nd->event);
+ if (r < 0)
+ return 0;
+ }
+
+ nd->event_priority = priority;
+
+ return 0;
+}
+
+int sd_icmp6_nd_detach_event(sd_icmp6_nd *nd) {
+ assert_return(nd, -EINVAL);
+
+ nd->event = sd_event_unref(nd->event);
+
+ return 0;
+}
+
+sd_event *sd_icmp6_nd_get_event(sd_icmp6_nd *nd) {
+ assert(nd);
+
+ return nd->event;
+}
+
+sd_icmp6_nd *sd_icmp6_nd_ref(sd_icmp6_nd *nd) {
+ assert (nd);
+
+ assert_se(REFCNT_INC(nd->n_ref) >= 2);
+
+ return nd;
+}
+
+static int icmp6_nd_init(sd_icmp6_nd *nd) {
+ assert(nd);
+
+ nd->recv = sd_event_source_unref(nd->recv);
+ nd->fd = asynchronous_close(nd->fd);
+ nd->timeout = sd_event_source_unref(nd->timeout);
+
+ return 0;
+}
+
+sd_icmp6_nd *sd_icmp6_nd_unref(sd_icmp6_nd *nd) {
+ if (nd && REFCNT_DEC(nd->n_ref) <= 0) {
+
+ icmp6_nd_init(nd);
+ sd_icmp6_nd_detach_event(nd);
+
+ free(nd);
+ }
+
+ return NULL;
+}
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(sd_icmp6_nd*, sd_icmp6_nd_unref);
+#define _cleanup_sd_icmp6_nd_free_ _cleanup_(sd_icmp6_nd_unrefp)
+
+int sd_icmp6_nd_new(sd_icmp6_nd **ret) {
+ _cleanup_sd_icmp6_nd_free_ sd_icmp6_nd *nd = NULL;
+
+ assert(ret);
+
+ nd = new0(sd_icmp6_nd, 1);
+ if (!nd)
+ return -ENOMEM;
+
+ nd->n_ref = REFCNT_INIT;
+
+ nd->index = -1;
+ nd->fd = -1;
+
+ *ret = nd;
+ nd = NULL;
+
+ return 0;
+}
+
+static int icmp6_router_advertisment_recv(sd_event_source *s, int fd,
+ uint32_t revents, void *userdata)
+{
+ sd_icmp6_nd *nd = userdata;
+ ssize_t len;
+ struct nd_router_advert ra;
+ int event = ICMP6_EVENT_ROUTER_ADVERTISMENT_NONE;
+
+ assert(s);
+ assert(nd);
+ assert(nd->event);
+
+ /* only interested in Managed/Other flag */
+ len = read(fd, &ra, sizeof(ra));
+ if ((size_t)len < sizeof(ra))
+ return 0;
+
+ if (ra.nd_ra_type != ND_ROUTER_ADVERT)
+ return 0;
+
+ if (ra.nd_ra_code != 0)
+ return 0;
+
+ nd->timeout = sd_event_source_unref(nd->timeout);
+
+ nd->state = ICMP6_ROUTER_ADVERTISMENT_LISTEN;
+
+ if (ra.nd_ra_flags_reserved & ND_RA_FLAG_OTHER )
+ event = ICMP6_EVENT_ROUTER_ADVERTISMENT_OTHER;
+
+ if (ra.nd_ra_flags_reserved & ND_RA_FLAG_MANAGED)
+ event = ICMP6_EVENT_ROUTER_ADVERTISMENT_MANAGED;
+
+ log_icmp6_nd(nd, "Received Router Advertisment flags %s/%s",
+ (ra.nd_ra_flags_reserved & ND_RA_FLAG_MANAGED)? "MANAGED":
+ "none",
+ (ra.nd_ra_flags_reserved & ND_RA_FLAG_OTHER)? "OTHER":
+ "none");
+
+ icmp6_nd_notify(nd, event);
+
+ return 0;
+}
+
+static int icmp6_router_solicitation_timeout(sd_event_source *s, uint64_t usec,
+ void *userdata)
+{
+ sd_icmp6_nd *nd = userdata;
+ uint64_t time_now, next_timeout;
+ struct ether_addr unset = { };
+ struct ether_addr *addr = NULL;
+ int r;
+
+ assert(s);
+ assert(nd);
+ assert(nd->event);
+
+ nd->timeout = sd_event_source_unref(nd->timeout);
+
+ if (nd->nd_sent >= ICMP6_MAX_ROUTER_SOLICITATIONS) {
+ icmp6_nd_notify(nd, ICMP6_EVENT_ROUTER_ADVERTISMENT_TIMEOUT);
+ nd->state = ICMP6_ROUTER_ADVERTISMENT_LISTEN;
+ } else {
+ if (memcmp(&nd->mac_addr, &unset, sizeof(struct ether_addr)))
+ addr = &nd->mac_addr;
+
+ r = dhcp_network_icmp6_send_router_solicitation(nd->fd, addr);
+ if (r < 0)
+ log_icmp6_nd(nd, "Error sending Router Solicitation");
+ else {
+ nd->state = ICMP6_ROUTER_SOLICITATION_SENT;
+ log_icmp6_nd(nd, "Sent Router Solicitation");
+ }
+
+ nd->nd_sent++;
+
+ r = sd_event_now(nd->event, CLOCK_MONOTONIC, &time_now);
+ if (r < 0) {
+ icmp6_nd_notify(nd, r);
+ return 0;
+ }
+
+ next_timeout = time_now + ICMP6_ROUTER_SOLICITATION_INTERVAL;
+
+ r = sd_event_add_time(nd->event, &nd->timeout, CLOCK_MONOTONIC,
+ next_timeout, 0,
+ icmp6_router_solicitation_timeout, nd);
+ if (r < 0) {
+ icmp6_nd_notify(nd, r);
+ return 0;
+ }
+
+ r = sd_event_source_set_priority(nd->timeout,
+ nd->event_priority);
+ if (r < 0) {
+ icmp6_nd_notify(nd, r);
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+int sd_icmp6_nd_stop(sd_icmp6_nd *nd) {
+ assert_return(nd, -EINVAL);
+ assert_return(nd->event, -EINVAL);
+
+ log_icmp6_nd(client, "Stop ICMPv6");
+
+ icmp6_nd_init(nd);
+
+ nd->state = ICMP6_NEIGHBOR_DISCOVERY_IDLE;
+
+ return 0;
+}
+
+int sd_icmp6_router_solicitation_start(sd_icmp6_nd *nd) {
+ int r;
+
+ assert(nd);
+ assert(nd->event);
+
+ if (nd->state != ICMP6_NEIGHBOR_DISCOVERY_IDLE)
+ return -EINVAL;
+
+ if (nd->index < 1)
+ return -EINVAL;
+
+ r = dhcp_network_icmp6_bind_router_solicitation(nd->index);
+ if (r < 0)
+ return r;
+
+ nd->fd = r;
+
+ r = sd_event_add_io(nd->event, &nd->recv, nd->fd, EPOLLIN,
+ icmp6_router_advertisment_recv, nd);
+ if (r < 0)
+ goto error;
+
+ r = sd_event_source_set_priority(nd->recv, nd->event_priority);
+ if (r < 0)
+ goto error;
+
+ r = sd_event_add_time(nd->event, &nd->timeout, CLOCK_MONOTONIC,
+ 0, 0, icmp6_router_solicitation_timeout, nd);
+ if (r < 0)
+ goto error;
+
+ r = sd_event_source_set_priority(nd->timeout, nd->event_priority);
+
+error:
+ if (r < 0)
+ icmp6_nd_init(nd);
+ else
+ log_icmp6_nd(client, "Start Router Solicitation");
+
+ return r;
+}
if (verbose)
printf("* %s\n", __FUNCTION__);
- assert_se(dhcp_packet_checksum(&buf, 20) == be16toh(0x78ae));
+ assert_se(dhcp_packet_checksum((uint8_t*)&buf, 20) == be16toh(0x78ae));
}
static int check_options(uint8_t code, uint8_t len, const uint8_t *option,
discover->ip.ttl = 0;
discover->ip.check = discover->udp.len;
- udp_check = ~dhcp_packet_checksum(&discover->ip.ttl, len - 8);
+ udp_check = ~dhcp_packet_checksum((uint8_t*)&discover->ip.ttl, len - 8);
assert_se(udp_check == 0xffff);
discover->ip.ttl = IPDEFTTL;
discover->ip.check = ip_check;
- ip_check = ~dhcp_packet_checksum(&discover->ip, sizeof(discover->ip));
+ ip_check = ~dhcp_packet_checksum((uint8_t*)&discover->ip, sizeof(discover->ip));
assert_se(ip_check == 0xffff);
assert_se(discover->dhcp.xid);
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2013 Intel Corporation. All rights reserved.
+ Copyright (C) 2014 Tom Gundersen
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/if_ether.h>
+#include <assert.h>
+#include <errno.h>
+
+#include "sd-event.h"
+#include "event-util.h"
+
+#include "sd-dhcp-server.h"
+#include "dhcp-server-internal.h"
+
+static int test_basic(sd_event *event) {
+ _cleanup_dhcp_server_unref_ sd_dhcp_server *server = NULL;
+ struct in_addr address_lo = {
+ .s_addr = htonl(INADDR_LOOPBACK),
+ };
+ struct in_addr address_any = {
+ .s_addr = htonl(INADDR_ANY),
+ };
+ int r;
+
+ /* attach to loopback interface */
+ assert_se(sd_dhcp_server_new(&server, 1) >= 0);
+ assert_se(server);
+
+ assert_se(sd_dhcp_server_attach_event(server, event, 0) >= 0);
+ assert_se(sd_dhcp_server_attach_event(server, event, 0) == -EBUSY);
+ assert_se(sd_dhcp_server_get_event(server) == event);
+ assert_se(sd_dhcp_server_detach_event(server) >= 0);
+ assert_se(!sd_dhcp_server_get_event(server));
+ assert_se(sd_dhcp_server_attach_event(server, NULL, 0) >= 0);
+ assert_se(sd_dhcp_server_attach_event(server, NULL, 0) == -EBUSY);
+
+ assert_se(sd_dhcp_server_ref(server) == server);
+ assert_se(!sd_dhcp_server_unref(server));
+
+ assert_se(sd_dhcp_server_start(server) == -EUNATCH);
+ assert_se(sd_dhcp_server_set_address(server, &address_any) == -EINVAL);
+ assert_se(sd_dhcp_server_set_address(server, &address_lo) >= 0);
+ assert_se(sd_dhcp_server_set_address(server, &address_lo) == -EBUSY);
+
+ assert_se(sd_dhcp_server_set_lease_pool(server, &address_any, 1) == -EINVAL);
+ assert_se(sd_dhcp_server_set_lease_pool(server, &address_lo, 0) == -EINVAL);
+ assert_se(sd_dhcp_server_set_lease_pool(server, &address_lo, 1) >= 0);
+ assert_se(sd_dhcp_server_set_lease_pool(server, &address_lo, 1) == -EBUSY);
+
+ r = sd_dhcp_server_start(server);
+
+ if (r == -EPERM)
+ return EXIT_TEST_SKIP;
+ assert_se(r >= 0);
+
+ assert_se(sd_dhcp_server_start(server) == -EBUSY);
+ assert_se(sd_dhcp_server_stop(server) >= 0);
+ assert_se(sd_dhcp_server_stop(server) >= 0);
+ assert_se(sd_dhcp_server_start(server) >= 0);
+
+ return 0;
+}
+
+static void test_message_handler(void) {
+ _cleanup_dhcp_server_unref_ sd_dhcp_server *server = NULL;
+ struct {
+ DHCPMessage message;
+ struct {
+ uint8_t code;
+ uint8_t length;
+ uint8_t type;
+ } _packed_ option_type;
+ struct {
+ uint8_t code;
+ uint8_t length;
+ be32_t address;
+ } _packed_ option_requested_ip;
+ struct {
+ uint8_t code;
+ uint8_t length;
+ be32_t address;
+ } _packed_ option_server_id;
+ struct {
+ uint8_t code;
+ uint8_t length;
+ uint8_t id[7];
+ } _packed_ option_client_id;
+ uint8_t end;
+ } _packed_ test = {
+ .message.op = BOOTREQUEST,
+ .message.htype = ARPHRD_ETHER,
+ .message.hlen = ETHER_ADDR_LEN,
+ .message.xid = htobe32(0x12345678),
+ .message.chaddr = { 'A', 'B', 'C', 'D', 'E', 'F' },
+ .option_type.code = DHCP_OPTION_MESSAGE_TYPE,
+ .option_type.length = 1,
+ .option_type.type = DHCP_DISCOVER,
+ .end = DHCP_OPTION_END,
+ };
+ struct in_addr address_lo = {
+ .s_addr = htonl(INADDR_LOOPBACK),
+ };
+
+ assert_se(sd_dhcp_server_new(&server, 1) >= 0);
+ assert_se(sd_dhcp_server_set_address(server, &address_lo) >= 0);
+ assert_se(sd_dhcp_server_attach_event(server, NULL, 0) >= 0);
+ assert_se(sd_dhcp_server_start(server) >= 0);
+
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ assert_se(sd_dhcp_server_set_lease_pool(server, &address_lo, 10) >= 0);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+
+ test.end = 0;
+ /* TODO, shouldn't this fail? */
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+ test.end = DHCP_OPTION_END;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+
+ test.option_type.code = 0;
+ test.option_type.length = 0;
+ test.option_type.type = 0;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.option_type.code = DHCP_OPTION_MESSAGE_TYPE;
+ test.option_type.length = 1;
+ test.option_type.type = DHCP_DISCOVER;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+
+ test.message.op = 0;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.message.op = BOOTREQUEST;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+
+ test.message.htype = 0;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.message.htype = ARPHRD_ETHER;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+
+ test.message.hlen = 0;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.message.hlen = ETHER_ADDR_LEN;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_OFFER);
+
+ test.option_type.type = DHCP_REQUEST;
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.option_requested_ip.code = DHCP_OPTION_REQUESTED_IP_ADDRESS;
+ test.option_requested_ip.length = 4;
+ test.option_requested_ip.address = htobe32(0x12345678);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_NAK);
+ test.option_server_id.code = DHCP_OPTION_SERVER_IDENTIFIER;
+ test.option_server_id.length = 4;
+ test.option_server_id.address = htobe32(INADDR_LOOPBACK);
+ test.option_requested_ip.address = htobe32(INADDR_LOOPBACK + 3);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_ACK);
+
+ test.option_server_id.address = htobe32(0x12345678);
+ test.option_requested_ip.address = htobe32(INADDR_LOOPBACK + 3);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.option_server_id.address = htobe32(INADDR_LOOPBACK);
+ test.option_requested_ip.address = htobe32(INADDR_LOOPBACK + 4);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+ test.option_requested_ip.address = htobe32(INADDR_LOOPBACK + 3);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_ACK);
+
+ test.option_client_id.code = DHCP_OPTION_CLIENT_IDENTIFIER;
+ test.option_client_id.length = 7;
+ test.option_client_id.id[0] = 0x01;
+ test.option_client_id.id[1] = 'A';
+ test.option_client_id.id[2] = 'B';
+ test.option_client_id.id[3] = 'C';
+ test.option_client_id.id[4] = 'D';
+ test.option_client_id.id[5] = 'E';
+ test.option_client_id.id[6] = 'F';
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == DHCP_ACK);
+
+ test.option_requested_ip.address = htobe32(INADDR_LOOPBACK + 30);
+ assert_se(dhcp_server_handle_message(server, (DHCPMessage*)&test, sizeof(test)) == 0);
+}
+
+static void test_client_id_hash(void) {
+ DHCPClientId a = {
+ .length = 4,
+ }, b = {
+ .length = 4,
+ };
+ uint8_t hash_key[HASH_KEY_SIZE] = {
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
+ };
+
+ a.data = (uint8_t*)strdup("abcd");
+ b.data = (uint8_t*)strdup("abcd");
+
+ assert_se(client_id_compare_func(&a, &b) == 0);
+ assert_se(client_id_hash_func(&a, hash_key) == client_id_hash_func(&b, hash_key));
+ a.length = 3;
+ assert_se(client_id_compare_func(&a, &b) != 0);
+ a.length = 4;
+ assert_se(client_id_compare_func(&a, &b) == 0);
+ assert_se(client_id_hash_func(&a, hash_key) == client_id_hash_func(&b, hash_key));
+
+ b.length = 3;
+ assert_se(client_id_compare_func(&a, &b) != 0);
+ b.length = 4;
+ assert_se(client_id_compare_func(&a, &b) == 0);
+ assert_se(client_id_hash_func(&a, hash_key) == client_id_hash_func(&b, hash_key));
+
+ free(b.data);
+ b.data = (uint8_t*)strdup("abce");
+ assert_se(client_id_compare_func(&a, &b) != 0);
+
+ free(a.data);
+ free(b.data);
+}
+
+int main(int argc, char *argv[]) {
+ _cleanup_event_unref_ sd_event *e;
+ int r;
+
+ log_set_max_level(LOG_DEBUG);
+ log_parse_environment();
+ log_open();
+
+ assert_se(sd_event_new(&e) >= 0);
+
+ r = test_basic(e);
+ if (r != 0)
+ return r;
+
+ test_message_handler();
+ test_client_id_hash();
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <unistd.h>
+#include <net/ethernet.h>
+
+#include "socket-util.h"
+#include "macro.h"
+#include "sd-event.h"
+#include "event-util.h"
+#include "virt.h"
+
+#include "sd-dhcp6-client.h"
+#include "dhcp6-protocol.h"
+#include "dhcp6-internal.h"
+#include "dhcp6-lease-internal.h"
+
+static struct ether_addr mac_addr = {
+ .ether_addr_octet = {'A', 'B', 'C', '1', '2', '3'}
+};
+
+static bool verbose = false;
+
+static sd_event_source *hangcheck;
+static int test_dhcp_fd[2];
+static int test_index = 42;
+static int test_client_message_num;
+static be32_t test_iaid = 0;
+static uint8_t test_duid[14] = { };
+
+static int test_client_basic(sd_event *e) {
+ sd_dhcp6_client *client;
+
+ if (verbose)
+ printf("* %s\n", __FUNCTION__);
+
+ assert_se(sd_dhcp6_client_new(&client) >= 0);
+ assert_se(client);
+
+ assert_se(sd_dhcp6_client_attach_event(client, e, 0) >= 0);
+
+ assert_se(sd_dhcp6_client_set_index(client, 15) == 0);
+ assert_se(sd_dhcp6_client_set_index(client, -42) == -EINVAL);
+ assert_se(sd_dhcp6_client_set_index(client, -1) == 0);
+ assert_se(sd_dhcp6_client_set_index(client, 42) >= 0);
+
+ assert_se(sd_dhcp6_client_set_mac(client, &mac_addr) >= 0);
+
+ assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_CLIENTID) == -EINVAL);
+ assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_DNS_SERVERS) == -EEXIST);
+ assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_NTP_SERVER) == -EEXIST);
+ assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_SNTP_SERVERS) == 0);
+ assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_DOMAIN_LIST) == -EEXIST);
+ assert_se(sd_dhcp6_client_set_request_option(client, 10) == -EINVAL);
+
+ assert_se(sd_dhcp6_client_set_callback(client, NULL, NULL) >= 0);
+
+ assert_se(sd_dhcp6_client_detach_event(client) >= 0);
+ assert_se(!sd_dhcp6_client_unref(client));
+
+ return 0;
+}
+
+static int test_option(sd_event *e) {
+ uint8_t packet[] = {
+ 'F', 'O', 'O',
+ 0x00, DHCP6_OPTION_ORO, 0x00, 0x07,
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 0x00, DHCP6_OPTION_VENDOR_CLASS, 0x00, 0x09,
+ '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ 'B', 'A', 'R',
+ };
+ uint8_t result[] = {
+ 'F', 'O', 'O',
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 'B', 'A', 'R',
+ };
+ uint16_t optcode;
+ size_t optlen;
+ uint8_t *optval, *buf, *out;
+ size_t zero = 0, pos = 3;
+ size_t buflen = sizeof(packet), outlen = sizeof(result);
+
+ if (verbose)
+ printf("* %s\n", __FUNCTION__);
+
+ assert_se(buflen == outlen);
+
+ assert_se(dhcp6_option_parse(&buf, &zero, &optcode, &optlen,
+ &optval) == -ENOMSG);
+
+ buflen -= 3;
+ buf = &packet[3];
+ outlen -= 3;
+ out = &result[3];
+
+ assert_se(dhcp6_option_parse(&buf, &buflen, &optcode, &optlen,
+ &optval) >= 0);
+ pos += 4 + optlen;
+ assert_se(buf == &packet[pos]);
+ assert_se(optcode == DHCP6_OPTION_ORO);
+ assert_se(optlen == 7);
+ assert_se(buflen + pos == sizeof(packet));
+
+ assert_se(dhcp6_option_append(&out, &outlen, optcode, optlen,
+ optval) >= 0);
+ assert_se(out == &result[pos]);
+ assert_se(*out == 0x00);
+
+ assert_se(dhcp6_option_parse(&buf, &buflen, &optcode, &optlen,
+ &optval) >= 0);
+ pos += 4 + optlen;
+ assert_se(buf == &packet[pos]);
+ assert_se(optcode == DHCP6_OPTION_VENDOR_CLASS);
+ assert_se(optlen == 9);
+ assert_se(buflen + pos == sizeof(packet));
+
+ assert_se(dhcp6_option_append(&out, &outlen, optcode, optlen,
+ optval) >= 0);
+ assert_se(out == &result[pos]);
+ assert_se(*out == 'B');
+
+ assert_se(memcmp(packet, result, sizeof(packet)) == 0);
+
+ return 0;
+}
+
+static uint8_t msg_advertise[198] = {
+ 0x02, 0x0f, 0xb4, 0xe5, 0x00, 0x01, 0x00, 0x0e,
+ 0x00, 0x01, 0x00, 0x01, 0x1a, 0x6b, 0xf3, 0x30,
+ 0x3c, 0x97, 0x0e, 0xcf, 0xa3, 0x7d, 0x00, 0x03,
+ 0x00, 0x5e, 0x0e, 0xcf, 0xa3, 0x7d, 0x00, 0x00,
+ 0x00, 0x50, 0x00, 0x00, 0x00, 0x78, 0x00, 0x05,
+ 0x00, 0x18, 0x20, 0x01, 0x0d, 0xb8, 0xde, 0xad,
+ 0xbe, 0xef, 0x78, 0xee, 0x1c, 0xf3, 0x09, 0x3c,
+ 0x55, 0xad, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00,
+ 0x00, 0xb4, 0x00, 0x0d, 0x00, 0x32, 0x00, 0x00,
+ 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x28,
+ 0x65, 0x73, 0x29, 0x20, 0x72, 0x65, 0x6e, 0x65,
+ 0x77, 0x65, 0x64, 0x2e, 0x20, 0x47, 0x72, 0x65,
+ 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x66,
+ 0x72, 0x6f, 0x6d, 0x20, 0x70, 0x6c, 0x61, 0x6e,
+ 0x65, 0x74, 0x20, 0x45, 0x61, 0x72, 0x74, 0x68,
+ 0x00, 0x17, 0x00, 0x10, 0x20, 0x01, 0x0d, 0xb8,
+ 0xde, 0xad, 0xbe, 0xef, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x0b,
+ 0x03, 0x6c, 0x61, 0x62, 0x05, 0x69, 0x6e, 0x74,
+ 0x72, 0x61, 0x00, 0x00, 0x1f, 0x00, 0x10, 0x20,
+ 0x01, 0x0d, 0xb8, 0xde, 0xad, 0xbe, 0xef, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x02, 0x00, 0x0e, 0x00, 0x01, 0x00, 0x01, 0x19,
+ 0x40, 0x5c, 0x53, 0x78, 0x2b, 0xcb, 0xb3, 0x6d,
+ 0x53, 0x00, 0x07, 0x00, 0x01, 0x00
+};
+
+static uint8_t msg_reply[173] = {
+ 0x07, 0xf7, 0x4e, 0x57, 0x00, 0x02, 0x00, 0x0e,
+ 0x00, 0x01, 0x00, 0x01, 0x19, 0x40, 0x5c, 0x53,
+ 0x78, 0x2b, 0xcb, 0xb3, 0x6d, 0x53, 0x00, 0x01,
+ 0x00, 0x0e, 0x00, 0x01, 0x00, 0x01, 0x1a, 0x6b,
+ 0xf3, 0x30, 0x3c, 0x97, 0x0e, 0xcf, 0xa3, 0x7d,
+ 0x00, 0x03, 0x00, 0x4a, 0x0e, 0xcf, 0xa3, 0x7d,
+ 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x78,
+ 0x00, 0x05, 0x00, 0x18, 0x20, 0x01, 0x0d, 0xb8,
+ 0xde, 0xad, 0xbe, 0xef, 0x78, 0xee, 0x1c, 0xf3,
+ 0x09, 0x3c, 0x55, 0xad, 0x00, 0x00, 0x00, 0x96,
+ 0x00, 0x00, 0x00, 0xb4, 0x00, 0x0d, 0x00, 0x1e,
+ 0x00, 0x00, 0x41, 0x6c, 0x6c, 0x20, 0x61, 0x64,
+ 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x20,
+ 0x77, 0x65, 0x72, 0x65, 0x20, 0x61, 0x73, 0x73,
+ 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2e, 0x00, 0x17,
+ 0x00, 0x10, 0x20, 0x01, 0x0d, 0xb8, 0xde, 0xad,
+ 0xbe, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x18, 0x00, 0x0b, 0x03, 0x6c,
+ 0x61, 0x62, 0x05, 0x69, 0x6e, 0x74, 0x72, 0x61,
+ 0x00, 0x00, 0x1f, 0x00, 0x10, 0x20, 0x01, 0x0d,
+ 0xb8, 0xde, 0xad, 0xbe, 0xef, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01
+};
+
+static int test_advertise_option(sd_event *e) {
+ _cleanup_dhcp6_lease_free_ sd_dhcp6_lease *lease = NULL;
+ DHCP6Message *advertise = (DHCP6Message *)msg_advertise;
+ uint8_t *optval, *opt = &msg_advertise[sizeof(DHCP6Message)];
+ uint16_t optcode;
+ size_t optlen, len = sizeof(msg_advertise);
+ be32_t val;
+ uint8_t preference = 255;
+ struct in6_addr addr;
+ uint32_t lt_pref, lt_valid;
+ int r;
+ bool opt_clientid = false;
+
+ if (verbose)
+ printf("* %s\n", __FUNCTION__);
+
+ assert_se(dhcp6_lease_new(&lease) >= 0);
+
+ assert_se(advertise->type == DHCP6_ADVERTISE);
+ assert_se((be32toh(advertise->transaction_id) & 0x00ffffff) ==
+ 0x0fb4e5);
+
+ while ((r = dhcp6_option_parse(&opt, &len, &optcode, &optlen,
+ &optval)) >= 0) {
+
+ switch(optcode) {
+ case DHCP6_OPTION_CLIENTID:
+ assert_se(optlen == 14);
+
+ opt_clientid = true;
+ break;
+
+ case DHCP6_OPTION_IA_NA:
+ assert_se(optlen == 94);
+ assert_se(!memcmp(optval, &msg_advertise[26], optlen));
+
+ val = htobe32(0x0ecfa37d);
+ assert_se(!memcmp(optval, &val, sizeof(val)));
+
+ val = htobe32(80);
+ assert_se(!memcmp(optval + 4, &val, sizeof(val)));
+
+ val = htobe32(120);
+ assert_se(!memcmp(optval + 8, &val, sizeof(val)));
+
+ assert_se(dhcp6_option_parse_ia(&optval, &optlen,
+ optcode,
+ &lease->ia) >= 0);
+
+ break;
+
+ case DHCP6_OPTION_SERVERID:
+ assert_se(optlen == 14);
+ assert_se(!memcmp(optval, &msg_advertise[179], optlen));
+
+ assert_se(dhcp6_lease_set_serverid(lease, optval,
+ optlen) >= 0);
+ break;
+
+ case DHCP6_OPTION_PREFERENCE:
+ assert_se(optlen == 1);
+ assert_se(!*optval);
+
+ assert_se(dhcp6_lease_set_preference(lease,
+ *optval) >= 0);
+ break;
+
+ default:
+ break;
+ }
+ }
+
+
+ assert_se(r == -ENOMSG);
+
+ assert_se(opt_clientid);
+
+ assert_se(sd_dhcp6_lease_get_first_address(lease, &addr, <_pref,
+ <_valid) >= 0);
+ assert_se(!memcmp(&addr, &msg_advertise[42], sizeof(addr)));
+ assert_se(lt_pref == 150);
+ assert_se(lt_valid == 180);
+ assert_se(sd_dhcp6_lease_get_next_address(lease, &addr, <_pref,
+ <_valid) == -ENOMSG);
+
+ assert_se(sd_dhcp6_lease_get_first_address(lease, &addr, <_pref,
+ <_valid) >= 0);
+ assert_se(!memcmp(&addr, &msg_advertise[42], sizeof(addr)));
+ assert_se(sd_dhcp6_lease_get_next_address(lease, &addr, <_pref,
+ <_valid) == -ENOMSG);
+ assert_se(sd_dhcp6_lease_get_next_address(lease, &addr, <_pref,
+ <_valid) == -ENOMSG);
+ assert_se(sd_dhcp6_lease_get_first_address(lease, &addr, <_pref,
+ <_valid) >= 0);
+ assert_se(!memcmp(&addr, &msg_advertise[42], sizeof(addr)));
+ assert_se(sd_dhcp6_lease_get_next_address(lease, &addr, <_pref,
+ <_valid) == -ENOMSG);
+
+ assert_se(dhcp6_lease_get_serverid(lease, &opt, &len) >= 0);
+ assert_se(len == 14);
+ assert_se(!memcmp(opt, &msg_advertise[179], len));
+
+ assert_se(dhcp6_lease_get_preference(lease, &preference) >= 0);
+ assert_se(preference == 0);
+
+ return 0;
+}
+
+static int test_hangcheck(sd_event_source *s, uint64_t usec, void *userdata) {
+ assert_not_reached("Test case should have completed in 2 seconds");
+
+ return 0;
+}
+
+int detect_vm(const char **id) {
+ return 1;
+}
+
+int detect_container(const char **id) {
+ return 1;
+}
+
+int detect_virtualization(const char **id) {
+ return 1;
+}
+
+int dhcp6_network_bind_udp_socket(int index, struct in6_addr *local_address) {
+ assert_se(index == test_index);
+
+ if (socketpair(AF_UNIX, SOCK_STREAM, 0, test_dhcp_fd) < 0)
+ return -errno;
+
+ return test_dhcp_fd[0];
+}
+
+static int test_client_send_reply(DHCP6Message *request) {
+ DHCP6Message reply;
+
+ reply.transaction_id = request->transaction_id;
+ reply.type = DHCP6_REPLY;
+
+ memcpy(msg_reply, &reply.transaction_id, 4);
+
+ memcpy(&msg_reply[26], test_duid, sizeof(test_duid));
+
+ memcpy(&msg_reply[44], &test_iaid, sizeof(test_iaid));
+
+ assert_se(write(test_dhcp_fd[1], msg_reply, sizeof(msg_reply))
+ == sizeof(msg_reply));
+
+ return 0;
+}
+
+static int test_client_verify_request(DHCP6Message *request, uint8_t *option,
+ size_t len) {
+ _cleanup_dhcp6_lease_free_ sd_dhcp6_lease *lease = NULL;
+ uint8_t *optval;
+ uint16_t optcode;
+ size_t optlen;
+ bool found_clientid = false, found_iana = false, found_serverid = false;
+ int r;
+ struct in6_addr addr;
+ be32_t val;
+ uint32_t lt_pref, lt_valid;
+
+ assert_se(request->type == DHCP6_REQUEST);
+
+ assert_se(dhcp6_lease_new(&lease) >= 0);
+
+ while ((r = dhcp6_option_parse(&option, &len,
+ &optcode, &optlen, &optval)) >= 0) {
+ switch(optcode) {
+ case DHCP6_OPTION_CLIENTID:
+ assert_se(!found_clientid);
+ found_clientid = true;
+
+ assert_se(!memcmp(optval, &test_duid,
+ sizeof(test_duid)));
+
+ break;
+
+ case DHCP6_OPTION_IA_NA:
+ assert_se(!found_iana);
+ found_iana = true;
+
+
+ assert_se(optlen == 40);
+ assert_se(!memcmp(optval, &test_iaid, sizeof(test_iaid)));
+
+ val = htobe32(80);
+ assert_se(!memcmp(optval + 4, &val, sizeof(val)));
+
+ val = htobe32(120);
+ assert_se(!memcmp(optval + 8, &val, sizeof(val)));
+
+ assert_se(!dhcp6_option_parse_ia(&optval, &optlen,
+ optcode, &lease->ia));
+
+ break;
+
+ case DHCP6_OPTION_SERVERID:
+ assert_se(!found_serverid);
+ found_serverid = true;
+
+ assert_se(optlen == 14);
+ assert_se(!memcmp(&msg_advertise[179], optval, optlen));
+
+ break;
+ }
+ }
+
+ assert_se(r == -ENOMSG);
+ assert_se(found_clientid && found_iana && found_serverid);
+
+ assert_se(sd_dhcp6_lease_get_first_address(lease, &addr, <_pref,
+ <_valid) >= 0);
+ assert_se(!memcmp(&addr, &msg_advertise[42], sizeof(addr)));
+ assert_se(lt_pref == 150);
+ assert_se(lt_valid == 180);
+
+ assert_se(sd_dhcp6_lease_get_next_address(lease, &addr, <_pref,
+ <_valid) == -ENOMSG);
+
+ return 0;
+}
+
+static int test_client_send_advertise(DHCP6Message *solicit)
+{
+ DHCP6Message advertise;
+
+ advertise.transaction_id = solicit->transaction_id;
+ advertise.type = DHCP6_ADVERTISE;
+
+ memcpy(msg_advertise, &advertise.transaction_id, 4);
+
+ memcpy(&msg_advertise[8], test_duid, sizeof(test_duid));
+
+ memcpy(&msg_advertise[26], &test_iaid, sizeof(test_iaid));
+
+ assert_se(write(test_dhcp_fd[1], msg_advertise, sizeof(msg_advertise))
+ == sizeof(msg_advertise));
+
+ return 0;
+}
+
+static int test_client_verify_solicit(DHCP6Message *solicit, uint8_t *option,
+ size_t len) {
+ uint8_t *optval;
+ uint16_t optcode;
+ size_t optlen;
+ bool found_clientid = false, found_iana = false;
+ int r;
+
+ assert_se(solicit->type == DHCP6_SOLICIT);
+
+ while ((r = dhcp6_option_parse(&option, &len,
+ &optcode, &optlen, &optval)) >= 0) {
+ switch(optcode) {
+ case DHCP6_OPTION_CLIENTID:
+ assert_se(!found_clientid);
+ found_clientid = true;
+
+ assert_se(optlen == sizeof(test_duid));
+ memcpy(&test_duid, optval, sizeof(test_duid));
+
+ break;
+
+ case DHCP6_OPTION_IA_NA:
+ assert_se(!found_iana);
+ found_iana = true;
+
+ assert_se(optlen == 12);
+
+ memcpy(&test_iaid, optval, sizeof(test_iaid));
+
+ break;
+ }
+ }
+
+ assert_se(r == -ENOMSG);
+ assert_se(found_clientid && found_iana);
+
+ return 0;
+}
+
+int dhcp6_network_send_udp_socket(int s, struct in6_addr *server_address,
+ const void *packet, size_t len) {
+ struct in6_addr mcast =
+ IN6ADDR_ALL_DHCP6_RELAY_AGENTS_AND_SERVERS_INIT;
+ DHCP6Message *message;
+ uint8_t *option;
+
+ assert_se(s == test_dhcp_fd[0]);
+ assert_se(server_address);
+ assert_se(packet);
+ assert_se(len > sizeof(DHCP6Message) + 4);
+
+ assert_se(IN6_ARE_ADDR_EQUAL(server_address, &mcast));
+
+ message = (DHCP6Message *)packet;
+ option = (uint8_t *)(message + 1);
+ len -= sizeof(DHCP6Message);
+
+ assert_se(message->transaction_id & 0x00ffffff);
+
+ if (test_client_message_num == 0) {
+ test_client_verify_solicit(message, option, len);
+ test_client_send_advertise(message);
+ test_client_message_num++;
+ } else if (test_client_message_num == 1) {
+ test_client_verify_request(message, option, len);
+ test_client_send_reply(message);
+ test_client_message_num++;
+ }
+
+ return len;
+}
+
+static void test_client_solicit_cb(sd_dhcp6_client *client, int event,
+ void *userdata) {
+ sd_event *e = userdata;
+
+ assert_se(e);
+ assert_se(event == DHCP6_EVENT_IP_ACQUIRE);
+
+ assert_se(sd_dhcp6_client_set_request_option(client, DHCP6_OPTION_DNS_SERVERS) == -EBUSY);
+
+ if (verbose)
+ printf(" got DHCPv6 event %d\n", event);
+
+ sd_event_exit(e, 0);
+}
+
+static int test_client_solicit(sd_event *e) {
+ sd_dhcp6_client *client;
+ usec_t time_now = now(CLOCK_MONOTONIC);
+
+ if (verbose)
+ printf("* %s\n", __FUNCTION__);
+
+ assert_se(sd_dhcp6_client_new(&client) >= 0);
+ assert_se(client);
+
+ assert_se(sd_dhcp6_client_attach_event(client, e, 0) >= 0);
+
+ assert_se(sd_dhcp6_client_set_index(client, test_index) == 0);
+ assert_se(sd_dhcp6_client_set_mac(client, &mac_addr) >= 0);
+
+ assert_se(sd_dhcp6_client_set_callback(client,
+ test_client_solicit_cb, e) >= 0);
+
+ assert_se(sd_event_add_time(e, &hangcheck, CLOCK_MONOTONIC,
+ time_now + 2 * USEC_PER_SEC, 0,
+ test_hangcheck, NULL) >= 0);
+
+ assert_se(sd_dhcp6_client_start(client) >= 0);
+
+ sd_event_loop(e);
+
+ hangcheck = sd_event_source_unref(hangcheck);
+
+ assert_se(!sd_dhcp6_client_unref(client));
+
+ test_dhcp_fd[1] = safe_close(test_dhcp_fd[1]);
+
+ return 0;
+}
+
+int main(int argc, char *argv[]) {
+ _cleanup_event_unref_ sd_event *e;
+
+ assert_se(sd_event_new(&e) >= 0);
+
+ log_set_max_level(LOG_DEBUG);
+ log_parse_environment();
+ log_open();
+
+ test_client_basic(e);
+ test_option(e);
+ test_advertise_option(e);
+ test_client_solicit(e);
+
+ assert_se(!sd_event_unref(e));
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/icmp6.h>
+
+#include "socket-util.h"
+
+#include "dhcp6-internal.h"
+#include "sd-icmp6-nd.h"
+
+static struct ether_addr mac_addr = {
+ .ether_addr_octet = {'A', 'B', 'C', '1', '2', '3'}
+};
+
+static bool verbose = false;
+static sd_event_source *test_hangcheck;
+static int test_fd[2];
+
+static int test_rs_hangcheck(sd_event_source *s, uint64_t usec,
+ void *userdata) {
+ assert(false);
+
+ return 0;
+}
+
+int dhcp_network_icmp6_bind_router_solicitation(int index) {
+ assert(index == 42);
+
+ if (socketpair(AF_UNIX, SOCK_DGRAM, 0, test_fd) < 0)
+ return -errno;
+
+ return test_fd[0];
+}
+
+static int send_ra(uint8_t flags) {
+ uint8_t advertisement[] = {
+ 0x86, 0x00, 0xde, 0x83, 0x40, 0xc0, 0x00, 0xb4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x04, 0x40, 0xc0, 0x00, 0x00, 0x01, 0xf4,
+ 0x00, 0x00, 0x01, 0xb8, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x01, 0x0d, 0xb8, 0xde, 0xad, 0xbe, 0xef,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x19, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
+ 0x20, 0x01, 0x0d, 0xb8, 0xde, 0xad, 0xbe, 0xef,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x1f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
+ 0x03, 0x6c, 0x61, 0x62, 0x05, 0x69, 0x6e, 0x74,
+ 0x72, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x78, 0x2b, 0xcb, 0xb3, 0x6d, 0x53,
+ };
+
+ advertisement[5] = flags;
+
+ assert(write(test_fd[1], advertisement, sizeof(advertisement)) ==
+ sizeof(advertisement));
+
+ if (verbose)
+ printf(" sent RA with flag 0x%02x\n", flags);
+
+ return 0;
+}
+
+int dhcp_network_icmp6_send_router_solicitation(int s, const struct ether_addr *ether_addr) {
+ return send_ra(0);
+}
+
+static void test_rs_done(sd_icmp6_nd *nd, int event, void *userdata) {
+ sd_event *e = userdata;
+ static int idx = 0;
+ struct {
+ uint8_t flag;
+ int event;
+ } flag_event[] = {
+ { 0, ICMP6_EVENT_ROUTER_ADVERTISMENT_NONE },
+ { ND_RA_FLAG_OTHER, ICMP6_EVENT_ROUTER_ADVERTISMENT_OTHER },
+ { ND_RA_FLAG_MANAGED, ICMP6_EVENT_ROUTER_ADVERTISMENT_MANAGED }
+ };
+ assert(nd);
+
+ assert(event == flag_event[idx].event);
+ idx++;
+
+ if (verbose)
+ printf(" got event %d\n", event);
+
+ if (idx < 3)
+ send_ra(flag_event[idx].flag);
+ else
+ sd_event_exit(e, 0);
+}
+
+static void test_rs(sd_event *e) {
+ usec_t time_now = now(CLOCK_MONOTONIC);
+ sd_icmp6_nd *nd;
+
+ if (verbose)
+ printf("* %s\n", __FUNCTION__);
+
+ assert(sd_icmp6_nd_new(&nd) >= 0);
+ assert(nd);
+
+ assert(sd_icmp6_nd_attach_event(nd, e, 0) >= 0);
+
+ assert(sd_icmp6_nd_set_index(nd, 42) >= 0);
+ assert(sd_icmp6_nd_set_mac(nd, &mac_addr) >= 0);
+ assert(sd_icmp6_nd_set_callback(nd, test_rs_done, e) >= 0);
+
+ assert(sd_event_add_time(e, &test_hangcheck, CLOCK_MONOTONIC,
+ time_now + 2 *USEC_PER_SEC, 0,
+ test_rs_hangcheck, NULL) >= 0);
+
+ assert(sd_icmp6_nd_stop(nd) >= 0);
+ assert(sd_icmp6_router_solicitation_start(nd) >= 0);
+ assert(sd_icmp6_nd_stop(nd) >= 0);
+
+ assert(sd_icmp6_router_solicitation_start(nd) >= 0);
+
+ sd_event_loop(e);
+
+ test_hangcheck = sd_event_source_unref(test_hangcheck);
+
+ nd = sd_icmp6_nd_unref(nd);
+ assert(!nd);
+
+ close(test_fd[1]);
+}
+
+int main(int argc, char *argv[]) {
+ sd_event *e;
+
+ assert(sd_event_new(&e) >= 0);
+
+ log_set_max_level(LOG_DEBUG);
+ log_parse_environment();
+ log_open();
+
+ test_rs(e);
+
+ return 0;
+}
assert(m->n_ref > 0);
m->n_ref--;
- if (m->n_ref <= 0)
- message_free(m);
+ if (m->n_ref > 0)
+ return NULL;
+ message_free(m);
return NULL;
}
static void bus_reset_queues(sd_bus *b) {
assert(b);
- /* NOTE: We _must_ decrement b->Xqueue_size before calling
- * sd_bus_message_unref() for _each_ message. Otherwise the
- * self-reference checks in sd_bus_unref() will fire for each message.
- * We would thus recurse into sd_bus_message_unref() and trigger the
- * assert(m->n_ref > 0) */
-
while (b->rqueue_size > 0)
sd_bus_message_unref(b->rqueue[--b->rqueue_size]);
else
return -EINVAL;
- if (r < 0)
+ if (r < 0) {
+ sd_bus_close(bus);
return r;
+ }
return bus_send_hello(bus);
}
int bus_set_address_system_remote(sd_bus *b, const char *host) {
_cleanup_free_ char *e = NULL;
+ char *m = NULL, *c = NULL;
assert(b);
assert(host);
- e = bus_address_escape(host);
- if (!e)
- return -ENOMEM;
+ /* Let's see if we shall enter some container */
+ m = strchr(host, ':');
+ if (m) {
+ m++;
+
+ /* Let's make sure this is not a port of some kind,
+ * and is a valid machine name. */
+ if (!in_charset(m, "0123456789") && machine_name_is_valid(m)) {
+ char *t;
- b->address = strjoin("unixexec:path=ssh,argv1=-xT,argv2=", e, ",argv3=systemd-stdio-bridge", NULL);
+ /* Cut out the host part */
+ t = strndupa(host, m - host - 1);
+ e = bus_address_escape(t);
+ if (!e)
+ return -ENOMEM;
+
+ c = strappenda(",argv4=--machine=", m);
+ }
+ }
+
+ if (!e) {
+ e = bus_address_escape(host);
+ if (!e)
+ return -ENOMEM;
+ }
+
+ b->address = strjoin("unixexec:path=ssh,argv1=-xT,argv2=", e, ",argv3=systemd-stdio-bridge", c, NULL);
if (!b->address)
return -ENOMEM;
if (!bus)
return NULL;
- /* TODO/FIXME: It's naive to think REFCNT_GET() is thread-safe in any
- * way but exclusive REFCNT_DEC(). The current logic _must_ lock around
- * REFCNT_GET() until REFCNT_DEC() or two threads might end up in
- * parallel in bus_reset_queues(). But locking would totally break the
- * recursion we introduce by bus_reset_queues()...
- * (Imagine one thread in sd_bus_message_unref() setting n_ref to 0 and
- * thus calling into sd_bus_unref(). If at the same time the real
- * thread calls sd_bus_unref(), both end up with "q == true" and will
- * call into bus_reset_queues().
- * If we require the main bus to be alive until all dispatch threads
- * are done, there is no need to do ref-counts at all. So in both ways,
- * the REFCNT thing is humbug.)
- *
- * On a second note: messages are *not* required to have ->bus set nor
- * does it have to be _this_ bus that they're assigned to. This whole
- * ref-cnt checking breaks apart if a message is not assigned to us.
- * (which is _very_ easy to trigger with the current API). */
-
- if (REFCNT_GET(bus->n_ref) == bus->rqueue_size + bus->wqueue_size + 1) {
- bool q = true;
-
- for (i = 0; i < bus->rqueue_size; i++)
- if (bus->rqueue[i]->n_ref > 1) {
- q = false;
- break;
- }
-
- if (q) {
- for (i = 0; i < bus->wqueue_size; i++)
- if (bus->wqueue[i]->n_ref > 1) {
- q = false;
- break;
- }
- }
-
- /* We are the only holders on the messages, and the
- * messages are the only holders on us, so let's drop
- * the messages and thus implicitly also kill our own
- * last references.
- * bus_reset_queues() decrements the queue-size before
- * calling into sd_bus_message_unref(). Thus, it
- * protects us from recursion. */
-
- if (q)
- bus_reset_queues(bus);
- }
-
i = REFCNT_DEC(bus->n_ref);
if (i > 0)
return NULL;
assert(event);
sd_bus_flush(bus);
+ sd_bus_close(bus);
return 1;
}
const char *p;
int r;
- assert_return(filename_is_safe(machine), -EINVAL);
+ assert_return(machine_name_is_valid(machine), -EINVAL);
assert_return(class, -EINVAL);
p = strappenda("/run/systemd/machines/", machine);
--- /dev/null
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "util.h"
+#include "architecture.h"
+#include "path-util.h"
+#include "strv.h"
+#include "sd-path.h"
+
+static int from_environment(const char *envname, const char *fallback, const char **ret) {
+ assert(ret);
+
+ if (envname) {
+ const char *e;
+
+ e = secure_getenv(envname);
+ if (e && path_is_absolute(e)) {
+ *ret = e;
+ return 0;
+ }
+ }
+
+ if (fallback) {
+ *ret = fallback;
+ return 0;
+ }
+
+ return -ENXIO;
+}
+
+static int from_home_dir(const char *envname, const char *suffix, char **buffer, const char **ret) {
+ _cleanup_free_ char *h = NULL;
+ char *cc = NULL;
+ int r;
+
+ assert(suffix);
+ assert(buffer);
+ assert(ret);
+
+ if (envname) {
+ const char *e = NULL;
+
+ e = secure_getenv(envname);
+ if (e && path_is_absolute(e)) {
+ *ret = e;
+ return 0;
+ }
+ }
+
+ r = get_home_dir(&h);
+ if (r < 0)
+ return r;
+
+ if (endswith(h, "/"))
+ cc = strappend(h, suffix);
+ else
+ cc = strjoin(h, "/", suffix, NULL);
+ if (!cc)
+ return -ENOMEM;
+
+ *buffer = cc;
+ *ret = cc;
+ return 0;
+}
+
+static int from_user_dir(const char *field, char **buffer, const char **ret) {
+ _cleanup_fclose_ FILE *f = NULL;
+ _cleanup_free_ char *b = NULL;
+ const char *fn = NULL;
+ char line[LINE_MAX];
+ size_t n;
+ int r;
+
+ assert(field);
+ assert(buffer);
+ assert(ret);
+
+ r = from_home_dir(NULL, ".config/user-dirs.dirs", &b, &fn);
+ if (r < 0)
+ return r;
+
+ f = fopen(fn, "re");
+ if (!f) {
+ if (errno == ENOENT)
+ goto fallback;
+
+ return -errno;
+ }
+
+ /* This is an awful parse, but it follows closely what
+ * xdg-user-dirs does upstream */
+
+ n = strlen(field);
+ FOREACH_LINE(line, f, return -errno) {
+ char *l, *p, *e;
+
+ l = strstrip(line);
+
+ if (!strneq(l, field, n))
+ continue;
+
+ p = l + n;
+ p += strspn(p, WHITESPACE);
+
+ if (*p != '=')
+ continue;
+ p++;
+
+ p += strspn(p, WHITESPACE);
+
+ if (*p != '"')
+ continue;
+ p++;
+
+ e = strrchr(p, '"');
+ if (!e)
+ continue;
+ *e = 0;
+
+ /* Three syntaxes permitted: relative to $HOME, $HOME itself, and absolute path */
+ if (startswith(p, "$HOME/")) {
+ _cleanup_free_ char *h = NULL;
+ char *cc;
+
+ r = get_home_dir(&h);
+ if (r < 0)
+ return r;
+
+ cc = strappend(h, p+5);
+ if (!cc)
+ return -ENOMEM;
+
+ *buffer = cc;
+ *ret = cc;
+ return 0;
+ } else if (streq(p, "$HOME")) {
+
+ r = get_home_dir(buffer);
+ if (r < 0)
+ return r;
+
+ *ret = *buffer;
+ return 0;
+ } else if (path_is_absolute(p)) {
+ char *copy;
+
+ copy = strdup(p);
+ if (!copy)
+ return -ENOMEM;
+
+ *buffer = copy;
+ *ret = copy;
+ return 0;
+ }
+ }
+
+fallback:
+ /* The desktop directory defaults to $HOME/Desktop, the others to $HOME */
+ if (streq(field, "XDG_DESKTOP_DIR")) {
+ _cleanup_free_ char *h = NULL;
+ char *cc;
+
+ r = get_home_dir(&h);
+ if (r < 0)
+ return r;
+
+ cc = strappend(h, "/Desktop");
+ if (!cc)
+ return -ENOMEM;
+
+ *buffer = cc;
+ *ret = cc;
+ } else {
+
+ r = get_home_dir(buffer);
+ if (r < 0)
+ return r;
+
+ *ret = *buffer;
+ }
+
+ return 0;
+}
+
+static int get_path(uint64_t type, char **buffer, const char **ret) {
+ int r;
+
+ assert(buffer);
+ assert(ret);
+
+ switch (type) {
+
+ case SD_PATH_TEMPORARY:
+ return from_environment("TMPDIR", "/tmp", ret);
+
+ case SD_PATH_TEMPORARY_LARGE:
+ return from_environment("TMPDIR", "/var/tmp", ret);
+
+ case SD_PATH_SYSTEM_BINARIES:
+ *ret = "/usr/bin";
+ return 0;
+
+ case SD_PATH_SYSTEM_INCLUDE:
+ *ret = "/usr/include";
+ return 0;
+
+ case SD_PATH_SYSTEM_LIBRARY_PRIVATE:
+ *ret = "/usr/lib";
+ return 0;
+
+ case SD_PATH_SYSTEM_LIBRARY_ARCH:
+ *ret = LIBDIR;
+ return 0;
+
+ case SD_PATH_SYSTEM_SHARED:
+ *ret = "/usr/share";
+ return 0;
+
+ case SD_PATH_SYSTEM_CONFIGURATION_FACTORY:
+ *ret = "/usr/share/factory/etc";
+ return 0;
+
+ case SD_PATH_SYSTEM_STATE_FACTORY:
+ *ret = "/usr/share/factory/var";
+ return 0;
+
+ case SD_PATH_SYSTEM_CONFIGURATION:
+ *ret = "/etc";
+ return 0;
+
+ case SD_PATH_SYSTEM_RUNTIME:
+ *ret = "/run";
+ return 0;
+
+ case SD_PATH_SYSTEM_RUNTIME_LOGS:
+ *ret = "/run/log";
+ return 0;
+
+ case SD_PATH_SYSTEM_STATE_PRIVATE:
+ *ret = "/var/lib";
+ return 0;
+
+ case SD_PATH_SYSTEM_STATE_LOGS:
+ *ret = "/var/log";
+ return 0;
+
+ case SD_PATH_SYSTEM_STATE_CACHE:
+ *ret = "/var/cache";
+ return 0;
+
+ case SD_PATH_SYSTEM_STATE_SPOOL:
+ *ret = "/var/spool";
+ return 0;
+
+ case SD_PATH_USER_BINARIES:
+ return from_home_dir(NULL, ".local/bin", buffer, ret);
+
+ case SD_PATH_USER_LIBRARY_PRIVATE:
+ return from_home_dir(NULL, ".local/lib", buffer, ret);
+
+ case SD_PATH_USER_LIBRARY_ARCH:
+ return from_home_dir(NULL, ".local/lib/" LIB_ARCH_TUPLE, buffer, ret);
+
+ case SD_PATH_USER_SHARED:
+ return from_home_dir("XDG_DATA_HOME", ".local/share", buffer, ret);
+
+ case SD_PATH_USER_CONFIGURATION:
+ return from_home_dir("XDG_CONFIG_HOME", ".config", buffer, ret);
+
+ case SD_PATH_USER_RUNTIME:
+ return from_environment("XDG_RUNTIME_DIR", NULL, ret);
+
+ case SD_PATH_USER_STATE_CACHE:
+ return from_home_dir("XDG_CACHE_HOME", ".cache", buffer, ret);
+
+ case SD_PATH_USER:
+ r = get_home_dir(buffer);
+ if (r < 0)
+ return r;
+
+ *ret = *buffer;
+ return 0;
+
+ case SD_PATH_USER_DOCUMENTS:
+ return from_user_dir("XDG_DOCUMENTS_DIR", buffer, ret);
+
+ case SD_PATH_USER_MUSIC:
+ return from_user_dir("XDG_MUSIC_DIR", buffer, ret);
+
+ case SD_PATH_USER_PICTURES:
+ return from_user_dir("XDG_PICTURES_DIR", buffer, ret);
+
+ case SD_PATH_USER_VIDEOS:
+ return from_user_dir("XDG_VIDEOS_DIR", buffer, ret);
+
+ case SD_PATH_USER_DOWNLOAD:
+ return from_user_dir("XDG_DOWNLOAD_DIR", buffer, ret);
+
+ case SD_PATH_USER_PUBLIC:
+ return from_user_dir("XDG_PUBLICSHARE_DIR", buffer, ret);
+
+ case SD_PATH_USER_TEMPLATES:
+ return from_user_dir("XDG_TEMPLATES_DIR", buffer, ret);
+
+ case SD_PATH_USER_DESKTOP:
+ return from_user_dir("XDG_DESKTOP_DIR", buffer, ret);
+ }
+
+ return -ENOTSUP;
+}
+
+int sd_path_home(uint64_t type, const char *suffix, char **path) {
+ char *buffer = NULL, *cc;
+ const char *ret;
+ int r;
+
+ assert_return(path, -EINVAL);
+
+ if (IN_SET(type,
+ SD_PATH_SEARCH_BINARIES,
+ SD_PATH_SEARCH_LIBRARY_PRIVATE,
+ SD_PATH_SEARCH_LIBRARY_ARCH,
+ SD_PATH_SEARCH_SHARED,
+ SD_PATH_SEARCH_CONFIGURATION_FACTORY,
+ SD_PATH_SEARCH_STATE_FACTORY,
+ SD_PATH_SEARCH_CONFIGURATION)) {
+
+ _cleanup_strv_free_ char **l = NULL;
+
+ r = sd_path_search(type, suffix, &l);
+ if (r < 0)
+ return r;
+
+ buffer = strv_join(l, ":");
+ if (!buffer)
+ return -ENOMEM;
+
+ *path = buffer;
+ return 0;
+ }
+
+ r = get_path(type, &buffer, &ret);
+ if (r < 0)
+ return r;
+
+ if (!suffix) {
+ if (!buffer) {
+ buffer = strdup(ret);
+ if (!buffer)
+ return -ENOMEM;
+ }
+
+ *path = buffer;
+ return 0;
+ }
+
+ suffix += strspn(suffix, "/");
+
+ if (endswith(ret, "/"))
+ cc = strappend(ret, suffix);
+ else
+ cc = strjoin(ret, "/", suffix, NULL);
+
+ free(buffer);
+
+ if (!cc)
+ return -ENOMEM;
+
+ *path = cc;
+ return 0;
+}
+
+static int search_from_environment(
+ char ***list,
+ const char *env_home,
+ const char *home_suffix,
+ const char *env_search,
+ bool env_search_sufficient,
+ const char *first, ...) {
+
+ const char *e;
+ char *h = NULL;
+ char **l = NULL;
+ int r;
+
+ assert(list);
+
+ if (env_search) {
+ e = secure_getenv(env_search);
+ if (e) {
+ l = strv_split(e, ":");
+ if (!l)
+ return -ENOMEM;
+
+ if (env_search_sufficient) {
+ *list = l;
+ return 0;
+ }
+ }
+ }
+
+ if (!l && first) {
+ va_list ap;
+
+ va_start(ap, first);
+ l = strv_new_ap(first, ap);
+ va_end(ap);
+
+ if (!l)
+ return -ENOMEM;
+ }
+
+ if (env_home) {
+ e = secure_getenv(env_home);
+ if (e && path_is_absolute(e)) {
+ h = strdup(e);
+ if (!h) {
+ strv_free(l);
+ return -ENOMEM;
+ }
+ }
+ }
+
+ if (!h && home_suffix) {
+ e = secure_getenv("HOME");
+ if (e && path_is_absolute(e)) {
+ if (endswith(e, "/"))
+ h = strappend(e, home_suffix);
+ else
+ h = strjoin(e, "/", home_suffix, NULL);
+
+ if (!h) {
+ strv_free(l);
+ return -ENOMEM;
+ }
+ }
+ }
+
+ if (h) {
+ r = strv_consume_prepend(&l, h);
+ if (r < 0) {
+ strv_free(l);
+ return -ENOMEM;
+ }
+ }
+
+ *list = l;
+ return 0;
+}
+
+static int get_search(uint64_t type, char ***list) {
+
+ assert(list);
+
+ switch(type) {
+
+ case SD_PATH_SEARCH_BINARIES:
+ return search_from_environment(list,
+ NULL,
+ ".local/bin",
+ "PATH",
+ true,
+ "/usr/local/sbin",
+ "/usr/local/bin",
+ "/usr/sbin",
+ "/usr/bin",
+#ifdef HAVE_SPLIT_USR
+ "/sbin",
+ "/bin",
+#endif
+ NULL);
+
+ case SD_PATH_SEARCH_LIBRARY_PRIVATE:
+ return search_from_environment(list,
+ NULL,
+ ".local/lib",
+ NULL,
+ false,
+ "/usr/local/lib",
+ "/usr/lib",
+#ifdef HAVE_SPLIT_USR
+ "/lib",
+#endif
+ NULL);
+
+ case SD_PATH_SEARCH_LIBRARY_ARCH:
+ return search_from_environment(list,
+ NULL,
+ ".local/lib/" LIB_ARCH_TUPLE,
+ "LD_LIBRARY_PATH",
+ true,
+ LIBDIR,
+#ifdef HAVE_SPLIT_USR
+ ROOTLIBDIR,
+#endif
+ NULL);
+
+ case SD_PATH_SEARCH_SHARED:
+ return search_from_environment(list,
+ "XDG_DATA_HOME",
+ ".local/share",
+ "XDG_DATA_DIRS",
+ false,
+ "/usr/local/share",
+ "/usr/share",
+ NULL);
+
+ case SD_PATH_SEARCH_CONFIGURATION_FACTORY:
+ return search_from_environment(list,
+ NULL,
+ NULL,
+ NULL,
+ false,
+ "/usr/local/share/factory/etc",
+ "/usr/share/factory/etc",
+ NULL);
+
+ case SD_PATH_SEARCH_STATE_FACTORY:
+ return search_from_environment(list,
+ NULL,
+ NULL,
+ NULL,
+ false,
+ "/usr/local/share/factory/var",
+ "/usr/share/factory/var",
+ NULL);
+
+ case SD_PATH_SEARCH_CONFIGURATION:
+ return search_from_environment(list,
+ "XDG_CONFIG_HOME",
+ ".config",
+ "XDG_CONFIG_DIRS",
+ false,
+ "/etc",
+ NULL);
+ }
+
+ return -ENOTSUP;
+}
+
+int sd_path_search(uint64_t type, const char *suffix, char ***paths) {
+ char **l, **i, **j, **n;
+ int r;
+
+ assert_return(paths, -EINVAL);
+
+ if (!IN_SET(type,
+ SD_PATH_SEARCH_BINARIES,
+ SD_PATH_SEARCH_LIBRARY_PRIVATE,
+ SD_PATH_SEARCH_LIBRARY_ARCH,
+ SD_PATH_SEARCH_SHARED,
+ SD_PATH_SEARCH_CONFIGURATION_FACTORY,
+ SD_PATH_SEARCH_STATE_FACTORY,
+ SD_PATH_SEARCH_CONFIGURATION)) {
+
+ char *p;
+
+ r = sd_path_home(type, suffix, &p);
+ if (r < 0)
+ return r;
+
+ l = new(char*, 2);
+ if (!l) {
+ free(p);
+ return -ENOMEM;
+ }
+
+ l[0] = p;
+ l[1] = NULL;
+
+ *paths = l;
+ return 0;
+ }
+
+ r = get_search(type, &l);
+ if (r < 0)
+ return r;
+
+ if (!suffix) {
+ *paths = l;
+ return 0;
+ }
+
+ n = new(char*, strv_length(l)+1);
+ if (!n) {
+ strv_free(l);
+ return -ENOMEM;
+ }
+
+ j = n;
+ STRV_FOREACH(i, l) {
+
+ if (endswith(*i, "/"))
+ *j = strappend(*i, suffix);
+ else
+ *j = strjoin(*i, "/", suffix, NULL);
+
+ if (!*j) {
+ strv_free(l);
+ strv_free(n);
+ return -ENOMEM;
+ }
+
+ j++;
+ }
+
+ *j = NULL;
+ *paths = n;
+ return 0;
+}
[IFLA_VLAN_PROTOCOL] = { .type = NLA_U16 },
};
+static const NLType rtnl_link_info_data_vxlan_types[IFLA_VXLAN_MAX+1] = {
+ [IFLA_VXLAN_ID] = { .type = NLA_U32 },
+ [IFLA_VXLAN_GROUP] = {.type = NLA_IN_ADDR },
+ [IFLA_VXLAN_LINK] = { .type = NLA_U32 },
+ [IFLA_VXLAN_LOCAL] = { .type = NLA_U32},
+ [IFLA_VXLAN_TTL] = { .type = NLA_U8 },
+ [IFLA_VXLAN_TOS] = { .type = NLA_U8 },
+ [IFLA_VXLAN_LEARNING] = { .type = NLA_U8 },
+ [IFLA_VXLAN_AGEING] = { .type = NLA_U32 },
+ [IFLA_VXLAN_LIMIT] = { .type = NLA_U32 },
+ [IFLA_VXLAN_PORT_RANGE] = { .type = NLA_U32},
+ [IFLA_VXLAN_PROXY] = { .type = NLA_U8 },
+ [IFLA_VXLAN_RSC] = { .type = NLA_U8 },
+ [IFLA_VXLAN_L2MISS] = { .type = NLA_U8 },
+ [IFLA_VXLAN_L3MISS] = { .type = NLA_U8 },
+};
+
static const NLType rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = {
[IFLA_BOND_MODE] = { .type = NLA_U8 },
[IFLA_BOND_ACTIVE_SLAVE] = { .type = NLA_U32 },
NL_UNION_LINK_INFO_DATA_BRIDGE,
NL_UNION_LINK_INFO_DATA_VLAN,
NL_UNION_LINK_INFO_DATA_VETH,
+ NL_UNION_LINK_INFO_DATA_DUMMY,
NL_UNION_LINK_INFO_DATA_MACVLAN,
+ NL_UNION_LINK_INFO_DATA_VXLAN,
NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL,
NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL,
NL_UNION_LINK_INFO_DATA_SIT_TUNNEL,
[NL_UNION_LINK_INFO_DATA_BRIDGE] = "bridge",
[NL_UNION_LINK_INFO_DATA_VLAN] = "vlan",
[NL_UNION_LINK_INFO_DATA_VETH] = "veth",
+ [NL_UNION_LINK_INFO_DATA_DUMMY] = "dummy",
[NL_UNION_LINK_INFO_DATA_MACVLAN] = "macvlan",
+ [NL_UNION_LINK_INFO_DATA_VXLAN] = "vxlan",
[NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = "ipip",
[NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL] = "gre",
[NL_UNION_LINK_INFO_DATA_SIT_TUNNEL] = "sit",
.types = rtnl_link_info_data_veth_types },
[NL_UNION_LINK_INFO_DATA_MACVLAN] = { .max = ELEMENTSOF(rtnl_link_info_data_macvlan_types) - 1,
.types = rtnl_link_info_data_macvlan_types },
+ [NL_UNION_LINK_INFO_DATA_VXLAN] = { .max = ELEMENTSOF(rtnl_link_info_data_vxlan_types) - 1,
+ .types = rtnl_link_info_data_vxlan_types },
[NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = { .max = ELEMENTSOF(rtnl_link_info_data_iptun_types) - 1,
.types = rtnl_link_info_data_iptun_types },
[NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL] = { .max = ELEMENTSOF(rtnl_link_info_data_ipgre_types) - 1,
***/
#include <netinet/ether.h>
+#include <net/if.h>
#include "util.h"
#include "macro.h"
#include <string.h>
#include <limits.h>
#include <sys/stat.h>
+#include <sys/inotify.h>
#include "libudev.h"
#include "libudev-private.h"
struct udev_queue {
struct udev *udev;
int refcount;
+ int fd;
};
/**
udev_queue->refcount = 1;
udev_queue->udev = udev;
+ udev_queue->fd = -1;
return udev_queue;
}
if (udev_queue->refcount > 0)
return NULL;
+ safe_close(udev_queue->fd);
+
free(udev_queue);
return NULL;
}
**/
_public_ int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue)
{
- return access("/run/udev/queue", F_OK) >= 0;
+ return access("/run/udev/queue", F_OK) < 0;
}
/**
{
return NULL;
}
+
+/**
+ * udev_queue_get_fd:
+ * @udev_queue: udev queue context
+ *
+ * Returns: a file descriptor to watch for a queue to become empty.
+ */
+_public_ int udev_queue_get_fd(struct udev_queue *udev_queue) {
+ int fd;
+ int r;
+
+ if (udev_queue->fd >= 0)
+ return udev_queue->fd;
+
+ fd = inotify_init1(IN_CLOEXEC);
+ if (fd < 0)
+ return -errno;
+
+ r = inotify_add_watch(fd, "/run/udev" , IN_DELETE);
+ if (r < 0) {
+ r = -errno;
+ close(fd);
+ return r;
+ }
+
+ udev_queue->fd = fd;
+ return fd;
+}
+
+/**
+ * udev_queue_flush:
+ * @udev_queue: udev queue context
+ *
+ * Returns: the result of clearing the watch for queue changes.
+ */
+_public_ int udev_queue_flush(struct udev_queue *udev_queue) {
+ if (udev_queue->fd < 0)
+ return -EINVAL;
+
+ return flush_fd(udev_queue->fd);
+}
int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum) __attribute__ ((deprecated));
int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
unsigned long long int start, unsigned long long int end) __attribute__ ((deprecated));
+int udev_queue_get_fd(struct udev_queue *udev_queue);
+int udev_queue_flush(struct udev_queue *udev_queue);
struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue) __attribute__ ((deprecated));
/*
udev_queue_get_udev;
udev_queue_get_udev_is_active;
udev_queue_get_udev_seqnum;
+ udev_queue_get_fd;
+ udev_queue_flush;
udev_queue_new;
udev_queue_ref;
udev_queue_unref;
int r, p;
char **l = NULL;
- r = load_env_file("/etc/locale.conf", NULL, &l);
+ r = load_env_file(NULL, "/etc/locale.conf", NULL, &l);
if (r < 0 && r != -ENOENT)
return r;
int r;
_cleanup_strv_free_ char **l = NULL;
- r = load_env_file("/etc/vconsole.conf", NULL, &l);
+ r = load_env_file(NULL, "/etc/vconsole.conf", NULL, &l);
if (r < 0 && r != -ENOENT)
return r;
}
}
- if (matching > 0 &&
- streq_ptr(c->x11_model, a[2])) {
- matching++;
-
- if (streq_ptr(c->x11_variant, a[3])) {
+ if (matching > 0) {
+ if (isempty(c->x11_model) || streq_ptr(c->x11_model, a[2])) {
matching++;
- if (streq_ptr(c->x11_options, a[4]))
+ if (streq_ptr(c->x11_variant, a[3])) {
matching++;
+
+ if (streq_ptr(c->x11_options, a[4]))
+ matching++;
+ }
}
}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <vendor>The systemd Project</vendor>
+ <vendor_url>http://www.freedesktop.org/wiki/Software/systemd</vendor_url>
+
+ <action id="org.freedesktop.locale1.set-locale">
+ <description>Set system locale</description>
+ <description xml:lang="de">Die lokale Sprachumgebung festlegen</description>
+ <description xml:lang="el">Ορισμός τοπικών ρυθμίσεων συστήματος</description>
+ <description xml:lang="fr">Définir la langue du système</description>
+ <description xml:lang="it">Configura le impostazioni regionali di sistema</description>
+ <description xml:lang="pl">Ustawienie lokalizacji systemu</description>
+ <description xml:lang="ru">Настроить системную локаль</description>
+ <message>Authentication is required to set the system locale.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen der systemweiten Spracheinstellungen erforderlich.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε τις τοπικές ρυθμίσεις του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour définir la langue du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare le impostazioni regionali di sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić lokalizację systemu.</message>
+ <message xml:lang="ru">Чтобы настроить системную локаль, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.locale1.set-keyboard</annotate>
+ </action>
+
+ <action id="org.freedesktop.locale1.set-keyboard">
+ <description>Set system keyboard settings</description>
+ <description xml:lang="de">Tastatureinstellungen des Systems festlegen</description>
+ <description xml:lang="el">Ορισμός ρυθμίσεων πληκτρολογίου συστήματος</description>
+ <description xml:lang="fr">Définir les paramètres de clavier du système</description>
+ <description xml:lang="it">Configura la tastiera di sistema</description>
+ <description xml:lang="pl">Ustawienie klawiatury systemu</description>
+ <description xml:lang="ru">Настроить параметры клавиатуры</description>
+ <message>Authentication is required to set the system keyboard settings.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen der Tastatureinstellungen des Systems erforderlich.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε τις ρυθμίσεις πληκτρολογίου του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour définir les paramètres de clavier du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare la tastiera di sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić klawiaturę systemu.</message>
+ <message xml:lang="ru">Чтобы настроить параметры клавиатуры, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+</policyconfig>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <vendor>The systemd Project</vendor>
+ <vendor_url>http://www.freedesktop.org/wiki/Software/systemd</vendor_url>
+
+ <action id="org.freedesktop.login1.inhibit-block-shutdown">
+ <description>Allow applications to inhibit system shutdown</description>
+ <description xml:lang="de">Anwendungen dürfen das Herunterfahren des Systems unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν τον τερματισμό του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher l'arrêt du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire lo spegnimento del sistema</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymywanie wyłączenia systemu</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку на выключение системы</description>
+ <message>Authentication is required to allow an application to inhibit system shutdown.</message>
+ <message xml:lang="de">Legitimierung ist notwendig, um Anwendungen das Herunterfahren des Systems zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει τον τερματισμό του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher l'arrêt du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazione di inibire lo spegnimento del sistema</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie wyłączenia systemu.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку на выключение системы, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.inhibit-delay-shutdown org.freedesktop.login1.inhibit-block-sleep org.freedesktop.login1.inhibit-delay-sleep org.freedesktop.login1.inhibit-block-idle</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-delay-shutdown">
+ <description>Allow applications to delay system shutdown</description>
+ <description xml:lang="de">Anwendungen dürfen das Herunterfahren des Systems verzögern</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να καθυστερούν τον τερματισμό του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications de retarder l'arrêt du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di ritardare lo spegnimento del sistema</description>
+ <description xml:lang="pl">Zezwolenie programom na opóźnienie wyłączenia systemu</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать задержку на выключение системы</description>
+ <message>Authentication is required to allow an application to delay system shutdown.</message>
+ <message xml:lang="de">Legitimierung ist notwendig, um Anwendungen das Verzögern des Herunterfahren des Systems zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει τον τερματισμό του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application de retarder l'arrêt du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazione di ritardare lo spegnimento del sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na opóźnienie wyłączenia systemu.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать задержку на выключение системы, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>yes</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.inhibit-delay-sleep</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-block-sleep">
+ <description>Allow applications to inhibit system sleep</description>
+ <description xml:lang="de">Anwendungen dürfen den Bereitschaftsmodus unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν την ύπνωση του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher la mise en veille du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire il sistema in pausa</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymanie uśpienia systemu</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку на засыпание системы</description>
+ <message>Authentication is required to allow an application to inhibit system sleep.</message>
+ <message xml:lang="de">Legitimierung ist erforderlich, um Anwendungen das Unterbinden des Bereitschaftsmodus zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την ύπνωση του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher la mise en veille du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazioni di inibire il sistema in pausa.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie uśpienia systemu.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку на засыпание системы, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.inhibit-delay-sleep org.freedesktop.login1.inhibit-block-idle</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-delay-sleep">
+ <description>Allow applications to delay system sleep</description>
+ <description xml:lang="de">Anwendungen dürfen den Bereitschaftsmodus verzögern</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να καθυστερούν την ύπνωση του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications de retarder la mise en veille du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di ritardare il sistema in pausa</description>
+ <description xml:lang="pl">Zezwolenie programom na opóźnienie uśpienia systemu</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать задержку на засыпание системы</description>
+ <message>Authentication is required to allow an application to delay system sleep.</message>
+ <message xml:lang="de">Legitimierung ist erforderlich, um Anwendungen das Verzögern des Bereitschaftsmodus zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να καθυστερήσει την ύπνωση του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application de retarder la mise en veille du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazioni di ritardare il sistema in pausa.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na opóźnienie uśpienia systemu.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать задержку на засыпание системы, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>yes</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-block-idle">
+ <description>Allow applications to inhibit automatic system suspend</description>
+ <description xml:lang="de">Anwendungen dürfen den automatischen Bereitschaftsmodus unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν την αυτόματη αναστολή του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher l'hibernation automatique du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire la sospesione automatica del sistema</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymanie automatycznego uśpienia systemu</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку на автоматический переход системы в ждущий режим</description>
+ <message>Authentication is required to allow an application to inhibit automatic system suspend.</message>
+ <message xml:lang="de">Legitimierung ist notwendig, um Anwendungen das Unterbinden des automatischen Bereitschaftsmodus zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την αυτόματη αναστολή του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher l'hibernation automatique du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazioni di inibire la sospensione automatica del sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie automatycznego uśpienia systemu.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку на автоматический переход системы в ждущий режим, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>yes</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-handle-power-key">
+ <description>Allow applications to inhibit system handling of the power key</description>
+ <description xml:lang="de">Anwendungen dürfen das Auswerten des Ein-/Ausschaltknopfs des Systems unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου ενεργοποίησης του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher la gestion du bouton d'alimentation du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire al sistema la gestione del tasto di accensione</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymanie obsługi klawisza zasilania przez system</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку обработки нажатий на кнопку выключения</description>
+ <message>Authentication is required to allow an application to inhibit system handling of the power key.</message>
+ <message xml:lang="de">Legitmierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung der Ein-/Ausschaltknopfs des Systems zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την διαχείριση του πλήκτρου ενεργοποίησης του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher la gestion du bouton d'alimentation du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazioni di inibire al sistema la gestione del tasto di accensione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie obsługi klawisza zasilania przez system.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку обработки нажатий на кнопку выключения, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.inhibit-handle-suspend-key org.freedesktop.login1.inhibit-handle-hibernate-key org.freedesktop.login1.inhibit-handle-lid-switch</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-handle-suspend-key">
+ <description>Allow applications to inhibit system handling of the suspend key</description>
+ <description xml:lang="de">Anwendungen dürfen das Auswerten des Bereitschaftsknopfs des Systems unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου αναστολής του συστήματος.</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher la gestion du bouton de mise en veille du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire al sistema la gestione del tasto di sospensione</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymanie obsługi klawisza uśpienia przez system</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку обработки нажатий на кнопку перехода в ждущий режим</description>
+ <message>Authentication is required to allow an application to inhibit system handling of the suspend key.</message>
+ <message xml:lang="de">Legitimierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung des Bereitschaftsknopfes des Systems zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την διαχείριση του πλήκτρου αναστολής του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher la gestion du bouton de mise en veille du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire ad un'applicazione di inibire al sistema la gestione del tasto di sospensione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie obsługi klawisza uśpienia przez system.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку обработки нажатий на кнопку перехода в ждущий режим, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.inhibit-handle-hibernate-key org.freedesktop.login1.inhibit-handle-lid-switch</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-handle-hibernate-key">
+ <description>Allow applications to inhibit system handling of the hibernate key</description>
+ <description xml:lang="de">Anwendungen dürfen das Auswerten des Knopfs für den Ruhezustand unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του πλήκτρου αδρανοποίησης του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher la gestion du bouton d'hibernation du système</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire al sistema la gestione del tasto di ibernazione</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymanie obsługi klawisza hibernacji przez system</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку обработки нажатий на кнопку перехода в спящий режим</description>
+ <message>Authentication is required to allow an application to inhibit system handling of the hibernate key.</message>
+ <message xml:lang="de">Legitimierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung des Knopfs für den Ruhezustand zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την διαχείριση του πλήκτρου αδρανοποίησης του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher la gestion du bouton d'hibernation du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire ad un'applicazione di inibire al sistema la gestione del tasto di ibernazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie obsługi klawisza hibernacji przez system.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку обработки нажатий на кнопку перехода в спящий режим, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.inhibit-handle-lid-switch">
+ <description>Allow applications to inhibit system handling of the lid switch</description>
+ <description xml:lang="de">Anwendungen dürfen das Auswerten des Notebookdeckelschalters unterbinden</description>
+ <description xml:lang="el">Να επιτρέπεται στις εφαρμογές να αποτρέπουν τη διαχείριση του διακόπτη καλύμματος του συστήματος</description>
+ <description xml:lang="fr">Permet aux applications d'empêcher la gestion par le système du rabat de l'écran</description>
+ <description xml:lang="it">Consenti alle applicazioni di inibire al sistema la gestione degli eventi relativi alla chiusura del portatile</description>
+ <description xml:lang="pl">Zezwolenie programom na wstrzymanie obsługi przełącznika pokrywy przez system</description>
+ <description xml:lang="ru">Разрешить приложениям устанавливать блокировку на обработку закрытия крышки ноутбука</description>
+ <message>Authentication is required to allow an application to inhibit system handling of the lid switch.</message>
+ <message xml:lang="de">Legitimierung ist erforderlich, um Anwendungen das Unterbinden der Auswertung des Notebookdeckelschalters des Systems zu erlauben.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μια εφαρμογή να αποτρέψει την διαχείριση του διακόπτη καλύμματος του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour permettre à une application d'empêcher la gestion par le système du rabat de l'écran.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire alle applicazioni di inibire al sistema la gestione degli eventi relativi alla chiusura del portatile.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie obsługi przełącznika pokrywy przez system.</message>
+ <message xml:lang="ru">Чтобы разрешить приложениям устанавливать блокировку на обработку закрытия крышки ноутбука, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.set-user-linger">
+ <description>Allow non-logged-in users to run programs</description>
+ <description xml:lang="de">Nicht angemeldete Benutzer dürfen Programme ausführen</description>
+ <description xml:lang="el">Να επιτρέπεται σε μη συνδεμένους χρήστες να εκτελούν προγράμματα</description>
+ <description xml:lang="fr">Permet aux utilisateurs non connectés d'exécuter des programmes</description>
+ <description xml:lang="it">Consenti agli utenti non connessi di eseguire programmi</description>
+ <description xml:lang="pl">Zezwolenie niezalogowanym użytkownikom na uruchamianie programów</description>
+ <description xml:lang="ru">Разрешить пользователям оставлять программы в фоновом режиме после завершения сеанса</description>
+ <message>Authentication is required to allow a non-logged-in user to run programs.</message>
+ <message xml:lang="de">Legitimierung ist erforderlich, damit nicht angemeldete Benutzer Programme ausführen dürfen.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να επιτρέπεται σε μη συνδεμένους χρήστες να εκτελούν προγράμματα.</message>
+ <message xml:lang="fr">Authentification requise pour permettre aux utilisateurs non connectés d'exécuter des programmes.</message>
+ <message xml:lang="it">Autenticazione richiesta per consentire agli utenti non connessi di eseguire programmi.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zezwolić niezalogowanemu użytkownikowi na uruchamianie programów.</message>
+ <message xml:lang="ru">Чтобы разрешить пользователям оставлять программы в фоновом режиме после завершения сеанса, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.attach-device">
+ <description>Allow attaching devices to seats</description>
+ <description xml:lang="de">Das Anschließen von Geräten an Arbeitsstationen erlauben</description>
+ <description xml:lang="el">Να επιτρέπεται η προσάρτηση συσκευών στους σταθμούς εργασίας</description>
+ <description xml:lang="fr">Permet d'associer des périphériques à des postes (seats)</description>
+ <description xml:lang="it">Consenti di collegare dispositivi alle postazioni</description>
+ <description xml:lang="pl">Zezwolenie na podłączanie urządzeń do stanowisk</description>
+ <description xml:lang="ru">Разрешить подключение устройств к рабочим местам</description>
+ <message>Authentication is required for attaching a device to a seat.</message>
+ <message xml:lang="de">Legitimierung ist zum Anschließen eines Geräts an eine Arbeitsstation notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για προσάρτηση μιας συσκευής σε έναν σταθμό εργασίας.</message>
+ <message xml:lang="fr">Authentification requise pour associer un périphérique à un poste (seat).</message>
+ <message xml:lang="it">Autenticazione richiesta per collegare un dispositivo alla postazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby podłączyć urządzenie do stanowiska.</message>
+ <message xml:lang="ru">Чтобы разрешить подключение устройств к рабочим местам, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.flush-devices</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.flush-devices">
+ <description>Flush device to seat attachments</description>
+ <description xml:lang="de">Zurücksetzen der an eine Arbeitsstation angeschlossenen Geräte</description>
+ <description xml:lang="el">Αφαίρεση συσκευής από προσαρτήσεις σταθμού εργασίας</description>
+ <description xml:lang="fr">Révoquer les associations de périphériques aux postes (seats)</description>
+ <description xml:lang="it">Scollega i dispositivi dalla postazione</description>
+ <description xml:lang="pl">Usunięcie podłączenia urządzeń do stanowisk</description>
+ <description xml:lang="ru">Сбросить привязки устройств к рабочим местам</description>
+ <message>Authentication is required for resetting how devices are attached to seats.</message>
+ <message xml:lang="de">Legitimierung ist zum Zurücksetzen notwendig, wie Geräte an eine Arbeitsstation angeschlossen werden.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για επαναφορά του τρόπου που οι συσκευές προσαρτώνται στους σταθμούς εργασίας.</message>
+ <message xml:lang="fr">Authentification requise pour révoquer les associations de périphériques aux postes (seats).</message>
+ <message xml:lang="it">Autenticazione richiesta per scollegare i dispositivi dalla postazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ponownie ustawić sposób podłączenia urządzeń do stanowisk.</message>
+ <message xml:lang="ru">Чтобы сбросить привязки устройств к рабочим местам, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.power-off">
+ <description>Power off the system</description>
+ <description xml:lang="de">Das System ausschalten</description>
+ <description xml:lang="el">Σβήσιμο του συστήματος</description>
+ <description xml:lang="fr">Éteindre le système</description>
+ <description xml:lang="it">Spegnere il sistema</description>
+ <description xml:lang="pl">Wyłączenie systemu</description>
+ <description xml:lang="ru">Выключить систему</description>
+ <message>Authentication is required for powering off the system.</message>
+ <message xml:lang="de">Legitimierung ist zum Ausschalten des Systems notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για την σβήσιμο του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour éteindre le système.</message>
+ <message xml:lang="it">Autenticazione richiesta per spegnere il sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby wyłączyć system.</message>
+ <message xml:lang="ru">Чтобы выключить систему, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.power-off-multiple-sessions">
+ <description>Power off the system while other users are logged in</description>
+ <description xml:lang="de">Das System herunter fahren, während andere Benutzer angemeldet sind</description>
+ <description xml:lang="el">Σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι</description>
+ <description xml:lang="fr">Éteindre le système alors que d'autres utilisateurs sont connectés</description>
+ <description xml:lang="it">Spegnere il sistema mentre altri utenti sono connessi</description>
+ <description xml:lang="pl">Wyłączenie systemu, kiedy są zalogowani inni użytkownicy</description>
+ <description xml:lang="ru">Выключить систему, несмотря на то, что в ней работают другие пользователи</description>
+ <message>Authentication is required for powering off the system while other users are logged in.</message>
+ <message xml:lang="de">Legitimierung ist zum Herunterfahren des Systems notwendig, während andere Benutzer angemeldet sind.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για σβήσιμο του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι.</message>
+ <message xml:lang="fr">Authentification requise pour éteindre le système alors que d'autres utilisateurs sont connectés.</message>
+ <message xml:lang="it">Autenticazione richiesta per spegnere il sistema mentre altri utenti sono connessi.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby wyłączyć system, kiedy są zalogowani inni użytkownicy.</message>
+ <message xml:lang="ru">Чтобы выключить систему, несмотря на то, что в ней работают другие пользователи, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.power-off</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.power-off-ignore-inhibit">
+ <description>Power off the system while an application asked to inhibit it</description>
+ <description xml:lang="de">Das System ausschalten, während eine Anwendung anfordert es zu unterbinden</description>
+ <description xml:lang="el">Απενεργοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί.</description>
+ <description xml:lang="fr">Éteindre le système alors qu'une application a demandé de l'empêcher</description>
+ <description xml:lang="it">Spegnere il sistema nonostante l'inibizione di una applicazione</description>
+ <description xml:lang="pl">Wyłączenie systemu, kiedy program zażądał jego wstrzymania</description>
+ <description xml:lang="ru">Выключить систему, несмотря на то, что приложение запросило блокировку выключения</description>
+ <message>Authentication is required for powering off the system while an application asked to inhibit it.</message>
+ <message xml:lang="de">Legitimierung ist zum Ausschalten des Systems notwendig, während eine Anwendung anfordert es zu unterbinden.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για απενεργοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί.</message>
+ <message xml:lang="fr">Authentification requise pour éteindre le système alors qu'une application a demandé de l'empêcher.</message>
+ <message xml:lang="it">Autenticazione richiesta per spegnere il sistema nonostante l'inibizione di una applicazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby wyłączyć system, kiedy program zażądał jego wstrzymania.</message>
+ <message xml:lang="ru">Чтобы выключить систему, несмотря на то, что приложение запросило блокировку выключения, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.power-off</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.reboot">
+ <description>Reboot the system</description>
+ <description xml:lang="de">Das System neu starten</description>
+ <description xml:lang="el">Επανεκκίνηση του συστήματος</description>
+ <description xml:lang="fr">Redémarrer le système</description>
+ <description xml:lang="it">Riavviare il sistema</description>
+ <description xml:lang="pl">Ponowne uruchomienie systemu</description>
+ <description xml:lang="ru">Перезагрузить систему</description>
+ <message>Authentication is required for rebooting the system.</message>
+ <message xml:lang="de">Legitimierung ist zum Neustart des Systems notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour redémarrer le système.</message>
+ <message xml:lang="it">Autenticazione richiesta per riavviare il sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ponownie uruchomić system.</message>
+ <message xml:lang="ru">Чтобы перезагрузить систему, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.reboot-multiple-sessions">
+ <description>Reboot the system while other users are logged in</description>
+ <description xml:lang="de">Das Systems neu starten, während andere Benutzer angemeldet sind</description>
+ <description xml:lang="el">Επανεκκίνηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι</description>
+ <description xml:lang="fr">Redémarrer le système alors que d'autres utilisateurs sont connectés</description>
+ <description xml:lang="it">Riavviare il sistema mentre altri utenti sono connessi</description>
+ <description xml:lang="pl">Ponowne uruchomienie systemu, kiedy są zalogowani inni użytkownicy</description>
+ <description xml:lang="ru">Перезагрузить систему, несмотря на то, что в ней работают другие пользователи</description>
+ <message>Authentication is required for rebooting the system while other users are logged in.</message>
+ <message xml:lang="de">Legitimierung ist zum Neustart des Systems notwendig, während andere Benutzer angemeldet sind.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι.</message>
+ <message xml:lang="fr">Authentification requise pour redémarrer le système alors que d'autres utilisateurs sont connectés.</message>
+ <message xml:lang="it">Autenticazione richiesta per riavviare il sistema mentre altri utenti sono connessi.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy są zalogowani inni użytkownicy.</message>
+ <message xml:lang="ru">Чтобы перезагрузить систему, несмотря на то, что в ней работают другие пользователи, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.reboot</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.reboot-ignore-inhibit">
+ <description>Reboot the system while an application asked to inhibit it</description>
+ <description xml:lang="de">Das System neu starten, während eine Anwendung anfordert es zu unterbinden</description>
+ <description xml:lang="el">Επανεκκίνηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί</description>
+ <description xml:lang="fr">Redémarrer le système alors qu'une application a demandé de l'empêcher</description>
+ <description xml:lang="it">Riavviare il sistema nonostante l'inibizione di una applicazione</description>
+ <description xml:lang="pl">Ponowne uruchomienie systemu, kiedy program poprosił o jego wstrzymanie</description>
+ <description xml:lang="ru">Перезагрузить систему, несмотря на то, что приложение запросило блокировку выключения</description>
+ <message>Authentication is required for rebooting the system while an application asked to inhibit it.</message>
+ <message xml:lang="de">Legitimierung ist zum Neustart des Systems notwendig, während eine Anwendung anforderte es zu unterbinden.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για επανεκκίνηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί.</message>
+ <message xml:lang="fr">Authentification requise pour redémarrer le système alors qu'une application a demandé de l'empêcher.</message>
+ <message xml:lang="it">Autenticazione richiesta per riavviare il sistema nonostante l'inibizione di una applicazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy program zażądał jego wstrzymania.</message>
+ <message xml:lang="ru">Чтобы перезагрузить систему, несмотря на то, что приложение запросило блокировку выключения, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.reboot</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.suspend">
+ <description>Suspend the system</description>
+ <description xml:lang="de">Das System in Bereitschaft versetzen</description>
+ <description xml:lang="el">Αναστολή του συστήματος</description>
+ <description xml:lang="fr">Mettre le système en veille</description>
+ <description xml:lang="it">Sospendere il sistema</description>
+ <description xml:lang="pl">Uśpienie systemu</description>
+ <description xml:lang="ru">Перевести систему в ждущий режим</description>
+ <message>Authentication is required for suspending the system.</message>
+ <message xml:lang="de">Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για την αναστολή του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour mettre le système en veille.</message>
+ <message xml:lang="it">Autenticazione richiesta per sospendere il sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby uśpić system.</message>
+ <message xml:lang="ru">Чтобы перевести систему в ждущий режим, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.suspend-multiple-sessions">
+ <description>Suspend the system while other users are logged in</description>
+ <description xml:lang="de">Das System in Bereitschaft versetzen, während andere Benutzer angemeldet sind.</description>
+ <description xml:lang="el">Αναστολή του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι</description>
+ <description xml:lang="fr">Mettre le système en veille alors que d'autres utilisateurs sont connectés</description>
+ <description xml:lang="it">Sospendere il sistema mentre altri utenti sono connessi</description>
+ <description xml:lang="pl">Uśpienie systemu, kiedy są zalogowani inni użytkownicy</description>
+ <description xml:lang="ru">Перевести систему в ждущий режим, несмотря на то, что в ней работают другие пользователи</description>
+ <message>Authentication is required for suspending the system while other users are logged in.</message>
+ <message xml:lang="de">Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, während andere Benutzer angemeldet sind.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι.</message>
+ <message xml:lang="fr">Authentification requise pour mettre le système en veille alors que d'autres utilisateurs sont connectés.</message>
+ <message xml:lang="it">Autenticazione richiesta per sospendere il sistema mentre altri utenti sono connessi.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby uśpić system, kiedy są zalogowani inni użytkownicy.</message>
+ <message xml:lang="ru">Чтобы перевести систему в ждущий режим, несмотря на то, что в ней работают другие пользователи, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.suspend</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.suspend-ignore-inhibit">
+ <description>Suspend the system while an application asked to inhibit it</description>
+ <description xml:lang="de">Das System in Bereitschaft versetzen, während eine Anwendung anfordert dies zu unterbinden</description>
+ <description xml:lang="el">Αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί</description>
+ <description xml:lang="fr">Mettre le système en veille alors qu'une application a demandé de l'empêcher</description>
+ <description xml:lang="it">Sospendere il sistema nonostante l'inibizione di una applicazione</description>
+ <description xml:lang="pl">Uśpienie systemu, kiedy program poprosił o jego wstrzymanie</description>
+ <description xml:lang="ru">Перевести систему в ждущий режим, несмотря на то, что приложение запросило блокировку</description>
+ <message>Authentication is required for suspending the system while an application asked to inhibit it.</message>
+ <message xml:lang="de">Legitimierung ist zum Versetzen des Systems in Bereitschaft notwendig, während eine Anwendung anfordert dies zu unterbinden.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για αναστολή του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί.</message>
+ <message xml:lang="fr">Authentification requise pour mettre le système en veille alors qu'une application a demandé de l'empêcher.</message>
+ <message xml:lang="it">Autenticazione richiesta per sospendere il sistema nonostante l'inibizione di una applicazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby uśpić system, kiedy program zażądał jego wstrzymania.</message>
+ <message xml:lang="ru">Чтобы перевести систему в ждущий режим, несмотря на то, что приложение запросило блокировку, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.suspend</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.hibernate">
+ <description>Hibernate the system</description>
+ <description xml:lang="de">Den Ruhezustand des Systems aktivieren</description>
+ <description xml:lang="el">Αδρανοποίηση του συτήματος</description>
+ <description xml:lang="fr">Mettre le système en hibernation</description>
+ <description xml:lang="it">Ibernare il sistema</description>
+ <description xml:lang="pl">Hibernacja systemu</description>
+ <description xml:lang="ru">Перевести систему в спящий режим</description>
+ <message>Authentication is required for hibernating the system.</message>
+ <message xml:lang="de">Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour mettre le système en hibernation.</message>
+ <message xml:lang="it">Autenticazione richiesta per ibernare il sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zahibernować system.</message>
+ <message xml:lang="ru">Чтобы перевести систему в спящий режим, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.login1.hibernate-multiple-sessions">
+ <description>Hibernate the system while other users are logged in</description>
+ <description xml:lang="de">Den Ruhezustand des Systems aktivieren, während andere Benutzer angemeldet sind</description>
+ <description xml:lang="el">Αδρανοποίηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι</description>
+ <description xml:lang="fr">Mettre le système en hibernation alors que d'autres utilisateurs sont connectés</description>
+ <description xml:lang="it">Ibernare il sistema mentre altri utenti sono connessi</description>
+ <description xml:lang="pl">Hibernacja systemu, kiedy są zalogowani inni użytkownicy</description>
+ <description xml:lang="ru">Перевести систему в спящий режим, несмотря на то, что в ней работают другие пользователи</description>
+ <message>Authentication is required for hibernating the system while other users are logged in.</message>
+ <message xml:lang="de">Legitimierung ist zum Aktivieren des Ruhezustands des Systems notwendig, während andere Benutzer angemeldet sind.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ άλλοι χρήστες είναι συνδεμένοι.</message>
+ <message xml:lang="fr">Authentification requise pour mettre le système en hibernation alors que d'autres utilisateurs sont connectés.</message>
+ <message xml:lang="it">Autenticazione richiesta per ibernare il sistema mentre altri utenti sono connessi.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zahibernować system, kiedy są zalogowani inni użytkownicy.</message>
+ <message xml:lang="ru">Чтобы перевести систему в спящий режим, несмотря на то, что в ней работают другие пользователи, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.hibernate</annotate>
+ </action>
+
+ <action id="org.freedesktop.login1.hibernate-ignore-inhibit">
+ <description>Hibernate the system while an application asked to inhibit it</description>
+ <description xml:lang="de">Das System in den Ruhezustand versetzen, während eine Anwendung wünscht dies zu verhindern</description>
+ <description xml:lang="el">Αδρανοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί</description>
+ <description xml:lang="fr">Mettre le système en hibernation alors qu'une application a demandé de l'empêcher</description>
+ <description xml:lang="it">Ibernare il sistema nonostante l'inibizione di una applicazione</description>
+ <description xml:lang="pl">Hibernacja systemu, kiedy program zażądał jej wstrzymania</description>
+ <description xml:lang="ru">Перевести систему в спящий режим, несмотря на то, что приложение запросило блокировку</description>
+ <message>Authentication is required for hibernating the system while an application asked to inhibit it.</message>
+ <message xml:lang="de">Legitimierung ist zum Versetzen des System in den Ruhezustand notwendig, während eine Anwendung wünscht dies zu verhindern.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για αδρανοποίηση του συστήματος ενώ μια εφαρμογή ζήτησε να αποτραπεί.</message>
+ <message xml:lang="fr">Authentification requise pour mettre le système en hibernation alors qu'une application a demandé de l'empêcher.</message>
+ <message xml:lang="it">Autenticazione richiesta per ibernare il sistema nonostante l'inibizione di una applicazione.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zahibernować system, kiedy program zażądał jej wstrzymania.</message>
+ <message xml:lang="ru">Чтобы перевести систему в спящий режим, несмотря на то, что приложение запросило блокировку, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.hibernate</annotate>
+ </action>
+
+</policyconfig>
\ No newline at end of file
+++ /dev/null
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
-/***
- This file is part of systemd.
-
- Copyright 2010 Lennart Poettering
-
- systemd is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- systemd is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
-***/
-
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/file.h>
-#include <pwd.h>
-#include <endian.h>
-#include <sys/capability.h>
-
-#include <security/pam_modules.h>
-#include <security/_pam_macros.h>
-#include <security/pam_modutil.h>
-#include <security/pam_ext.h>
-#include <security/pam_misc.h>
-
-#include "util.h"
-#include "audit.h"
-#include "macro.h"
-#include "strv.h"
-#include "bus-util.h"
-#include "def.h"
-#include "socket-util.h"
-#include "fileio.h"
-#include "bus-error.h"
-
-static int parse_argv(
- pam_handle_t *handle,
- int argc, const char **argv,
- const char **class,
- const char **type,
- bool *debug) {
-
- unsigned i;
-
- assert(argc >= 0);
- assert(argc == 0 || argv);
-
- for (i = 0; i < (unsigned) argc; i++) {
- if (startswith(argv[i], "class=")) {
- if (class)
- *class = argv[i] + 6;
-
- } else if (startswith(argv[i], "type=")) {
- if (type)
- *type = argv[i] + 5;
-
- } else if (streq(argv[i], "debug")) {
- if (debug)
- *debug = true;
-
- } else if (startswith(argv[i], "debug=")) {
- int k;
-
- k = parse_boolean(argv[i] + 6);
- if (k < 0)
- pam_syslog(handle, LOG_WARNING, "Failed to parse debug= argument, ignoring.");
- else if (debug)
- *debug = k;
-
- } else
- pam_syslog(handle, LOG_WARNING, "Unknown parameter '%s', ignoring", argv[i]);
- }
-
- return 0;
-}
-
-static int get_user_data(
- pam_handle_t *handle,
- const char **ret_username,
- struct passwd **ret_pw) {
-
- const char *username = NULL;
- struct passwd *pw = NULL;
- int r;
-
- assert(handle);
- assert(ret_username);
- assert(ret_pw);
-
- r = pam_get_user(handle, &username, NULL);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to get user name.");
- return r;
- }
-
- if (isempty(username)) {
- pam_syslog(handle, LOG_ERR, "User name not valid.");
- return PAM_AUTH_ERR;
- }
-
- pw = pam_modutil_getpwnam(handle, username);
- if (!pw) {
- pam_syslog(handle, LOG_ERR, "Failed to get user data.");
- return PAM_USER_UNKNOWN;
- }
-
- *ret_pw = pw;
- *ret_username = username ? username : pw->pw_name;
-
- return PAM_SUCCESS;
-}
-
-static int get_seat_from_display(const char *display, const char **seat, uint32_t *vtnr) {
- union sockaddr_union sa = {
- .un.sun_family = AF_UNIX,
- };
- _cleanup_free_ char *p = NULL, *tty = NULL;
- _cleanup_close_ int fd = -1;
- struct ucred ucred;
- int v, r;
-
- assert(display);
- assert(vtnr);
-
- /* We deduce the X11 socket from the display name, then use
- * SO_PEERCRED to determine the X11 server process, ask for
- * the controlling tty of that and if it's a VC then we know
- * the seat and the virtual terminal. Sounds ugly, is only
- * semi-ugly. */
-
- r = socket_from_display(display, &p);
- if (r < 0)
- return r;
- strncpy(sa.un.sun_path, p, sizeof(sa.un.sun_path)-1);
-
- fd = socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
- if (fd < 0)
- return -errno;
-
- if (connect(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)) < 0)
- return -errno;
-
- r = getpeercred(fd, &ucred);
- if (r < 0)
- return r;
-
- r = get_ctty(ucred.pid, NULL, &tty);
- if (r < 0)
- return r;
-
- v = vtnr_from_tty(tty);
- if (v < 0)
- return v;
- else if (v == 0)
- return -ENOENT;
-
- if (seat)
- *seat = "seat0";
- *vtnr = (uint32_t) v;
-
- return 0;
-}
-
-static int export_legacy_dbus_address(
- pam_handle_t *handle,
- uid_t uid,
- const char *runtime) {
-
-#ifdef ENABLE_KDBUS
- _cleanup_free_ char *s = NULL;
- int r;
-
- /* skip export if kdbus is not active */
- if (access("/dev/kdbus", F_OK) < 0)
- return PAM_SUCCESS;
-
- if (asprintf(&s, KERNEL_USER_BUS_FMT ";" UNIX_USER_BUS_FMT,
- uid, runtime) < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to set bus variable.");
- return PAM_BUF_ERR;
- }
-
- r = pam_misc_setenv(handle, "DBUS_SESSION_BUS_ADDRESS", s, 0);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to set bus variable.");
- return r;
- }
-#endif
- return PAM_SUCCESS;
-}
-
-_public_ PAM_EXTERN int pam_sm_open_session(
- pam_handle_t *handle,
- int flags,
- int argc, const char **argv) {
-
- _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
- _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
- const char
- *username, *id, *object_path, *runtime_path,
- *service = NULL,
- *tty = NULL, *display = NULL,
- *remote_user = NULL, *remote_host = NULL,
- *seat = NULL,
- *type = NULL, *class = NULL,
- *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL;
- _cleanup_bus_unref_ sd_bus *bus = NULL;
- int session_fd = -1, existing, r;
- bool debug = false, remote;
- struct passwd *pw;
- uint32_t vtnr = 0;
- uid_t original_uid;
-
- assert(handle);
-
- /* Make this a NOP on non-logind systems */
- if (!logind_running())
- return PAM_SUCCESS;
-
- if (parse_argv(handle,
- argc, argv,
- &class_pam,
- &type_pam,
- &debug) < 0)
- return PAM_SESSION_ERR;
-
- if (debug)
- pam_syslog(handle, LOG_DEBUG, "pam-systemd initializing");
-
- r = get_user_data(handle, &username, &pw);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to get user data.");
- return r;
- }
-
- /* Make sure we don't enter a loop by talking to
- * systemd-logind when it is actually waiting for the
- * background to finish start-up. If the service is
- * "systemd-user" we simply set XDG_RUNTIME_DIR and
- * leave. */
-
- pam_get_item(handle, PAM_SERVICE, (const void**) &service);
- if (streq_ptr(service, "systemd-user")) {
- _cleanup_free_ char *p = NULL, *rt = NULL;
-
- if (asprintf(&p, "/run/systemd/users/"UID_FMT, pw->pw_uid) < 0)
- return PAM_BUF_ERR;
-
- r = parse_env_file(p, NEWLINE,
- "RUNTIME", &rt,
- NULL);
- if (r < 0 && r != -ENOENT)
- return PAM_SESSION_ERR;
-
- if (rt) {
- r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", rt, 0);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
- return r;
- }
-
- r = export_legacy_dbus_address(handle, pw->pw_uid, rt);
- if (r != PAM_SUCCESS)
- return r;
- }
-
- return PAM_SUCCESS;
- }
-
- /* Otherwise, we ask logind to create a session for us */
-
- pam_get_item(handle, PAM_XDISPLAY, (const void**) &display);
- pam_get_item(handle, PAM_TTY, (const void**) &tty);
- pam_get_item(handle, PAM_RUSER, (const void**) &remote_user);
- pam_get_item(handle, PAM_RHOST, (const void**) &remote_host);
-
- seat = pam_getenv(handle, "XDG_SEAT");
- if (isempty(seat))
- seat = getenv("XDG_SEAT");
-
- cvtnr = pam_getenv(handle, "XDG_VTNR");
- if (isempty(cvtnr))
- cvtnr = getenv("XDG_VTNR");
-
- type = pam_getenv(handle, "XDG_SESSION_TYPE");
- if (isempty(type))
- type = getenv("XDG_SESSION_TYPE");
- if (isempty(type))
- type = type_pam;
-
- class = pam_getenv(handle, "XDG_SESSION_CLASS");
- if (isempty(class))
- class = getenv("XDG_SESSION_CLASS");
- if (isempty(class))
- class = class_pam;
-
- desktop = pam_getenv(handle, "XDG_SESSION_DESKTOP");
- if (isempty(desktop))
- desktop = getenv("XDG_SESSION_DESKTOP");
-
- tty = strempty(tty);
-
- if (strchr(tty, ':')) {
- /* A tty with a colon is usually an X11 display,
- * placed there to show up in utmp. We rearrange
- * things and don't pretend that an X display was a
- * tty. */
-
- if (isempty(display))
- display = tty;
- tty = NULL;
- } else if (streq(tty, "cron")) {
- /* cron has been setting PAM_TTY to "cron" for a very
- * long time and it probably shouldn't stop doing that
- * for compatibility reasons. */
- type = "unspecified";
- class = "background";
- tty = NULL;
- } else if (streq(tty, "ssh")) {
- /* ssh has been setting PAM_TTY to "ssh" for a very
- * long time and probably shouldn't stop doing that
- * for compatibility reasons. */
- type ="tty";
- class = "user";
- tty = NULL;
- }
-
- /* If this fails vtnr will be 0, that's intended */
- if (!isempty(cvtnr))
- safe_atou32(cvtnr, &vtnr);
-
- if (!isempty(display) && !vtnr) {
- if (isempty(seat))
- get_seat_from_display(display, &seat, &vtnr);
- else if (streq(seat, "seat0"))
- get_seat_from_display(display, NULL, &vtnr);
- }
-
- if (seat && !streq(seat, "seat0") && vtnr != 0) {
- pam_syslog(handle, LOG_DEBUG, "Ignoring vtnr %d for %s which is not seat0", vtnr, seat);
- vtnr = 0;
- }
-
- if (isempty(type))
- type = !isempty(display) ? "x11" :
- !isempty(tty) ? "tty" : "unspecified";
-
- if (isempty(class))
- class = streq(type, "unspecified") ? "background" : "user";
-
- remote = !isempty(remote_host) &&
- !streq_ptr(remote_host, "localhost") &&
- !streq_ptr(remote_host, "localhost.localdomain");
-
- /* Talk to logind over the message bus */
-
- r = sd_bus_open_system(&bus);
- if (r < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", strerror(-r));
- return PAM_SESSION_ERR;
- }
-
- if (debug)
- pam_syslog(handle, LOG_DEBUG, "Asking logind to create session: "
- "uid=%u pid=%u service=%s type=%s class=%s desktop=%s seat=%s vtnr=%u tty=%s display=%s remote=%s remote_user=%s remote_host=%s",
- pw->pw_uid, getpid(),
- strempty(service),
- type, class, strempty(desktop),
- strempty(seat), vtnr, strempty(tty), strempty(display),
- yes_no(remote), strempty(remote_user), strempty(remote_host));
-
- r = sd_bus_call_method(bus,
- "org.freedesktop.login1",
- "/org/freedesktop/login1",
- "org.freedesktop.login1.Manager",
- "CreateSession",
- &error,
- &reply,
- "uusssssussbssa(sv)",
- (uint32_t) pw->pw_uid,
- (uint32_t) getpid(),
- service,
- type,
- class,
- desktop,
- seat,
- vtnr,
- tty,
- display,
- remote,
- remote_user,
- remote_host,
- 0);
- if (r < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to create session: %s", bus_error_message(&error, r));
- return PAM_SYSTEM_ERR;
- }
-
- r = sd_bus_message_read(reply,
- "soshusub",
- &id,
- &object_path,
- &runtime_path,
- &session_fd,
- &original_uid,
- &seat,
- &vtnr,
- &existing);
- if (r < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to parse message: %s", strerror(-r));
- return PAM_SESSION_ERR;
- }
-
- if (debug)
- pam_syslog(handle, LOG_DEBUG, "Reply from logind: "
- "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u original_uid=%u",
- id, object_path, runtime_path, session_fd, seat, vtnr, original_uid);
-
- r = pam_misc_setenv(handle, "XDG_SESSION_ID", id, 0);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to set session id.");
- return r;
- }
-
- if (original_uid == pw->pw_uid) {
- /* Don't set $XDG_RUNTIME_DIR if the user we now
- * authenticated for does not match the original user
- * of the session. We do this in order not to result
- * in privileged apps clobbering the runtime directory
- * unnecessarily. */
-
- r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
- return r;
- }
-
- r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path);
- if (r != PAM_SUCCESS)
- return r;
- }
-
- if (!isempty(seat)) {
- r = pam_misc_setenv(handle, "XDG_SEAT", seat, 0);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to set seat.");
- return r;
- }
- }
-
- if (vtnr > 0) {
- char buf[DECIMAL_STR_MAX(vtnr)];
- sprintf(buf, "%u", vtnr);
-
- r = pam_misc_setenv(handle, "XDG_VTNR", buf, 0);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to set virtual terminal number.");
- return r;
- }
- }
-
- r = pam_set_data(handle, "systemd.existing", INT_TO_PTR(!!existing), NULL);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to install existing flag.");
- return r;
- }
-
- if (session_fd >= 0) {
- session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3);
- if (session_fd < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m");
- return PAM_SESSION_ERR;
- }
-
- r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL);
- if (r != PAM_SUCCESS) {
- pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
- safe_close(session_fd);
- return r;
- }
- }
-
- return PAM_SUCCESS;
-}
-
-_public_ PAM_EXTERN int pam_sm_close_session(
- pam_handle_t *handle,
- int flags,
- int argc, const char **argv) {
-
- _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
- _cleanup_bus_unref_ sd_bus *bus = NULL;
- const void *existing = NULL;
- const char *id;
- int r;
-
- assert(handle);
-
- /* Only release session if it wasn't pre-existing when we
- * tried to create it */
- pam_get_data(handle, "systemd.existing", &existing);
-
- id = pam_getenv(handle, "XDG_SESSION_ID");
- if (id && !existing) {
-
- /* Before we go and close the FIFO we need to tell
- * logind that this is a clean session shutdown, so
- * that it doesn't just go and slaughter us
- * immediately after closing the fd */
-
- r = sd_bus_open_system(&bus);
- if (r < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", strerror(-r));
- return PAM_SESSION_ERR;
- }
-
- r = sd_bus_call_method(bus,
- "org.freedesktop.login1",
- "/org/freedesktop/login1",
- "org.freedesktop.login1.Manager",
- "ReleaseSession",
- &error,
- NULL,
- "s",
- id);
- if (r < 0) {
- pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error, r));
- return PAM_SESSION_ERR;
- }
- }
-
- /* Note that we are knowingly leaking the FIFO fd here. This
- * way, logind can watch us die. If we closed it here it would
- * not have any clue when that is completed. Given that one
- * cannot really have multiple PAM sessions open from the same
- * process this means we will leak one FD at max. */
-
- return PAM_SUCCESS;
-}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2010 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/file.h>
+#include <pwd.h>
+#include <endian.h>
+#include <sys/capability.h>
+
+#include <security/pam_modules.h>
+#include <security/_pam_macros.h>
+#include <security/pam_modutil.h>
+#include <security/pam_ext.h>
+#include <security/pam_misc.h>
+
+#include "util.h"
+#include "audit.h"
+#include "macro.h"
+#include "strv.h"
+#include "bus-util.h"
+#include "def.h"
+#include "socket-util.h"
+#include "fileio.h"
+#include "bus-error.h"
+
+static int parse_argv(
+ pam_handle_t *handle,
+ int argc, const char **argv,
+ const char **class,
+ const char **type,
+ bool *debug) {
+
+ unsigned i;
+
+ assert(argc >= 0);
+ assert(argc == 0 || argv);
+
+ for (i = 0; i < (unsigned) argc; i++) {
+ if (startswith(argv[i], "class=")) {
+ if (class)
+ *class = argv[i] + 6;
+
+ } else if (startswith(argv[i], "type=")) {
+ if (type)
+ *type = argv[i] + 5;
+
+ } else if (streq(argv[i], "debug")) {
+ if (debug)
+ *debug = true;
+
+ } else if (startswith(argv[i], "debug=")) {
+ int k;
+
+ k = parse_boolean(argv[i] + 6);
+ if (k < 0)
+ pam_syslog(handle, LOG_WARNING, "Failed to parse debug= argument, ignoring.");
+ else if (debug)
+ *debug = k;
+
+ } else
+ pam_syslog(handle, LOG_WARNING, "Unknown parameter '%s', ignoring", argv[i]);
+ }
+
+ return 0;
+}
+
+static int get_user_data(
+ pam_handle_t *handle,
+ const char **ret_username,
+ struct passwd **ret_pw) {
+
+ const char *username = NULL;
+ struct passwd *pw = NULL;
+ int r;
+
+ assert(handle);
+ assert(ret_username);
+ assert(ret_pw);
+
+ r = pam_get_user(handle, &username, NULL);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to get user name.");
+ return r;
+ }
+
+ if (isempty(username)) {
+ pam_syslog(handle, LOG_ERR, "User name not valid.");
+ return PAM_AUTH_ERR;
+ }
+
+ pw = pam_modutil_getpwnam(handle, username);
+ if (!pw) {
+ pam_syslog(handle, LOG_ERR, "Failed to get user data.");
+ return PAM_USER_UNKNOWN;
+ }
+
+ *ret_pw = pw;
+ *ret_username = username ? username : pw->pw_name;
+
+ return PAM_SUCCESS;
+}
+
+static int get_seat_from_display(const char *display, const char **seat, uint32_t *vtnr) {
+ union sockaddr_union sa = {
+ .un.sun_family = AF_UNIX,
+ };
+ _cleanup_free_ char *p = NULL, *tty = NULL;
+ _cleanup_close_ int fd = -1;
+ struct ucred ucred;
+ int v, r;
+
+ assert(display);
+ assert(vtnr);
+
+ /* We deduce the X11 socket from the display name, then use
+ * SO_PEERCRED to determine the X11 server process, ask for
+ * the controlling tty of that and if it's a VC then we know
+ * the seat and the virtual terminal. Sounds ugly, is only
+ * semi-ugly. */
+
+ r = socket_from_display(display, &p);
+ if (r < 0)
+ return r;
+ strncpy(sa.un.sun_path, p, sizeof(sa.un.sun_path)-1);
+
+ fd = socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0);
+ if (fd < 0)
+ return -errno;
+
+ if (connect(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)) < 0)
+ return -errno;
+
+ r = getpeercred(fd, &ucred);
+ if (r < 0)
+ return r;
+
+ r = get_ctty(ucred.pid, NULL, &tty);
+ if (r < 0)
+ return r;
+
+ v = vtnr_from_tty(tty);
+ if (v < 0)
+ return v;
+ else if (v == 0)
+ return -ENOENT;
+
+ if (seat)
+ *seat = "seat0";
+ *vtnr = (uint32_t) v;
+
+ return 0;
+}
+
+static int export_legacy_dbus_address(
+ pam_handle_t *handle,
+ uid_t uid,
+ const char *runtime) {
+
+#ifdef ENABLE_KDBUS
+ _cleanup_free_ char *s = NULL;
+ int r;
+
+ /* skip export if kdbus is not active */
+ if (access("/dev/kdbus", F_OK) < 0)
+ return PAM_SUCCESS;
+
+ if (asprintf(&s, KERNEL_USER_BUS_FMT ";" UNIX_USER_BUS_FMT,
+ uid, runtime) < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to set bus variable.");
+ return PAM_BUF_ERR;
+ }
+
+ r = pam_misc_setenv(handle, "DBUS_SESSION_BUS_ADDRESS", s, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set bus variable.");
+ return r;
+ }
+#endif
+ return PAM_SUCCESS;
+}
+
+_public_ PAM_EXTERN int pam_sm_open_session(
+ pam_handle_t *handle,
+ int flags,
+ int argc, const char **argv) {
+
+ _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
+ _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
+ const char
+ *username, *id, *object_path, *runtime_path,
+ *service = NULL,
+ *tty = NULL, *display = NULL,
+ *remote_user = NULL, *remote_host = NULL,
+ *seat = NULL,
+ *type = NULL, *class = NULL,
+ *class_pam = NULL, *type_pam = NULL, *cvtnr = NULL, *desktop = NULL;
+ _cleanup_bus_unref_ sd_bus *bus = NULL;
+ int session_fd = -1, existing, r;
+ bool debug = false, remote;
+ struct passwd *pw;
+ uint32_t vtnr = 0;
+ uid_t original_uid;
+
+ assert(handle);
+
+ /* Make this a NOP on non-logind systems */
+ if (!logind_running())
+ return PAM_SUCCESS;
+
+ if (parse_argv(handle,
+ argc, argv,
+ &class_pam,
+ &type_pam,
+ &debug) < 0)
+ return PAM_SESSION_ERR;
+
+ if (debug)
+ pam_syslog(handle, LOG_DEBUG, "pam-systemd initializing");
+
+ r = get_user_data(handle, &username, &pw);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to get user data.");
+ return r;
+ }
+
+ /* Make sure we don't enter a loop by talking to
+ * systemd-logind when it is actually waiting for the
+ * background to finish start-up. If the service is
+ * "systemd-user" we simply set XDG_RUNTIME_DIR and
+ * leave. */
+
+ pam_get_item(handle, PAM_SERVICE, (const void**) &service);
+ if (streq_ptr(service, "systemd-user")) {
+ _cleanup_free_ char *p = NULL, *rt = NULL;
+
+ if (asprintf(&p, "/run/systemd/users/"UID_FMT, pw->pw_uid) < 0)
+ return PAM_BUF_ERR;
+
+ r = parse_env_file(p, NEWLINE,
+ "RUNTIME", &rt,
+ NULL);
+ if (r < 0 && r != -ENOENT)
+ return PAM_SESSION_ERR;
+
+ if (rt) {
+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", rt, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
+ return r;
+ }
+
+ r = export_legacy_dbus_address(handle, pw->pw_uid, rt);
+ if (r != PAM_SUCCESS)
+ return r;
+ }
+
+ return PAM_SUCCESS;
+ }
+
+ /* Otherwise, we ask logind to create a session for us */
+
+ pam_get_item(handle, PAM_XDISPLAY, (const void**) &display);
+ pam_get_item(handle, PAM_TTY, (const void**) &tty);
+ pam_get_item(handle, PAM_RUSER, (const void**) &remote_user);
+ pam_get_item(handle, PAM_RHOST, (const void**) &remote_host);
+
+ seat = pam_getenv(handle, "XDG_SEAT");
+ if (isempty(seat))
+ seat = getenv("XDG_SEAT");
+
+ cvtnr = pam_getenv(handle, "XDG_VTNR");
+ if (isempty(cvtnr))
+ cvtnr = getenv("XDG_VTNR");
+
+ type = pam_getenv(handle, "XDG_SESSION_TYPE");
+ if (isempty(type))
+ type = getenv("XDG_SESSION_TYPE");
+ if (isempty(type))
+ type = type_pam;
+
+ class = pam_getenv(handle, "XDG_SESSION_CLASS");
+ if (isempty(class))
+ class = getenv("XDG_SESSION_CLASS");
+ if (isempty(class))
+ class = class_pam;
+
+ desktop = pam_getenv(handle, "XDG_SESSION_DESKTOP");
+ if (isempty(desktop))
+ desktop = getenv("XDG_SESSION_DESKTOP");
+
+ tty = strempty(tty);
+
+ if (strchr(tty, ':')) {
+ /* A tty with a colon is usually an X11 display,
+ * placed there to show up in utmp. We rearrange
+ * things and don't pretend that an X display was a
+ * tty. */
+
+ if (isempty(display))
+ display = tty;
+ tty = NULL;
+ } else if (streq(tty, "cron")) {
+ /* cron has been setting PAM_TTY to "cron" for a very
+ * long time and it probably shouldn't stop doing that
+ * for compatibility reasons. */
+ type = "unspecified";
+ class = "background";
+ tty = NULL;
+ } else if (streq(tty, "ssh")) {
+ /* ssh has been setting PAM_TTY to "ssh" for a very
+ * long time and probably shouldn't stop doing that
+ * for compatibility reasons. */
+ type ="tty";
+ class = "user";
+ tty = NULL;
+ }
+
+ /* If this fails vtnr will be 0, that's intended */
+ if (!isempty(cvtnr))
+ safe_atou32(cvtnr, &vtnr);
+
+ if (!isempty(display) && !vtnr) {
+ if (isempty(seat))
+ get_seat_from_display(display, &seat, &vtnr);
+ else if (streq(seat, "seat0"))
+ get_seat_from_display(display, NULL, &vtnr);
+ }
+
+ if (seat && !streq(seat, "seat0") && vtnr != 0) {
+ pam_syslog(handle, LOG_DEBUG, "Ignoring vtnr %d for %s which is not seat0", vtnr, seat);
+ vtnr = 0;
+ }
+
+ if (isempty(type))
+ type = !isempty(display) ? "x11" :
+ !isempty(tty) ? "tty" : "unspecified";
+
+ if (isempty(class))
+ class = streq(type, "unspecified") ? "background" : "user";
+
+ remote = !isempty(remote_host) && !is_localhost(remote_host);
+
+ /* Talk to logind over the message bus */
+
+ r = sd_bus_open_system(&bus);
+ if (r < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", strerror(-r));
+ return PAM_SESSION_ERR;
+ }
+
+ if (debug)
+ pam_syslog(handle, LOG_DEBUG, "Asking logind to create session: "
+ "uid=%u pid=%u service=%s type=%s class=%s desktop=%s seat=%s vtnr=%u tty=%s display=%s remote=%s remote_user=%s remote_host=%s",
+ pw->pw_uid, getpid(),
+ strempty(service),
+ type, class, strempty(desktop),
+ strempty(seat), vtnr, strempty(tty), strempty(display),
+ yes_no(remote), strempty(remote_user), strempty(remote_host));
+
+ r = sd_bus_call_method(bus,
+ "org.freedesktop.login1",
+ "/org/freedesktop/login1",
+ "org.freedesktop.login1.Manager",
+ "CreateSession",
+ &error,
+ &reply,
+ "uusssssussbssa(sv)",
+ (uint32_t) pw->pw_uid,
+ (uint32_t) getpid(),
+ service,
+ type,
+ class,
+ desktop,
+ seat,
+ vtnr,
+ tty,
+ display,
+ remote,
+ remote_user,
+ remote_host,
+ 0);
+ if (r < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to create session: %s", bus_error_message(&error, r));
+ return PAM_SYSTEM_ERR;
+ }
+
+ r = sd_bus_message_read(reply,
+ "soshusub",
+ &id,
+ &object_path,
+ &runtime_path,
+ &session_fd,
+ &original_uid,
+ &seat,
+ &vtnr,
+ &existing);
+ if (r < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to parse message: %s", strerror(-r));
+ return PAM_SESSION_ERR;
+ }
+
+ if (debug)
+ pam_syslog(handle, LOG_DEBUG, "Reply from logind: "
+ "id=%s object_path=%s runtime_path=%s session_fd=%d seat=%s vtnr=%u original_uid=%u",
+ id, object_path, runtime_path, session_fd, seat, vtnr, original_uid);
+
+ r = pam_misc_setenv(handle, "XDG_SESSION_ID", id, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set session id.");
+ return r;
+ }
+
+ if (original_uid == pw->pw_uid) {
+ /* Don't set $XDG_RUNTIME_DIR if the user we now
+ * authenticated for does not match the original user
+ * of the session. We do this in order not to result
+ * in privileged apps clobbering the runtime directory
+ * unnecessarily. */
+
+ r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set runtime dir.");
+ return r;
+ }
+
+ r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path);
+ if (r != PAM_SUCCESS)
+ return r;
+ }
+
+ if (!isempty(seat)) {
+ r = pam_misc_setenv(handle, "XDG_SEAT", seat, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set seat.");
+ return r;
+ }
+ }
+
+ if (vtnr > 0) {
+ char buf[DECIMAL_STR_MAX(vtnr)];
+ sprintf(buf, "%u", vtnr);
+
+ r = pam_misc_setenv(handle, "XDG_VTNR", buf, 0);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to set virtual terminal number.");
+ return r;
+ }
+ }
+
+ r = pam_set_data(handle, "systemd.existing", INT_TO_PTR(!!existing), NULL);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to install existing flag.");
+ return r;
+ }
+
+ if (session_fd >= 0) {
+ session_fd = fcntl(session_fd, F_DUPFD_CLOEXEC, 3);
+ if (session_fd < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to dup session fd: %m");
+ return PAM_SESSION_ERR;
+ }
+
+ r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL);
+ if (r != PAM_SUCCESS) {
+ pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
+ safe_close(session_fd);
+ return r;
+ }
+ }
+
+ return PAM_SUCCESS;
+}
+
+_public_ PAM_EXTERN int pam_sm_close_session(
+ pam_handle_t *handle,
+ int flags,
+ int argc, const char **argv) {
+
+ _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
+ _cleanup_bus_unref_ sd_bus *bus = NULL;
+ const void *existing = NULL;
+ const char *id;
+ int r;
+
+ assert(handle);
+
+ /* Only release session if it wasn't pre-existing when we
+ * tried to create it */
+ pam_get_data(handle, "systemd.existing", &existing);
+
+ id = pam_getenv(handle, "XDG_SESSION_ID");
+ if (id && !existing) {
+
+ /* Before we go and close the FIFO we need to tell
+ * logind that this is a clean session shutdown, so
+ * that it doesn't just go and slaughter us
+ * immediately after closing the fd */
+
+ r = sd_bus_open_system(&bus);
+ if (r < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", strerror(-r));
+ return PAM_SESSION_ERR;
+ }
+
+ r = sd_bus_call_method(bus,
+ "org.freedesktop.login1",
+ "/org/freedesktop/login1",
+ "org.freedesktop.login1.Manager",
+ "ReleaseSession",
+ &error,
+ NULL,
+ "s",
+ id);
+ if (r < 0) {
+ pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error, r));
+ return PAM_SESSION_ERR;
+ }
+ }
+
+ /* Note that we are knowingly leaking the FIFO fd here. This
+ * way, logind can watch us die. If we closed it here it would
+ * not have any clue when that is completed. Given that one
+ * cannot really have multiple PAM sessions open from the same
+ * process this means we will leak one FD at max. */
+
+ return PAM_SUCCESS;
+}
--- /dev/null
+/***
+ This file is part of systemd.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+***/
+
+{
+global:
+ pam_sm_close_session;
+ pam_sm_open_session;
+local: *;
+};
#include "bus-util.h"
#include "bus-label.h"
#include "strv.h"
-#include "machine.h"
#include "rtnl-util.h"
#include "bus-errors.h"
+#include "copy.h"
+#include "fileio.h"
+#include "machine.h"
static int property_get_id(
sd_bus *bus,
return sd_bus_send(bus, reply, NULL);
}
+int bus_machine_method_get_os_release(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+ _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
+ _cleanup_close_ int mntns_fd = -1, root_fd = -1;
+ _cleanup_close_pair_ int pair[2] = { -1, -1 };
+ _cleanup_strv_free_ char **l = NULL;
+ _cleanup_fclose_ FILE *f = NULL;
+ Machine *m = userdata;
+ char **k, **v;
+ siginfo_t si;
+ pid_t child;
+ int r;
+
+ assert(bus);
+ assert(message);
+ assert(m);
+
+ r = namespace_open(m->leader, NULL, &mntns_fd, NULL, &root_fd);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+
+ if (socketpair(AF_UNIX, SOCK_SEQPACKET, 0, pair) < 0)
+ return sd_bus_error_set_errno(error, -errno);
+
+ child = fork();
+ if (child < 0)
+ return sd_bus_error_set_errno(error, -errno);
+
+ if (child == 0) {
+ _cleanup_close_ int fd = -1;
+
+ pair[0] = safe_close(pair[0]);
+
+ r = namespace_enter(-1, mntns_fd, -1, root_fd);
+ if (r < 0)
+ _exit(EXIT_FAILURE);
+
+ fd = open("/etc/os-release", O_RDONLY|O_CLOEXEC);
+ if (fd < 0) {
+ fd = open("/usr/lib/os-release", O_RDONLY|O_CLOEXEC);
+ if (fd < 0)
+ _exit(EXIT_FAILURE);
+ }
+
+ r = copy_bytes(fd, pair[1], (off_t) -1);
+ if (r < 0)
+ _exit(EXIT_FAILURE);
+
+ _exit(EXIT_SUCCESS);
+ }
+
+ pair[1] = safe_close(pair[1]);
+
+ f = fdopen(pair[0], "re");
+ if (!f)
+ return sd_bus_error_set_errno(error, -errno);
+
+ pair[0] = -1;
+
+ r = load_env_file_pairs(f, "/etc/os-release", NULL, &l);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+
+ r = wait_for_terminate(child, &si);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+ if (si.si_code != CLD_EXITED || si.si_status != EXIT_SUCCESS)
+ return sd_bus_error_set_errno(error, EIO);
+
+ r = sd_bus_message_new_method_return(message, &reply);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+
+ r = sd_bus_message_open_container(reply, 'a', "{ss}");
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+
+ STRV_FOREACH_PAIR(k, v, l) {
+ r = sd_bus_message_append(reply, "{ss}", *k, *v);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+ }
+
+ r = sd_bus_message_close_container(reply);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+
+ return sd_bus_send(bus, reply, NULL);
+}
+
const sd_bus_vtable machine_vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_PROPERTY("Name", "s", NULL, offsetof(Machine, name), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_METHOD("Terminate", NULL, NULL, bus_machine_method_terminate, SD_BUS_VTABLE_CAPABILITY(CAP_KILL)),
SD_BUS_METHOD("Kill", "si", NULL, bus_machine_method_kill, SD_BUS_VTABLE_CAPABILITY(CAP_KILL)),
SD_BUS_METHOD("GetAddresses", NULL, "a(yay)", bus_machine_method_get_addresses, SD_BUS_VTABLE_UNPRIVILEGED),
- SD_BUS_VTABLE_END
+ SD_BUS_METHOD("GetOSRelease", NULL, "a{ss}", bus_machine_method_get_os_release, SD_BUS_VTABLE_UNPRIVILEGED),
+ SD_BUS_VTABLE_END
};
int machine_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error) {
m->timestamp.realtime,
m->timestamp.monotonic);
- fflush(f);
+ r = fflush_and_check(f);
+ if (r < 0)
+ goto finish;
- if (ferror(f) || rename(temp_path, m->state_file) < 0) {
+ if (rename(temp_path, m->state_file) < 0) {
r = -errno;
- unlink(m->state_file);
- unlink(temp_path);
+ goto finish;
}
if (m->unit) {
}
finish:
- if (r < 0)
+ if (r < 0) {
+ if (temp_path)
+ unlink(temp_path);
+
log_error("Failed to save machine data %s: %s", m->state_file, strerror(-r));
+ }
return r;
}
if (!m->unit)
return 0;
- r = manager_stop_unit(m->manager, m->unit, &error, &job);
- if (r < 0) {
- log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
- return r;
+ if (!m->registered) {
+ r = manager_stop_unit(m->manager, m->unit, &error, &job);
+ if (r < 0) {
+ log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
+ return r;
+ }
}
free(m->scope_job);
bool in_gc_queue:1;
bool started:1;
+ bool registered:1;
sd_bus_message *create_message;
int bus_machine_method_terminate(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
int bus_machine_method_kill(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
int bus_machine_method_get_addresses(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
+int bus_machine_method_get_os_release(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error);
int machine_send_signal(Machine *m, bool new_machine);
int machine_send_create_reply(Machine *m, sd_bus_error *error);
return 0;
}
+static int print_os_release(sd_bus *bus, const char *name, const char *prefix) {
+ _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
+ const char *k, *v, *pretty = NULL;
+ int r;
+
+ assert(bus);
+ assert(name);
+ assert(prefix);
+
+ r = sd_bus_call_method(bus,
+ "org.freedesktop.machine1",
+ "/org/freedesktop/machine1",
+ "org.freedesktop.machine1.Manager",
+ "GetMachineOSRelease",
+ NULL,
+ &reply,
+ "s", name);
+ if (r < 0)
+ return r;
+
+ r = sd_bus_message_enter_container(reply, 'a', "{ss}");
+ if (r < 0)
+ return bus_log_parse_error(r);
+
+ while ((r = sd_bus_message_read(reply, "{ss}", &k, &v)) > 0) {
+ if (streq(k, "PRETTY_NAME"))
+ pretty = v;
+
+ }
+ if (r < 0)
+ return bus_log_parse_error(r);
+
+ r = sd_bus_message_exit_container(reply);
+ if (r < 0)
+ return bus_log_parse_error(r);
+
+ if (pretty)
+ printf("%s%s\n", prefix, pretty);
+
+ return 0;
+}
+
typedef struct MachineStatusInfo {
char *name;
sd_id128_t id;
"\t Address: ",
"\t ");
+ print_os_release(bus, i->name, "\t OS: ");
+
if (i->unit) {
printf("\t Unit: %s\n", i->unit);
show_unit_cgroup(bus, i->unit, i->leader);
#include "cgroup-util.h"
#include "machined.h"
-static bool valid_machine_name(const char *p) {
- size_t l;
-
- if (!filename_is_safe(p))
- return false;
-
- if (!ascii_is_valid(p))
- return false;
-
- l = strlen(p);
-
- if (l < 1 || l> 64)
- return false;
-
- return true;
-}
-
static int method_get_machine(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_free_ char *p = NULL;
Manager *m = userdata;
r = sd_bus_message_read(message, "s", &name);
if (r < 0)
return r;
- if (!valid_machine_name(name))
+ if (!machine_name_is_valid(name))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid machine name");
r = sd_bus_message_read_array(message, 'y', &v, &n);
goto fail;
}
+ m->registered = true;
+
r = machine_start(m, NULL, error);
if (r < 0)
goto fail;
return bus_machine_method_get_addresses(bus, message, machine, error);
}
+static int method_get_machine_os_release(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+ Manager *m = userdata;
+ Machine *machine;
+ const char *name;
+ int r;
+
+ assert(bus);
+ assert(message);
+ assert(m);
+
+ r = sd_bus_message_read(message, "s", &name);
+ if (r < 0)
+ return sd_bus_error_set_errno(error, r);
+
+ machine = hashmap_get(m->machines, name);
+ if (!machine)
+ return sd_bus_error_setf(error, BUS_ERROR_NO_SUCH_MACHINE, "No machine '%s' known", name);
+
+ return bus_machine_method_get_os_release(bus, message, machine, error);
+}
+
const sd_bus_vtable manager_vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("GetMachine", "s", "o", method_get_machine, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("KillMachine", "ssi", NULL, method_kill_machine, SD_BUS_VTABLE_CAPABILITY(CAP_KILL)),
SD_BUS_METHOD("TerminateMachine", "s", NULL, method_terminate_machine, SD_BUS_VTABLE_CAPABILITY(CAP_KILL)),
SD_BUS_METHOD("GetMachineAddresses", "s", "a(yay)", method_get_machine_addresses, SD_BUS_VTABLE_UNPRIVILEGED),
+ SD_BUS_METHOD("GetMachineOSRelease", "s", "a{ss}", method_get_machine_os_release, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_SIGNAL("MachineNew", "so", 0),
SD_BUS_SIGNAL("MachineRemoved", "so", 0),
SD_BUS_VTABLE_END
send_interface="org.freedesktop.machine1.Machine"
send_member="GetAddresses"/>
+ <allow send_destination="org.freedesktop.machine1"
+ send_interface="org.freedesktop.machine1.Machine"
+ send_member="GetMachineOSRelease"/>
+
<allow receive_sender="org.freedesktop.machine1"/>
</policy>
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <arpa/inet.h>
+
+#include "networkd.h"
+
+int address_pool_new(
+ Manager *m,
+ AddressPool **ret,
+ unsigned family,
+ const union in_addr_union *u,
+ unsigned prefixlen) {
+
+ AddressPool *p;
+
+ assert(m);
+ assert(ret);
+ assert(u);
+
+ p = new0(AddressPool, 1);
+ if (!p)
+ return -ENOMEM;
+
+ p->manager = m;
+ p->family = family;
+ p->prefixlen = prefixlen;
+ p->in_addr = *u;
+
+ LIST_PREPEND(address_pools, m->address_pools, p);
+
+ *ret = p;
+ return 0;
+}
+
+int address_pool_new_from_string(
+ Manager *m,
+ AddressPool **ret,
+ unsigned family,
+ const char *p,
+ unsigned prefixlen) {
+
+ union in_addr_union u;
+ int r;
+
+ assert(m);
+ assert(ret);
+ assert(p);
+
+ r = in_addr_from_string(family, p, &u);
+ if (r < 0)
+ return r;
+
+ return address_pool_new(m, ret, family, &u, prefixlen);
+}
+
+void address_pool_free(AddressPool *p) {
+
+ if (!p)
+ return;
+
+ if (p->manager)
+ LIST_REMOVE(address_pools, p->manager->address_pools, p);
+
+ free(p);
+}
+
+static bool address_pool_prefix_is_taken(
+ AddressPool *p,
+ const union in_addr_union *u,
+ unsigned prefixlen) {
+
+ Iterator i;
+ Link *l;
+ Network *n;
+
+ assert(p);
+ assert(u);
+
+ HASHMAP_FOREACH(l, p->manager->links, i) {
+ Address *a;
+
+ /* Don't clash with assigned addresses */
+ LIST_FOREACH(addresses, a, l->addresses) {
+ if (a->family != p->family)
+ continue;
+
+ if (in_addr_prefix_intersect(p->family, u, prefixlen, &a->in_addr, a->prefixlen))
+ return true;
+ }
+
+ /* Don't clash with addresses already pulled from the pool, but not assigned yet */
+ LIST_FOREACH(addresses, a, l->pool_addresses) {
+ if (a->family != p->family)
+ continue;
+
+ if (in_addr_prefix_intersect(p->family, u, prefixlen, &a->in_addr, a->prefixlen))
+ return true;
+ }
+ }
+
+ /* And don't clash with configured but un-assigned addresses either */
+ LIST_FOREACH(networks, n, p->manager->networks) {
+ Address *a;
+
+ LIST_FOREACH(addresses, a, n->static_addresses) {
+ if (a->family != p->family)
+ continue;
+
+ if (in_addr_prefix_intersect(p->family, u, prefixlen, &a->in_addr, a->prefixlen))
+ return true;
+ }
+ }
+
+ return false;
+}
+
+int address_pool_acquire(AddressPool *p, unsigned prefixlen, union in_addr_union *found) {
+ union in_addr_union u;
+
+ assert(p);
+ assert(prefixlen > 0);
+ assert(found);
+
+ if (p->prefixlen > prefixlen)
+ return 0;
+
+ u = p->in_addr;
+ for (;;) {
+ if (!address_pool_prefix_is_taken(p, &u, prefixlen)) {
+ _cleanup_free_ char *s = NULL;
+
+ in_addr_to_string(p->family, &u, &s);
+ log_debug("Found range %s/%u", strna(s), prefixlen);
+
+ *found = u;
+ return 1;
+ }
+
+ if (!in_addr_prefix_next(p->family, &u, prefixlen))
+ return 0;
+
+ if (!in_addr_prefix_intersect(p->family, &p->in_addr, p->prefixlen, &u, prefixlen))
+ return 0;
+ }
+
+ return 0;
+}
return r;
}
+ link_ref(link);
+
return 0;
}
return r;
}
+ link_ref(link);
+
+ return 0;
+}
+
+static int address_acquire(Link *link, Address *original, Address **ret) {
+ union in_addr_union in_addr = {};
+ struct in_addr broadcast = {};
+ _cleanup_address_free_ Address *na = NULL;
+ int r;
+
+ assert(link);
+ assert(original);
+ assert(ret);
+
+ /* Something useful was configured? just use it */
+ if (in_addr_null(original->family, &original->in_addr) <= 0)
+ return 0;
+
+ /* The address is configured to be 0.0.0.0 or [::] by the user?
+ * Then let's acquire something more useful from the pool. */
+ r = manager_address_pool_acquire(link->manager, original->family, original->prefixlen, &in_addr);
+ if (r < 0) {
+ log_error_link(link, "Failed to acquire address from pool: %s", strerror(-r));
+ return r;
+ }
+ if (r == 0) {
+ log_error_link(link, "Couldn't find free address for interface, all taken.");
+ return -EBUSY;
+ }
+
+ if (original->family == AF_INET) {
+ /* Pick first address in range for ourselves ...*/
+ in_addr.in.s_addr = in_addr.in.s_addr | htobe32(1);
+
+ /* .. and use last as broadcast address */
+ broadcast.s_addr = in_addr.in.s_addr | htobe32(0xFFFFFFFFUL >> original->prefixlen);
+ } else if (original->family == AF_INET6)
+ in_addr.in6.s6_addr[15] |= 1;
+
+ r = address_new_dynamic(&na);
+ if (r < 0)
+ return r;
+
+ na->family = original->family;
+ na->prefixlen = original->prefixlen;
+ na->scope = original->scope;
+ na->cinfo = original->cinfo;
+
+ if (original->label) {
+ na->label = strdup(original->label);
+ if (!na->label)
+ return -ENOMEM;
+ }
+
+ na->broadcast = broadcast;
+ na->in_addr = in_addr;
+
+ LIST_PREPEND(addresses, link->pool_addresses, na);
+
+ *ret = na;
+ na = NULL;
+
return 0;
}
assert(link->manager);
assert(link->manager->rtnl);
+ r = address_acquire(link, address, &address);
+ if (r < 0)
+ return r;
+
r = sd_rtnl_message_new_addr(link->manager->rtnl, &req, RTM_NEWADDR,
link->ifindex, address->family);
if (r < 0) {
}
}
+ r = sd_rtnl_message_append_cache_info(req, IFA_CACHEINFO,
+ &address->cinfo);
+ if (r < 0) {
+ log_error("Could not append IFA_CACHEINFO attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
r = sd_rtnl_call_async(link->manager->rtnl, req, callback, link, 0, NULL);
if (r < 0) {
log_error("Could not send rtnetlink message: %s", strerror(-r));
return r;
}
+ link_ref(link);
+
return 0;
}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Susant Sahani <susant@redhat.com>
+ Copyright 2014 Tom Gundersen
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/ether.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <linux/veth.h>
+
+#include "sd-rtnl.h"
+#include "networkd.h"
+
+
+static int netdev_fill_dummy_rtnl_message(NetDev *netdev, sd_rtnl_message *m) {
+ int r;
+
+ assert(netdev);
+ assert(m);
+
+ r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_IFNAME, attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_LINKINFO attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_open_container_union(m, IFLA_INFO_DATA,
+ netdev_kind_to_string(netdev->kind));
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_INFO_DATA attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_close_container(m);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_LINKINFO attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ return r;
+}
+
+int netdev_create_dummy(NetDev *netdev, sd_rtnl_message_handler_t callback) {
+ _cleanup_rtnl_message_unref_ sd_rtnl_message *m = NULL;
+ int r;
+
+ assert(netdev);
+ assert(netdev->ifname);
+ assert(netdev->manager);
+ assert(netdev->manager->rtnl);
+
+ r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not allocate RTM_NEWLINK message: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if(netdev->kind != NETDEV_KIND_DUMMY)
+ return -ENOTSUP;
+
+ r = netdev_fill_dummy_rtnl_message(netdev, m);
+ if(r < 0)
+ return r;
+
+ r = sd_rtnl_call_async(netdev->manager->rtnl, m, callback, netdev, 0, NULL);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not send rtnetlink message: %s", strerror(-r));
+ return r;
+ }
+
+ netdev_ref(netdev);
+
+ log_debug_netdev(netdev, "Creating dummy netdev.");
+
+ netdev->state = NETDEV_STATE_CREATING;
+
+ return 0;
+}
#include <netinet/ether.h>
#include <linux/if.h>
+#include <unistd.h>
#include "networkd.h"
#include "libudev-private.h"
#include "virt.h"
#include "bus-util.h"
#include "network-internal.h"
+#include "conf-parser.h"
#include "network-util.h"
#include "dhcp-lease-internal.h"
r = sd_rtnl_message_read_ether_addr(message, IFLA_ADDRESS, &link->mac);
if (r < 0)
- return r;
+ log_debug_link(link, "MAC address not found for new device, continuing without");
r = asprintf(&link->state_file, "/run/systemd/netif/links/%"PRIu64,
link->ifindex);
if (!link)
return;
- assert(link->manager);
-
while ((address = link->addresses)) {
LIST_REMOVE(addresses, link->addresses, address);
address_free(address);
}
+ while ((address = link->pool_addresses)) {
+ LIST_REMOVE(addresses, link->pool_addresses, address);
+ address_free(address);
+ }
+
sd_dhcp_client_unref(link->dhcp_client);
sd_dhcp_lease_unref(link->dhcp_lease);
free(link->lease_file);
sd_ipv4ll_unref(link->ipv4ll);
+ sd_dhcp6_client_unref(link->dhcp6_client);
+ sd_icmp6_nd_unref(link->icmp6_router_discovery);
- hashmap_remove(link->manager->links, &link->ifindex);
+ if (link->manager)
+ hashmap_remove(link->manager->links, &link->ifindex);
free(link->ifname);
return;
}
-static int link_enter_configured(Link *link) {
- assert(link);
- assert(link->state == LINK_STATE_SETTING_ROUTES);
-
- log_info_link(link, "link configured");
-
- link->state = LINK_STATE_CONFIGURED;
-
- link_save(link);
-
- return 0;
-}
-
static void link_enter_unmanaged(Link *link) {
assert(link);
if (!link->network)
return 0;
- if (link->network->dhcp) {
+ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V6)) {
assert(link->dhcp_client);
k = sd_dhcp_client_stop(link->dhcp_client);
}
}
+ if (link->network->dhcp_server) {
+ assert(link->dhcp_server);
+
+ k = sd_dhcp_server_stop(link->dhcp_server);
+ if (k < 0) {
+ log_warning_link(link, "Could not stop DHCPv4 server: %s", strerror(-r));
+ r = k;
+ }
+ }
+
+ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V6)) {
+ assert(link->icmp6_router_discovery);
+
+ if (link->dhcp6_client) {
+ k = sd_dhcp6_client_stop(link->dhcp6_client);
+ if (k < 0) {
+ log_warning_link(link, "Could not stop DHCPv6 client: %s", strerror(-r));
+ r = k;
+ }
+ }
+
+ k = sd_icmp6_nd_stop(link->icmp6_router_discovery);
+ if (k < 0) {
+ log_warning_link(link, "Could not stop ICMPv6 router discovery: %s", strerror(-r));
+ r = k;
+ }
+ }
+
return r;
}
link_save(link);
}
+static Address* link_find_dhcp_server_address(Link *link) {
+ Address *address;
+
+ assert(link);
+ assert(link->network);
+
+ /* The the first statically configured address if there is any */
+ LIST_FOREACH(addresses, address, link->network->static_addresses) {
+
+ if (address->family != AF_INET)
+ continue;
+
+ if (in_addr_null(address->family, &address->in_addr))
+ continue;
+
+ return address;
+ }
+
+ /* If that didn't work, find a suitable address we got from the pool */
+ LIST_FOREACH(addresses, address, link->pool_addresses) {
+ if (address->family != AF_INET)
+ continue;
+
+ return address;
+ }
+
+ return NULL;
+}
+
+static int link_enter_configured(Link *link) {
+ int r;
+
+ assert(link);
+ assert(link->network);
+ assert(link->state == LINK_STATE_SETTING_ROUTES);
+
+ if (link->network->dhcp_server &&
+ !sd_dhcp_server_is_running(link->dhcp_server)) {
+ struct in_addr pool_start;
+ Address *address;
+
+ address = link_find_dhcp_server_address(link);
+ if (!address) {
+ log_warning_link(link, "Failed to find suitable address for DHCPv4 server instance.");
+ link_enter_failed(link);
+ return 0;
+ }
+
+ log_debug_link(link, "offering DHCPv4 leases");
+
+ r = sd_dhcp_server_set_address(link->dhcp_server, &address->in_addr.in);
+ if (r < 0)
+ return r;
+
+ /* offer 32 addresses starting from the address following the server address */
+ pool_start.s_addr = htobe32(be32toh(address->in_addr.in.s_addr) + 1);
+ r = sd_dhcp_server_set_lease_pool(link->dhcp_server,
+ &pool_start, 32);
+ if (r < 0)
+ return r;
+
+ /* TODO:
+ r = sd_dhcp_server_set_router(link->dhcp_server,
+ &main_address->in_addr.in);
+ if (r < 0)
+ return r;
+
+ r = sd_dhcp_server_set_prefixlen(link->dhcp_server,
+ main_address->prefixlen);
+ if (r < 0)
+ return r;
+ */
+
+ r = sd_dhcp_server_start(link->dhcp_server);
+ if (r < 0) {
+ log_warning_link(link, "could not start DHCPv4 server "
+ "instance: %s", strerror(-r));
+
+ link_enter_failed(link);
+
+ return 0;
+ }
+ }
+
+ log_info_link(link, "link configured");
+
+ link->state = LINK_STATE_CONFIGURED;
+
+ link_save(link);
+
+ return 0;
+}
+
static int route_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(link->route_messages > 0);
link->route_messages --;
- if (IN_SET(LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST)
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not set route: %s",
+ "MESSAGE=%-*s: could not set route: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
link_enter_configured(link);
}
- link_unref(link);
-
return 1;
}
+static int link_set_dhcp_routes(Link *link) {
+ struct sd_dhcp_route *static_routes;
+ size_t static_routes_size;
+ int r;
+ unsigned i;
+
+ assert(link);
+
+ r = sd_dhcp_lease_get_routes(link->dhcp_lease, &static_routes, &static_routes_size);
+ if (r < 0) {
+ if (r != -ENOENT)
+ log_warning_link(link, "DHCP error: could not get routes: %s", strerror(-r));
+ return r;
+ }
+
+ for (i = 0; i < static_routes_size; i++) {
+ _cleanup_route_free_ Route *route = NULL;
+
+ r = route_new_dynamic(&route);
+ if (r < 0) {
+ log_error_link(link, "Could not allocate route: %s",
+ strerror(-r));
+ return r;
+ }
+
+ route->family = AF_INET;
+ route->in_addr.in = static_routes[i].gw_addr;
+ route->dst_addr.in = static_routes[i].dst_addr;
+ route->dst_prefixlen = static_routes[i].dst_prefixlen;
+ route->metrics = DHCP_STATIC_ROUTE_METRIC;
+
+ r = route_configure(route, link, &route_handler);
+ if (r < 0) {
+ log_warning_link(link,
+ "could not set host route: %s", strerror(-r));
+ return r;
+ }
+
+ link->route_messages ++;
+ }
+
+ return 0;
+}
+
static int link_enter_set_routes(Link *link) {
Route *rt;
int r;
return r;
}
- link_ref(link);
link->route_messages ++;
}
return r;
}
- link_ref(link);
link->route_messages ++;
}
}
r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway);
if (r < 0 && r != -ENOENT) {
- log_warning_link(link, "DHCP error: %s", strerror(-r));
+ log_warning_link(link, "DHCP error: could not get gateway: %s",
+ strerror(-r));
return r;
}
route_gw->dst_addr.in = gateway;
route_gw->dst_prefixlen = 32;
route_gw->scope = RT_SCOPE_LINK;
+ route_gw->metrics = DHCP_STATIC_ROUTE_METRIC;
r = route_configure(route_gw, link, &route_handler);
if (r < 0) {
return r;
}
- link_ref(link);
link->route_messages ++;
route->family = AF_INET;
route->in_addr.in = gateway;
+ route->metrics = DHCP_STATIC_ROUTE_METRIC;
r = route_configure(route, link, &route_handler);
if (r < 0) {
return r;
}
- link_ref(link);
link->route_messages ++;
}
+
+ if (link->network->dhcp_routes)
+ link_set_dhcp_routes(link);
}
if (link->route_messages == 0) {
}
static int route_drop_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(m);
assert(link);
assert(link->ifname);
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -ESRCH)
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not drop route: %s",
+ "MESSAGE=%-*s: could not drop route: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
NULL);
- link_unref(link);
-
return 0;
}
static int address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(m);
link->addr_messages --;
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EEXIST)
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not set address: %s",
+ "MESSAGE=%-*s: could not set address: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
link_enter_set_routes(link);
}
- link_unref(link);
-
return 1;
}
static int link_enter_set_addresses(Link *link) {
Address *ad;
int r;
+ uint32_t lifetime = CACHE_INFO_INFINITY_LIFE_TIME;
assert(link);
assert(link->network);
return r;
}
- link_ref(link);
link->addr_messages ++;
}
return r;
}
- link_ref(link);
link->addr_messages ++;
}
}
return r;
}
+ if (!link->network->dhcp_critical) {
+ r = sd_dhcp_lease_get_lifetime(link->dhcp_lease,
+ &lifetime);
+ if (r < 0) {
+ log_warning_link(link, "DHCP error: no lifetime: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_dhcp_lease_get_netmask(link->dhcp_lease, &netmask);
if (r < 0) {
log_warning_link(link, "DHCP error: no netmask: %s",
address->family = AF_INET;
address->in_addr.in = addr;
+ address->cinfo.ifa_prefered = lifetime;
+ address->cinfo.ifa_valid = lifetime;
address->prefixlen = prefixlen;
address->broadcast.s_addr = addr.s_addr | ~netmask.s_addr;
- r = address_configure(address, link, &address_handler);
+ /* use update rather than configure so that we will update the lifetime
+ of an existing address if it has already been configured */
+ r = address_update(address, link, &address_handler);
if (r < 0) {
log_warning_link(link,
"could not set addresses: %s", strerror(-r));
return r;
}
- link_ref(link);
link->addr_messages ++;
}
}
static int address_update_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(m);
assert(link);
assert(link->ifname);
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -ENOENT)
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not update address: %s",
+ "MESSAGE=%-*s: could not update address: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
NULL);
- link_unref(link);
-
return 0;
}
static int address_drop_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(m);
assert(link);
assert(link->ifname);
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0 && r != -EADDRNOTAVAIL)
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not drop address: %s",
+ "MESSAGE=%-*s: could not drop address: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
NULL);
- link_unref(link);
-
return 0;
}
static int set_hostname_handler(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(link);
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_bus_message_get_errno(m);
if (r < 0)
log_warning_link(link, "Could not set hostname: %s", strerror(-r));
- link_unref(link);
-
return 1;
}
return r;
r = sd_bus_call_async(link->manager->bus, NULL, m, set_hostname_handler, link, 0);
- if (r < 0)
+ if (r < 0) {
log_error_link(link, "Could not set transient hostname: %s", strerror(-r));
+ return r;
+ }
link_ref(link);
- return r;
+ return 0;
}
static int set_mtu_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(m);
assert(link);
assert(link->ifname);
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0)
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%s: could not set MTU: %s",
- link->ifname, strerror(-r),
+ "MESSAGE=%-*s: could not set MTU: %s",
+ IFNAMSIZ, link->ifname, strerror(-r),
"ERRNO=%d", -r,
NULL);
- link_unref(link);
-
return 1;
}
return r;
}
- link_unref(link);
+ link_ref(link);
return 0;
}
static int dhcp_lease_lost(Link *link) {
_cleanup_address_free_ Address *address = NULL;
- _cleanup_route_free_ Route *route_gw = NULL;
- _cleanup_route_free_ Route *route = NULL;
struct in_addr addr;
struct in_addr netmask;
struct in_addr gateway;
unsigned prefixlen;
+ unsigned i;
int r;
assert(link);
log_warning_link(link, "DHCP lease lost");
+ if (link->network->dhcp_routes) {
+ struct sd_dhcp_route *routes;
+ size_t routes_size;
+
+ r = sd_dhcp_lease_get_routes(link->dhcp_lease, &routes, &routes_size);
+ if (r >= 0) {
+ for (i = 0; i < routes_size; i++) {
+ _cleanup_route_free_ Route *route = NULL;
+
+ r = route_new_dynamic(&route);
+ if (r >= 0) {
+ route->family = AF_INET;
+ route->in_addr.in = routes[i].gw_addr;
+ route->dst_addr.in = routes[i].dst_addr;
+ route->dst_prefixlen = routes[i].dst_prefixlen;
+
+ route_drop(route, link, &route_drop_handler);
+ }
+ }
+ }
+ }
+
r = address_new_dynamic(&address);
if (r >= 0) {
r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway);
if (r >= 0) {
+ _cleanup_route_free_ Route *route_gw = NULL;
+ _cleanup_route_free_ Route *route = NULL;
+
r = route_new_dynamic(&route_gw);
if (r >= 0) {
route_gw->family = AF_INET;
route_gw->scope = RT_SCOPE_LINK;
route_drop(route_gw, link, &route_drop_handler);
- link_ref(link);
}
r = route_new_dynamic(&route);
route->in_addr.in = gateway;
route_drop(route, link, &route_drop_handler);
- link_ref(link);
}
}
address->prefixlen = prefixlen;
address_drop(address, link, &address_drop_handler);
- link_ref(link);
}
if (link->network->dhcp_mtu) {
return 0;
}
+static int dhcp_lease_renew(sd_dhcp_client *client, Link *link) {
+ sd_dhcp_lease *lease;
+ int r;
+
+ r = sd_dhcp_client_get_lease(client, &lease);
+ if (r < 0) {
+ log_warning_link(link, "DHCP error: no lease %s",
+ strerror(-r));
+ return r;
+ }
+
+ sd_dhcp_lease_unref(link->dhcp_lease);
+ link->dhcp_lease = lease;
+
+ link_enter_set_addresses(link);
+
+ return 0;
+}
+
static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) {
sd_dhcp_lease *lease;
struct in_addr address;
r = sd_dhcp_lease_get_router(lease, &gateway);
if (r < 0 && r != -ENOENT) {
- log_warning_link(link, "DHCP error: %s", strerror(-r));
+ log_warning_link(link, "DHCP error: could not get gateway: %s",
+ strerror(-r));
return r;
}
if (r >= 0)
log_struct_link(LOG_INFO, link,
- "MESSAGE=%*s: DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u",
+ "MESSAGE=%-*s: DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u",
IFNAMSIZ,
link->ifname,
ADDRESS_FMT_VAL(address),
NULL);
else
log_struct_link(LOG_INFO, link,
- "MESSAGE=%*s: DHCPv4 address %u.%u.%u.%u/%u",
+ "MESSAGE=%-*s: DHCPv4 address %u.%u.%u.%u/%u",
IFNAMSIZ,
link->ifname,
ADDRESS_FMT_VAL(address),
}
}
+ break;
+ case DHCP_EVENT_RENEW:
+ r = dhcp_lease_renew(client, link);
+ if (r < 0) {
+ link_enter_failed(link);
+ return;
+ }
break;
case DHCP_EVENT_IP_ACQUIRE:
r = dhcp_lease_acquired(client, link);
break;
default:
if (event < 0)
- log_warning_link(link, "DHCP error: %s", strerror(-event));
+ log_warning_link(link, "DHCP error: client failed: %s", strerror(-event));
else
log_warning_link(link, "DHCP unknown event: %d", event);
break;
address->broadcast.s_addr = address->in_addr.in.s_addr | htonl(0xfffffffflu >> address->prefixlen);
address_update(address, link, &address_update_handler);
- link_ref(link);
}
return 0;
address->scope = RT_SCOPE_LINK;
address_drop(address, link, &address_drop_handler);
- link_ref(link);
r = route_new_dynamic(&route);
if (r < 0) {
route->metrics = 99;
route_drop(route, link, &route_drop_handler);
- link_ref(link);
}
return 0;
return r;
log_struct_link(LOG_INFO, link,
- "MESSAGE=%*s: IPv4 link-local address %u.%u.%u.%u",
+ "MESSAGE=%-*s: IPv4 link-local address %u.%u.%u.%u",
IFNAMSIZ,
link->ifname,
ADDRESS_FMT_VAL(address),
}
}
+static void dhcp6_handler(sd_dhcp6_client *client, int event, void *userdata) {
+ Link *link = userdata;
+
+ assert(link);
+ assert(link->network);
+ assert(link->manager);
+
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
+ return;
+
+ switch(event) {
+ case DHCP6_EVENT_STOP:
+ case DHCP6_EVENT_RESEND_EXPIRE:
+ case DHCP6_EVENT_RETRANS_MAX:
+ case DHCP6_EVENT_IP_ACQUIRE:
+ log_debug_link(link, "DHCPv6 event %d", event);
+
+ break;
+
+ default:
+ if (event < 0)
+ log_warning_link(link, "DHCPv6 error: %s",
+ strerror(-event));
+ else
+ log_warning_link(link, "DHCPv6 unknown event: %d",
+ event);
+ return;
+ }
+}
+
+static void icmp6_router_handler(sd_icmp6_nd *nd, int event, void *userdata) {
+ Link *link = userdata;
+ int r;
+
+ assert(link);
+ assert(link->network);
+ assert(link->manager);
+
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
+ return;
+
+ switch(event) {
+ case ICMP6_EVENT_ROUTER_ADVERTISMENT_NONE:
+ case ICMP6_EVENT_ROUTER_ADVERTISMENT_OTHER:
+ return;
+
+ case ICMP6_EVENT_ROUTER_ADVERTISMENT_TIMEOUT:
+ case ICMP6_EVENT_ROUTER_ADVERTISMENT_MANAGED:
+ break;
+
+ default:
+ if (event < 0)
+ log_warning_link(link, "ICMPv6 error: %s",
+ strerror(-event));
+ else
+ log_warning_link(link, "ICMPv6 unknown event: %d",
+ event);
+
+ return;
+ }
+
+ if (link->dhcp6_client)
+ return;
+
+ r = sd_dhcp6_client_new(&link->dhcp6_client);
+ if (r < 0)
+ return;
+
+ r = sd_dhcp6_client_attach_event(link->dhcp6_client, NULL, 0);
+ if (r < 0) {
+ link->dhcp6_client = sd_dhcp6_client_unref(link->dhcp6_client);
+ return;
+ }
+
+ r = sd_dhcp6_client_set_mac(link->dhcp6_client, &link->mac);
+ if (r < 0) {
+ link->dhcp6_client = sd_dhcp6_client_unref(link->dhcp6_client);
+ return;
+ }
+
+ r = sd_dhcp6_client_set_index(link->dhcp6_client, link->ifindex);
+ if (r < 0) {
+ link->dhcp6_client = sd_dhcp6_client_unref(link->dhcp6_client);
+ return;
+ }
+
+ r = sd_dhcp6_client_set_callback(link->dhcp6_client, dhcp6_handler,
+ link);
+ if (r < 0) {
+ link->dhcp6_client = sd_dhcp6_client_unref(link->dhcp6_client);
+ return;
+ }
+
+ r = sd_dhcp6_client_start(link->dhcp6_client);
+ if (r < 0)
+ link->dhcp6_client = sd_dhcp6_client_unref(link->dhcp6_client);
+}
+
static int link_acquire_conf(Link *link) {
int r;
}
}
- if (link->network->dhcp) {
+ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V4)) {
assert(link->dhcp_client);
log_debug_link(link, "acquiring DHCPv4 lease");
}
}
+ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V6)) {
+ assert(link->icmp6_router_discovery);
+
+ log_debug_link(link, "discovering IPv6 routers");
+
+ r = sd_icmp6_router_solicitation_start(link->icmp6_router_discovery);
+ if (r < 0) {
+ log_warning_link(link, "could not start IPv6 router discovery");
+ return r;
+ }
+ }
+
return 0;
}
}
static int link_up_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(link);
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
if (r < 0) {
/* we warn but don't fail the link, as it may
be brought up later */
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not bring up interface: %s",
+ "MESSAGE=%-*s: could not bring up interface: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
NULL);
}
- link_unref(link);
-
return 1;
}
assert(link->state == LINK_STATE_ENSLAVING);
assert(link->network);
+ log_debug_link(link, "enslaved");
+
if (!(link->flags & IFF_UP)) {
r = link_up(link);
if (r < 0) {
}
}
- if (!link->network->dhcp && !link->network->ipv4ll)
- return link_enter_set_addresses(link);
-
- return 0;
+ return link_enter_set_addresses(link);
}
static int enslave_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(link);
link->enslaving --;
- if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER)) {
- link_unref(link);
+ if (IN_SET(link->state, LINK_STATE_FAILED, LINK_STATE_LINGER))
return 1;
- }
r = sd_rtnl_message_get_errno(m);
- if (r < 0) {
+ if (r < 0 && r != -EEXIST) {
log_struct_link(LOG_ERR, link,
- "MESSAGE=%*s: could not enslave: %s",
+ "MESSAGE=%-*s: could not enslave: %s",
IFNAMSIZ,
link->ifname, strerror(-r),
"ERRNO=%d", -r,
NULL);
link_enter_failed(link);
- link_unref(link);
return 1;
}
- log_debug_link(link, "enslaved");
-
- if (link->enslaving == 0)
+ if (link->enslaving <= 0)
link_enslaved(link);
- link_unref(link);
-
return 1;
}
static int link_enter_enslave(Link *link) {
- NetDev *vlan, *macvlan;
+ NetDev *vlan, *macvlan, *vxlan;
Iterator i;
int r;
!link->network->bond &&
!link->network->tunnel &&
hashmap_isempty(link->network->vlans) &&
- hashmap_isempty(link->network->macvlans))
+ hashmap_isempty(link->network->macvlans) &&
+ hashmap_isempty(link->network->vxlans))
return link_enslaved(link);
if (link->network->bond) {
log_struct_link(LOG_DEBUG, link,
- "MESSAGE=%*s: enslaving by '%s'",
+ "MESSAGE=%-*s: enslaving by '%s'",
IFNAMSIZ,
link->ifname, link->network->bond->ifname,
NETDEV(link->network->bond),
r = netdev_enslave(link->network->bond, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not enslave by '%s': %s",
+ "MESSAGE=%-*s: could not enslave by '%s': %s",
IFNAMSIZ,
link->ifname, link->network->bond->ifname, strerror(-r),
NETDEV(link->network->bond),
return r;
}
- link_ref(link);
link->enslaving ++;
}
if (link->network->bridge) {
log_struct_link(LOG_DEBUG, link,
- "MESSAGE=%*s: enslaving by '%s'",
+ "MESSAGE=%-*s: enslaving by '%s'",
IFNAMSIZ,
link->ifname, link->network->bridge->ifname,
NETDEV(link->network->bridge),
r = netdev_enslave(link->network->bridge, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not enslave by '%s': %s",
+ "MESSAGE=%-*s: could not enslave by '%s': %s",
IFNAMSIZ,
link->ifname, link->network->bridge->ifname, strerror(-r),
NETDEV(link->network->bridge),
return r;
}
- link_ref(link);
link->enslaving ++;
}
if (link->network->tunnel) {
log_struct_link(LOG_DEBUG, link,
- "MESSAGE=%*s: enslaving by '%s'",
+ "MESSAGE=%-*s: enslaving by '%s'",
IFNAMSIZ,
link->ifname, link->network->tunnel->ifname,
NETDEV(link->network->tunnel),
r = netdev_enslave(link->network->tunnel, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not enslave by '%s': %s",
+ "MESSAGE=%-*s: could not enslave by '%s': %s",
IFNAMSIZ,
link->ifname, link->network->tunnel->ifname, strerror(-r),
NETDEV(link->network->tunnel),
return r;
}
- link_ref(link);
link->enslaving ++;
}
HASHMAP_FOREACH(vlan, link->network->vlans, i) {
log_struct_link(LOG_DEBUG, link,
- "MESSAGE=%*s: enslaving by '%s'",
+ "MESSAGE=%-*s: enslaving by '%s'",
IFNAMSIZ,
link->ifname, vlan->ifname, NETDEV(vlan), NULL);
r = netdev_enslave(vlan, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not enslave by '%s': %s",
+ "MESSAGE=%-*s: could not enslave by '%s': %s",
IFNAMSIZ,
link->ifname, vlan->ifname, strerror(-r),
NETDEV(vlan), NULL);
return r;
}
- link_ref(link);
link->enslaving ++;
}
HASHMAP_FOREACH(macvlan, link->network->macvlans, i) {
log_struct_link(LOG_DEBUG, link,
- "MESSAGE=%*s: enslaving by '%s'",
+ "MESSAGE=%-*s: enslaving by '%s'",
IFNAMSIZ,
link->ifname, macvlan->ifname, NETDEV(macvlan), NULL);
r = netdev_enslave(macvlan, link, &enslave_handler);
if (r < 0) {
log_struct_link(LOG_WARNING, link,
- "MESSAGE=%*s: could not enslave by '%s': %s",
+ "MESSAGE=%-*s: could not enslave by '%s': %s",
IFNAMSIZ,
link->ifname, macvlan->ifname, strerror(-r),
NETDEV(macvlan), NULL);
return r;
}
- link_ref(link);
+ link->enslaving ++;
+ }
+
+ HASHMAP_FOREACH(vxlan, link->network->vxlans, i) {
+ log_struct_link(LOG_DEBUG, link,
+ "MESSAGE=%*s: enslaving by '%s'",
+ IFNAMSIZ,
+ link->ifname, vxlan->ifname, NETDEV(vxlan), NULL);
+
+ r = netdev_enslave(vxlan, link, &enslave_handler);
+ if (r < 0) {
+ log_struct_link(LOG_WARNING, link,
+ "MESSAGE=%*s: could not enslave by '%s': %s",
+ IFNAMSIZ,
+ link->ifname, vxlan->ifname, strerror(-r),
+ NETDEV(vxlan), NULL);
+ link_enter_failed(link);
+ return r;
+ }
+
link->enslaving ++;
}
return r;
}
- if (link->network->dhcp) {
+ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V4)) {
r = sd_dhcp_client_new(&link->dhcp_client);
if (r < 0)
return r;
if (r < 0)
return r;
}
+
+ if (link->network->dhcp_routes) {
+ r = sd_dhcp_client_set_request_option(link->dhcp_client, DHCP_OPTION_STATIC_ROUTE);
+ if (r < 0)
+ return r;
+ r = sd_dhcp_client_set_request_option(link->dhcp_client, DHCP_OPTION_CLASSLESS_STATIC_ROUTE);
+ if (r < 0)
+ return r;
+ }
+
+ if (link->network->dhcp_sendhost) {
+ _cleanup_free_ char *hostname = gethostname_malloc();
+ if (!hostname)
+ return -ENOMEM;
+
+ if (!is_localhost(hostname)) {
+ r = sd_dhcp_client_set_hostname(link->dhcp_client, hostname);
+ if (r < 0)
+ return r;
+ }
+ }
+ }
+
+ if (link->network->dhcp_server) {
+ r = sd_dhcp_server_new(&link->dhcp_server, link->ifindex);
+ if (r < 0)
+ return r;
+
+ r = sd_dhcp_server_attach_event(link->dhcp_server, NULL, 0);
+ if (r < 0)
+ return r;
+ }
+
+ if (IN_SET(link->network->dhcp, DHCP_SUPPORT_BOTH, DHCP_SUPPORT_V6)) {
+ r = sd_icmp6_nd_new(&link->icmp6_router_discovery);
+ if (r < 0)
+ return r;
+
+ r = sd_icmp6_nd_attach_event(link->icmp6_router_discovery,
+ NULL, 0);
+ if (r < 0)
+ return r;
+
+ r = sd_icmp6_nd_set_mac(link->icmp6_router_discovery,
+ &link->mac);
+ if (r < 0)
+ return r;
+
+ r = sd_icmp6_nd_set_index(link->icmp6_router_discovery,
+ link->ifindex);
+ if (r < 0)
+ return r;
+
+ r = sd_icmp6_nd_set_callback(link->icmp6_router_discovery,
+ icmp6_router_handler, link);
+ if (r < 0)
+ return r;
}
if (link_has_carrier(link->flags, link->kernel_operstate)) {
return link_enter_enslave(link);
}
-int link_initialized(Link *link, struct udev_device *device) {
+static int link_initialized_and_synced(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
+ _cleanup_link_unref_ Link *link = userdata;
Network *network;
int r;
assert(link->manager);
if (link->state != LINK_STATE_INITIALIZING)
- return 0;
-
- if (device)
- link->udev_device = udev_device_ref(device);
+ return 1;
- log_debug_link(link, "udev initialized link");
+ log_debug_link(link, "link state is up-to-date");
- r = network_get(link->manager, device, link->ifname, &link->mac, &network);
+ r = network_get(link->manager, link->udev_device, link->ifname, &link->mac, &network);
if (r == -ENOENT) {
link_enter_unmanaged(link);
- return 0;
+ return 1;
} else if (r < 0)
return r;
if (r < 0)
return r;
+ return 1;
+}
+
+int link_initialized(Link *link, struct udev_device *device) {
+ _cleanup_rtnl_message_unref_ sd_rtnl_message *req = NULL;
+ int r;
+
+ assert(link);
+ assert(link->manager);
+ assert(link->manager->rtnl);
+ assert(device);
+
+ if (link->state != LINK_STATE_INITIALIZING)
+ return 0;
+
+ log_debug_link(link, "udev initialized link");
+
+ link->udev_device = udev_device_ref(device);
+
+ /* udev has initialized the link, but we don't know if we have yet processed
+ the NEWLINK messages with the latest state. Do a GETLINK, when it returns
+ we know that the pending NEWLINKs have already been processed and that we
+ are up-to-date */
+
+ r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_GETLINK, link->ifindex);
+ if (r < 0)
+ return r;
+
+ r = sd_rtnl_call_async(link->manager->rtnl, req, link_initialized_and_synced, link, 0, NULL);
+ if (r < 0)
+ return r;
+
+ link_ref(link);
+
return 0;
}
}
static int link_get_address_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Link *link = userdata;
+ _cleanup_link_unref_ Link *link = userdata;
int r;
assert(rtnl);
assert(m);
assert(link);
+ assert(link->manager);
for (; m; m = sd_rtnl_message_next(m)) {
r = sd_rtnl_message_get_errno(m);
if (r < 0)
return r;
+ link_ref(link);
+
if (detect_container(NULL) <= 0) {
/* not in a container, udev will be around */
sprintf(ifindex_str, "n%"PRIu64, link->ifindex);
log_debug_link(link, "udev initializing link...");
return 0;
}
- }
- r = link_initialized(link, device);
- if (r < 0)
- return r;
+ r = link_initialized(link, device);
+ if (r < 0)
+ return r;
+ } else {
+ /* we are calling a callback directly, so must take a ref */
+ link_ref(link);
+
+ r = link_initialized_and_synced(m->rtnl, NULL, link);
+ if (r < 0)
+ return r;
+ }
return 0;
}
return r;
}
}
+
+ if (link->dhcp6_client) {
+ r = sd_dhcp6_client_set_mac(link->dhcp6_client,
+ &link->mac);
+ if (r < 0) {
+ log_warning_link(link, "Could not update MAC address in DHCPv6 client: %s",
+ strerror(-r));
+ return r;
+ }
+ }
}
}
}
if (link->dhcp_lease) {
+ assert(link->network);
+
r = dhcp_lease_save(link->dhcp_lease, link->lease_file);
if (r < 0)
goto finish;
};
DEFINE_STRING_TABLE_LOOKUP(link_operstate, LinkOperationalState);
+
+static const char* const dhcp_support_table[_DHCP_SUPPORT_MAX] = {
+ [DHCP_SUPPORT_NONE] = "none",
+ [DHCP_SUPPORT_BOTH] = "both",
+ [DHCP_SUPPORT_V4] = "v4",
+ [DHCP_SUPPORT_V6] = "v6",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(dhcp_support, DHCPSupport);
+
+int config_parse_dhcp(
+ const char* unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
+
+ DHCPSupport *dhcp = data;
+ int k;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+ assert(data);
+
+ /* Our enum shall be a superset of booleans, hence first try
+ * to parse as boolean, and then as enum */
+
+ k = parse_boolean(rvalue);
+ if (k > 0)
+ *dhcp = DHCP_SUPPORT_BOTH;
+ else if (k == 0)
+ *dhcp = DHCP_SUPPORT_NONE;
+ else {
+ DHCPSupport s;
+
+ s = dhcp_support_from_string(rvalue);
+ if (s < 0){
+ log_syntax(unit, LOG_ERR, filename, line, -s, "Failed to parse DHCP option, ignoring: %s", rvalue);
+ return 0;
+ }
+
+ *dhcp = s;
+ }
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2013 Tom Gundersen <teg@jklm.no>
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <net/if.h>
+
+#include "networkd.h"
+#include "network-internal.h"
+#include "conf-parser.h"
+#include "list.h"
+
+static const char* const macvlan_mode_table[_NETDEV_MACVLAN_MODE_MAX] = {
+ [NETDEV_MACVLAN_MODE_PRIVATE] = "private",
+ [NETDEV_MACVLAN_MODE_VEPA] = "vepa",
+ [NETDEV_MACVLAN_MODE_BRIDGE] = "bridge",
+ [NETDEV_MACVLAN_MODE_PASSTHRU] = "passthru",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(macvlan_mode, MacVlanMode);
+DEFINE_CONFIG_PARSE_ENUM(config_parse_macvlan_mode, macvlan_mode, MacVlanMode, "Failed to parse macvlan mode");
+
+int netdev_create_macvlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
+ _cleanup_rtnl_message_unref_ sd_rtnl_message *req = NULL;
+ const char *kind;
+ int r;
+
+ assert(netdev);
+ assert(netdev->kind == NETDEV_KIND_MACVLAN);
+ assert(link);
+ assert(callback);
+ assert(netdev->ifname);
+ assert(netdev->manager);
+ assert(netdev->manager->rtnl);
+
+ r = sd_rtnl_message_new_link(netdev->manager->rtnl, &req, RTM_NEWLINK, 0);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not allocate RTM_NEWLINK message: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (link) {
+ r = sd_rtnl_message_append_u32(req, IFLA_LINK, link->ifindex);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_LINK attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_append_string(req, IFLA_IFNAME, netdev->ifname);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_IFNAME attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (netdev->mtu) {
+ r = sd_rtnl_message_append_u32(req, IFLA_MTU, netdev->mtu);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_MTU attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(req, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_open_container(req, IFLA_LINKINFO);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not open IFLA_LINKINFO container: %s",
+ strerror(-r));
+ return r;
+ }
+
+ kind = netdev_kind_to_string(netdev->kind);
+ if (!kind) {
+ log_error_netdev(netdev, "Invalid kind");
+ return -EINVAL;
+ }
+
+ r = sd_rtnl_message_open_container_union(req, IFLA_INFO_DATA, kind);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not open IFLA_INFO_DATA container: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (netdev->macvlan_mode != _NETDEV_MACVLAN_MODE_INVALID) {
+ r = sd_rtnl_message_append_u32(req, IFLA_MACVLAN_MODE, netdev->macvlan_mode);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_MACVLAN_MODE attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_close_container(req);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not close IFLA_INFO_DATA container %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_close_container(req);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not close IFLA_LINKINFO container %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_call_async(netdev->manager->rtnl, req, callback, link, 0, NULL);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not send rtnetlink message: %s", strerror(-r));
+ return r;
+ }
+
+ log_debug_netdev(netdev, "creating netdev");
+
+ netdev->state = NETDEV_STATE_CREATING;
+
+ return 0;
+}
return 0;
}
+static int setup_default_address_pool(Manager *m) {
+ AddressPool *p;
+ int r;
+
+ assert(m);
+
+ /* Add in the well-known private address ranges. */
+
+ r = address_pool_new_from_string(m, &p, AF_INET6, "fc00::", 7);
+ if (r < 0)
+ return r;
+
+ r = address_pool_new_from_string(m, &p, AF_INET, "192.168.0.0", 16);
+ if (r < 0)
+ return r;
+
+ r = address_pool_new_from_string(m, &p, AF_INET, "172.16.0.0", 12);
+ if (r < 0)
+ return r;
+
+ r = address_pool_new_from_string(m, &p, AF_INET, "10.0.0.0", 8);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
int manager_new(Manager **ret) {
_cleanup_manager_free_ Manager *m = NULL;
int r;
LIST_HEAD_INIT(m->networks);
+ r = setup_default_address_pool(m);
+ if (r < 0)
+ return r;
+
*ret = m;
m = NULL;
Network *network;
NetDev *netdev;
Link *link;
+ AddressPool *pool;
if (!m)
return;
netdev_unref(netdev);
hashmap_free(m->netdevs);
+ while ((pool = m->address_pools))
+ address_pool_free(pool);
+
sd_rtnl_unref(m->rtnl);
free(m);
/* link is new, so add it */
r = link_add(m, message, &link);
if (r < 0) {
- log_debug("could not add new link");
+ log_debug("could not add new link: %s",
+ strerror(-r));
return 0;
}
}
int manager_rtnl_listen(Manager *m) {
int r;
+ assert(m);
+
r = sd_rtnl_attach_event(m->rtnl, m->event, 0);
if (r < 0)
return r;
return r;
}
+
+int manager_address_pool_acquire(Manager *m, unsigned family, unsigned prefixlen, union in_addr_union *found) {
+ AddressPool *p;
+ int r;
+
+ assert(m);
+ assert(prefixlen > 0);
+ assert(found);
+
+ LIST_FOREACH(address_pools, p, m->address_pools) {
+ if (p->family != family)
+ continue;
+
+ r = address_pool_acquire(p, prefixlen, found);
+ if (r != 0)
+ return r;
+ }
+
+ return 0;
+}
NetDev.Name, config_parse_ifname, 0, offsetof(NetDev, ifname)
NetDev.Kind, config_parse_netdev_kind, 0, offsetof(NetDev, kind)
NetDev.MTUBytes, config_parse_iec_size, 0, offsetof(NetDev, mtu)
+NetDev.MACAddress, config_parse_hwaddr, 0, offsetof(NetDev, mac)
VLAN.Id, config_parse_uint64, 0, offsetof(NetDev, vlanid)
MACVLAN.Mode, config_parse_macvlan_mode, 0, offsetof(NetDev, macvlan_mode)
-Tunnel.Local, config_parse_tunnel_address, 0, offsetof(NetDev, tunnel_local)
-Tunnel.Remote, config_parse_tunnel_address, 0, offsetof(NetDev, tunnel_remote)
-Tunnel.TOS, config_parse_unsigned, 0, offsetof(NetDev, tunnel_tos)
-Tunnel.TTL, config_parse_unsigned, 0, offsetof(NetDev, tunnel_ttl)
+Tunnel.Local, config_parse_tunnel_address, 0, offsetof(NetDev, local)
+Tunnel.Remote, config_parse_tunnel_address, 0, offsetof(NetDev, remote)
+Tunnel.TOS, config_parse_unsigned, 0, offsetof(NetDev, tos)
+Tunnel.TTL, config_parse_unsigned, 0, offsetof(NetDev, ttl)
Tunnel.DiscoverPathMTU, config_parse_bool, 0, offsetof(NetDev, tunnel_pmtudisc)
Peer.Name, config_parse_ifname, 0, offsetof(NetDev, ifname_peer)
+Peer.MACAddress, config_parse_hwaddr, 0, offsetof(NetDev, mac_peer)
+VXLAN.Id, config_parse_uint64, 0, offsetof(NetDev, vxlanid)
+VXLAN.Group, config_parse_tunnel_address, 0, offsetof(NetDev, group)
+VXLAN.TOS, config_parse_unsigned, 0, offsetof(NetDev, tos)
+VXLAN.TTL, config_parse_unsigned, 0, offsetof(NetDev, ttl)
+VXLAN.MacLearning, config_parse_bool, 0, offsetof(NetDev, learning)
+Tun.OneQueue, config_parse_bool, 0, offsetof(NetDev, one_queue)
+Tun.MultiQueue, config_parse_bool, 0, offsetof(NetDev, multi_queue)
+Tun.PacketInfo, config_parse_bool, 0, offsetof(NetDev, packet_info)
+Tun.User, config_parse_string, 0, offsetof(NetDev, user_name)
+Tun.Group, config_parse_string, 0, offsetof(NetDev, group_name)
+Tap.OneQueue, config_parse_bool, 0, offsetof(NetDev, one_queue)
+Tap.MultiQueue, config_parse_bool, 0, offsetof(NetDev, multi_queue)
+Tap.PacketInfo, config_parse_bool, 0, offsetof(NetDev, packet_info)
+Tap.User, config_parse_string, 0, offsetof(NetDev, user_name)
+Tap.Group, config_parse_string, 0, offsetof(NetDev, group_name)
#include "conf-files.h"
#include "conf-parser.h"
#include "list.h"
-
-#define VLANID_MAX 4094
+#include "siphash24.h"
static const char* const netdev_kind_table[_NETDEV_KIND_MAX] = {
[NETDEV_KIND_BRIDGE] = "bridge",
[NETDEV_KIND_BOND] = "bond",
[NETDEV_KIND_VLAN] = "vlan",
[NETDEV_KIND_MACVLAN] = "macvlan",
+ [NETDEV_KIND_VXLAN] = "vxlan",
[NETDEV_KIND_IPIP] = "ipip",
[NETDEV_KIND_GRE] = "gre",
[NETDEV_KIND_SIT] = "sit",
[NETDEV_KIND_VETH] = "veth",
- [NETDEV_KIND_VTI] = "vti"
+ [NETDEV_KIND_VTI] = "vti",
+ [NETDEV_KIND_DUMMY] = "dummy",
+ [NETDEV_KIND_TUN] = "tun",
+ [NETDEV_KIND_TAP] = "tap",
};
DEFINE_STRING_TABLE_LOOKUP(netdev_kind, NetDevKind);
DEFINE_CONFIG_PARSE_ENUM(config_parse_netdev_kind, netdev_kind, NetDevKind, "Failed to parse netdev kind");
-static const char* const macvlan_mode_table[_NETDEV_MACVLAN_MODE_MAX] = {
- [NETDEV_MACVLAN_MODE_PRIVATE] = "private",
- [NETDEV_MACVLAN_MODE_VEPA] = "vepa",
- [NETDEV_MACVLAN_MODE_BRIDGE] = "bridge",
- [NETDEV_MACVLAN_MODE_PASSTHRU] = "passthru",
-};
-
-DEFINE_STRING_TABLE_LOOKUP(macvlan_mode, MacVlanMode);
-DEFINE_CONFIG_PARSE_ENUM(config_parse_macvlan_mode, macvlan_mode, MacVlanMode, "Failed to parse macvlan mode");
-
static void netdev_cancel_callbacks(NetDev *netdev) {
_cleanup_rtnl_message_unref_ sd_rtnl_message *m = NULL;
netdev_enslave_callback *callback;
free(netdev->description);
free(netdev->ifname);
+ free(netdev->ifname_peer);
+ free(netdev->mac);
+ free(netdev->mac_peer);
+ free(netdev->user_name);
+ free(netdev->group_name);
condition_free_list(netdev->match_host);
condition_free_list(netdev->match_virt);
return r;
}
+ link_ref(link);
+
log_debug_netdev(netdev, "enslaving link '%s'", link->ifname);
return 0;
}
static int netdev_enter_ready(NetDev *netdev) {
- netdev_enslave_callback *callback;
+ netdev_enslave_callback *callback, *callback_next;
+ int r;
assert(netdev);
assert(netdev->ifname);
log_info_netdev(netdev, "netdev ready");
- LIST_FOREACH(callbacks, callback, netdev->callbacks) {
+ LIST_FOREACH_SAFE(callbacks, callback, callback_next, netdev->callbacks) {
/* enslave the links that were attempted to be enslaved before the
* link was ready */
- netdev_enslave_ready(netdev, callback->link, callback->callback);
+ r = netdev_enslave_ready(netdev, callback->link, callback->callback);
+ if (r < 0)
+ return r;
+
+ LIST_REMOVE(callbacks, netdev->callbacks, callback);
+ link_unref(callback->link);
+ free(callback);
}
return 0;
}
+
+/* callback for netdev's created without a backing Link */
static int netdev_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- NetDev *netdev = userdata;
+ _cleanup_netdev_unref_ NetDev *netdev = userdata;
int r;
assert(netdev->state != _NETDEV_STATE_INVALID);
return 1;
}
-int config_parse_tunnel_address(const char *unit,
- const char *filename,
- unsigned line,
- const char *section,
- unsigned section_line,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
- NetDev *n = data;
- unsigned char family = AF_INET;
- int r;
-
- assert(filename);
- assert(lvalue);
- assert(rvalue);
- assert(data);
-
- r = net_parse_inaddr(rvalue, &family, n);
- if (r < 0) {
- log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "Tunnel address is invalid, ignoring assignment: %s", rvalue);
- return 0;
- }
- return 0;
-}
-
-static int netdev_create(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
+static int netdev_create(NetDev *netdev) {
_cleanup_rtnl_message_unref_ sd_rtnl_message *req = NULL;
const char *kind;
int r;
assert(netdev);
- assert(!(netdev->kind == NETDEV_KIND_VLAN || netdev->kind == NETDEV_KIND_MACVLAN) ||
- (link && callback));
assert(netdev->ifname);
assert(netdev->manager);
assert(netdev->manager->rtnl);
return r;
}
- if (link) {
- r = sd_rtnl_message_append_u32(req, IFLA_LINK, link->ifindex);
- if (r < 0) {
- log_error_netdev(netdev,
- "Could not append IFLA_LINK attribute: %s",
- strerror(-r));
- return r;
- }
- }
-
r = sd_rtnl_message_append_string(req, IFLA_IFNAME, netdev->ifname);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- if(netdev->mtu) {
+ if (netdev->mtu) {
r = sd_rtnl_message_append_u32(req, IFLA_MTU, netdev->mtu);
if (r < 0) {
log_error_netdev(netdev,
}
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(req, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(req, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- if (netdev->vlanid <= VLANID_MAX) {
- r = sd_rtnl_message_append_u16(req, IFLA_VLAN_ID, netdev->vlanid);
- if (r < 0) {
- log_error_netdev(netdev,
- "Could not append IFLA_VLAN_ID attribute: %s",
- strerror(-r));
- return r;
- }
- }
-
- if (netdev->macvlan_mode != _NETDEV_MACVLAN_MODE_INVALID) {
- r = sd_rtnl_message_append_u32(req, IFLA_MACVLAN_MODE, netdev->macvlan_mode);
- if (r < 0) {
- log_error_netdev(netdev,
- "Could not append IFLA_MACVLAN_MODE attribute: %s",
- strerror(-r));
- return r;
- }
- }
-
r = sd_rtnl_message_close_container(req);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- if (link)
- r = sd_rtnl_call_async(netdev->manager->rtnl, req, callback, link, 0, NULL);
- else
- r = sd_rtnl_call_async(netdev->manager->rtnl, req, &netdev_create_handler, netdev, 0, NULL);
+ r = sd_rtnl_call_async(netdev->manager->rtnl, req, &netdev_create_handler, netdev, 0, NULL);
if (r < 0) {
log_error_netdev(netdev,
"Could not send rtnetlink message: %s", strerror(-r));
return r;
}
+ netdev_ref(netdev);
+
log_debug_netdev(netdev, "creating netdev");
netdev->state = NETDEV_STATE_CREATING;
return 0;
}
+/* the callback must be called, possibly after a timeout, as otherwise the Link will hang */
int netdev_enslave(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
int r;
- if (netdev->kind == NETDEV_KIND_VLAN || netdev->kind == NETDEV_KIND_MACVLAN)
- return netdev_create(netdev, link, callback);
-
- if(netdev->kind == NETDEV_KIND_IPIP ||
- netdev->kind == NETDEV_KIND_GRE ||
- netdev->kind == NETDEV_KIND_SIT ||
- netdev->kind == NETDEV_KIND_VTI)
- return netdev_create_tunnel(link, netdev_create_handler);
+ switch(netdev->kind) {
+ case NETDEV_KIND_VLAN:
+ return netdev_create_vlan(netdev, link, callback);
+ case NETDEV_KIND_MACVLAN:
+ return netdev_create_macvlan(netdev, link, callback);
+ case NETDEV_KIND_VXLAN:
+ return netdev_create_vxlan(netdev, link, callback);
+ case NETDEV_KIND_IPIP:
+ case NETDEV_KIND_GRE:
+ case NETDEV_KIND_SIT:
+ case NETDEV_KIND_VTI:
+ return netdev_create_tunnel(netdev, link, callback);
+ default:
+ break;
+ }
if (netdev->state == NETDEV_STATE_READY) {
r = netdev_enslave_ready(netdev, link, callback);
cb->callback = callback;
cb->link = link;
+ link_ref(link);
LIST_PREPEND(callbacks, netdev->callbacks, cb);
}
return r;
}
- kind = netdev_kind_to_string(netdev->kind);
- if (!kind) {
- log_error_netdev(netdev, "Could not get kind");
- netdev_enter_failed(netdev);
- return -EINVAL;
+ if (netdev->kind == NETDEV_KIND_TAP)
+ /* the kernel does not distinguish between tun and tap */
+ kind = "tun";
+ else {
+ kind = netdev_kind_to_string(netdev->kind);
+ if (!kind) {
+ log_error_netdev(netdev, "Could not get kind");
+ netdev_enter_failed(netdev);
+ return -EINVAL;
+ }
}
if (!streq(kind, received_kind)) {
- log_error_netdev(netdev, "Received newlink with wrong KIND %s, "
+ log_error_netdev(netdev,
+ "Received newlink with wrong KIND %s, "
"expected %s", received_kind, kind);
netdev_enter_failed(netdev);
return r;
return 0;
}
+#define HASH_KEY SD_ID128_MAKE(52,e1,45,bd,00,6f,29,96,21,c6,30,6d,83,71,04,48)
+
+static int netdev_get_mac(const char *ifname, struct ether_addr **ret) {
+ _cleanup_free_ struct ether_addr *mac = NULL;
+ uint8_t result[8];
+ size_t l, sz;
+ uint8_t *v;
+ int r;
+
+ assert(ifname);
+ assert(ret);
+
+ mac = new0(struct ether_addr, 1);
+ if (!mac)
+ return -ENOMEM;
+
+ l = strlen(ifname);
+ sz = sizeof(sd_id128_t) + l;
+ v = alloca(sz);
+
+ /* fetch some persistent data unique to the machine */
+ r = sd_id128_get_machine((sd_id128_t*) v);
+ if (r < 0)
+ return r;
+
+ /* combine with some data unique (on this machine) to this
+ * netdev */
+ memcpy(v + sizeof(sd_id128_t), ifname, l);
+
+ /* Let's hash the host machine ID plus the container name. We
+ * use a fixed, but originally randomly created hash key here. */
+ siphash24(result, v, sz, HASH_KEY.bytes);
+
+ assert_cc(ETH_ALEN <= sizeof(result));
+ memcpy(mac->ether_addr_octet, result, ETH_ALEN);
+
+ /* see eth_random_addr in the kernel */
+ mac->ether_addr_octet[0] &= 0xfe; /* clear multicast bit */
+ mac->ether_addr_octet[0] |= 0x02; /* set local assignment bit (IEEE802) */
+
+ *ret = mac;
+ mac = NULL;
+
+ return 0;
+}
+
static int netdev_load_one(Manager *manager, const char *filename) {
_cleanup_netdev_unref_ NetDev *netdev = NULL;
_cleanup_fclose_ FILE *file = NULL;
netdev->kind = _NETDEV_KIND_INVALID;
netdev->macvlan_mode = _NETDEV_MACVLAN_MODE_INVALID;
netdev->vlanid = VLANID_MAX + 1;
+ netdev->vxlanid = VXLAN_VID_MAX + 1;
netdev->tunnel_pmtudisc = true;
+ netdev->learning = true;
- r = config_parse(NULL, filename, file, "Match\0NetDev\0VLAN\0MACVLAN\0Tunnel\0Peer\0",
+ r = config_parse(NULL, filename, file,
+ "Match\0NetDev\0VLAN\0MACVLAN\0VXLAN\0Tunnel\0Peer\0Tun\0Tap\0",
config_item_perf_lookup, (void*) network_netdev_gperf_lookup,
false, false, netdev);
if (r < 0) {
return r;
}
- if (netdev->kind == _NETDEV_KIND_INVALID) {
+ switch (netdev->kind) {
+ case _NETDEV_KIND_INVALID:
log_warning("NetDev without Kind configured in %s. Ignoring", filename);
return 0;
+ case NETDEV_KIND_VLAN:
+ if (netdev->vlanid > VLANID_MAX) {
+ log_warning("VLAN without valid Id configured in %s. Ignoring", filename);
+ return 0;
+ }
+ break;
+ case NETDEV_KIND_VXLAN:
+ if (netdev->vxlanid > VXLAN_VID_MAX) {
+ log_warning("VXLAN without valid Id configured in %s. Ignoring", filename);
+ return 0;
+ }
+ break;
+ case NETDEV_KIND_IPIP:
+ case NETDEV_KIND_GRE:
+ case NETDEV_KIND_SIT:
+ case NETDEV_KIND_VTI:
+ if (netdev->local.in.s_addr == INADDR_ANY) {
+ log_warning("Tunnel without local address configured in %s. Ignoring", filename);
+ return 0;
+ }
+ if (netdev->remote.in.s_addr == INADDR_ANY) {
+ log_warning("Tunnel without remote address configured in %s. Ignoring", filename);
+ return 0;
+ }
+ if (netdev->family != AF_INET) {
+ log_warning("Tunnel with invalid address family configured in %s. Ignoring", filename);
+ return 0;
+ }
+ break;
+ default:
+ break;
}
if (!netdev->ifname) {
return 0;
}
- if (netdev->kind == NETDEV_KIND_VLAN && netdev->vlanid > VLANID_MAX) {
- log_warning("VLAN without valid Id configured in %s. Ignoring", filename);
+ if (netdev->kind != NETDEV_KIND_VLAN && netdev->vlanid <= VLANID_MAX) {
+ log_warning("VLAN Id configured for a %s in %s. Ignoring",
+ netdev_kind_to_string(netdev->kind), filename);
return 0;
}
- if (netdev->kind != NETDEV_KIND_VLAN && netdev->vlanid <= VLANID_MAX) {
- log_warning("VLAN Id configured for a %s in %s. Ignoring",
+ if (netdev->kind != NETDEV_KIND_VXLAN && netdev->vxlanid <= VXLAN_VID_MAX) {
+ log_warning("VXLAN Id configured for a %s in %s. Ignoring",
netdev_kind_to_string(netdev->kind), filename);
return 0;
}
NULL, NULL, NULL, NULL, NULL, NULL) <= 0)
return 0;
+ if (!netdev->mac) {
+ r = netdev_get_mac(netdev->ifname, &netdev->mac);
+ if (r < 0) {
+ log_error("Failed to generate predictable MAC address for %s",
+ netdev->ifname);
+ return r;
+ }
+ }
+
r = hashmap_put(netdev->manager->netdevs, netdev->ifname, netdev);
if (r < 0)
return r;
LIST_HEAD_INIT(netdev->callbacks);
- if(netdev->kind == NETDEV_KIND_VETH)
- return netdev_create_veth(netdev, netdev_create_handler);
+ switch (netdev->kind) {
+ case NETDEV_KIND_VETH:
+ if (!netdev->ifname_peer) {
+ log_warning("Veth NetDev without peer name configured "
+ "in %s. Ignoring", filename);
+ return 0;
+ }
+
+ if (!netdev->mac) {
+ r = netdev_get_mac(netdev->ifname_peer, &netdev->mac_peer);
+ if (r < 0) {
+ log_error("Failed to generate predictable MAC address for %s",
+ netdev->ifname_peer);
+ return r;
+ }
+ }
- if (netdev->kind != NETDEV_KIND_VLAN &&
- netdev->kind != NETDEV_KIND_MACVLAN &&
- netdev->kind != NETDEV_KIND_IPIP &&
- netdev->kind != NETDEV_KIND_GRE &&
- netdev->kind != NETDEV_KIND_SIT &&
- netdev->kind != NETDEV_KIND_VTI) {
- r = netdev_create(netdev, NULL, NULL);
+ r = netdev_create_veth(netdev, netdev_create_handler);
if (r < 0)
return r;
+
+ break;
+ case NETDEV_KIND_DUMMY:
+ r = netdev_create_dummy(netdev, netdev_create_handler);
+ if (r < 0)
+ return r;
+
+ break;
+ case NETDEV_KIND_BRIDGE:
+ case NETDEV_KIND_BOND:
+ r = netdev_create(netdev);
+ if (r < 0)
+ return r;
+ break;
+
+ case NETDEV_KIND_TUN:
+ case NETDEV_KIND_TAP:
+ r = netdev_create_tuntap(netdev);
+ if (r < 0)
+ return r;
+ break;
+
+ default:
+ break;
}
log_debug_netdev(netdev, "loaded %s", netdev_kind_to_string(netdev->kind));
Network.Bond, config_parse_netdev, 0, offsetof(Network, bond)
Network.VLAN, config_parse_netdev, 0, offsetof(Network, vlans)
Network.MACVLAN, config_parse_netdev, 0, offsetof(Network, macvlans)
-Network.DHCP, config_parse_bool, 0, offsetof(Network, dhcp)
+Network.VXLAN, config_parse_netdev, 0, offsetof(Network, vxlans)
+Network.DHCP, config_parse_dhcp, 0, offsetof(Network, dhcp)
+Network.DHCPServer, config_parse_bool, 0, offsetof(Network, dhcp_server)
Network.IPv4LL, config_parse_bool, 0, offsetof(Network, ipv4ll)
Network.Address, config_parse_address, 0, 0
Network.Gateway, config_parse_gateway, 0, 0
Address.Label, config_parse_label, 0, 0
Route.Gateway, config_parse_gateway, 0, 0
Route.Destination, config_parse_destination, 0, 0
+DHCP.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_dns)
+DHCP.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_mtu)
+DHCP.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname)
+DHCP.UseDomainName, config_parse_bool, 0, offsetof(Network, dhcp_domainname)
+DHCP.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_routes)
+DHCP.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_sendhost)
+DHCP.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical)
+/* backwards compatibility: do not add new entries to this section */
DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_dns)
DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_mtu)
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname)
if (!network->macvlans)
return log_oom();
+ network->vxlans = hashmap_new(uint64_hash_func, uint64_compare_func);
+ if (!network->vxlans)
+ return log_oom();
+
network->addresses_by_section = hashmap_new(uint64_hash_func, uint64_compare_func);
if (!network->addresses_by_section)
return log_oom();
network->dhcp_dns = true;
network->dhcp_hostname = true;
network->dhcp_domainname = true;
+ network->dhcp_routes = true;
+ network->dhcp_sendhost = true;
r = config_parse(NULL, filename, file, "Match\0Network\0Address\0Route\0DHCPv4\0", config_item_perf_lookup,
(void*) network_network_gperf_lookup, false, false, network);
netdev_unref(network->bond);
+ netdev_unref(network->tunnel);
+
HASHMAP_FOREACH(netdev, network->vlans, i)
netdev_unref(netdev);
hashmap_free(network->vlans);
netdev_unref(netdev);
hashmap_free(network->macvlans);
+ HASHMAP_FOREACH(netdev, network->vxlans, i)
+ netdev_unref(netdev);
+ hashmap_free(network->vxlans);
+
while ((route = network->static_routes))
route_free(route);
udev_device_get_property_value(device, "ID_NET_DRIVER"),
udev_device_get_devtype(device),
ifname)) {
- log_debug("%*s: found matching network '%s'", IFNAMSIZ, ifname,
+ log_debug("%-*s: found matching network '%s'", IFNAMSIZ, ifname,
network->filename);
*ret = network;
return 0;
return 0;
}
+ break;
+ case NETDEV_KIND_VXLAN:
+ r = hashmap_put(network->vxlans, netdev->ifname, netdev);
+ if (r < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Can not add VXLAN to network: %s", rvalue);
+ return 0;
+ }
+
break;
default:
assert_not_reached("Can not parse NetDev");
return r;
}
+ link_ref(link);
+
return 0;
}
return r;
}
+ link_ref(link);
+
return 0;
}
#include "networkd.h"
#include "network-internal.h"
#include "util.h"
+#include "missing.h"
+#include "conf-parser.h"
static int netdev_fill_ipip_rtnl_message(Link *link, sd_rtnl_message *m) {
netdev = link->network->tunnel;
+ assert(netdev->family == AF_INET);
+
r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname);
if (r < 0) {
log_error_netdev(netdev,
}
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_LOCAL, &netdev->tunnel_local);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_LOCAL, &netdev->local.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_LOCAL attribute: %s",
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_REMOTE, &netdev->tunnel_remote);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_REMOTE, &netdev->remote.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_REMOTE attribute: %s",
return r;
}
- r = sd_rtnl_message_append_u8(m, IFLA_IPTUN_TTL, netdev->tunnel_ttl);
+ r = sd_rtnl_message_append_u8(m, IFLA_IPTUN_TTL, netdev->ttl);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_TTL attribute: %s",
netdev = link->network->tunnel;
+ assert(netdev->family == AF_INET);
+
r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname);
if (r < 0) {
log_error_netdev(netdev,
}
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_LOCAL, &netdev->tunnel_local);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_LOCAL, &netdev->local.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_LOCAL attribute: %s",
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_REMOTE, &netdev->tunnel_remote);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_REMOTE, &netdev->remote.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_REMOTE attribute: %s",
return r;
}
- r = sd_rtnl_message_append_u8(m, IFLA_IPTUN_TOS, netdev->tunnel_tos);
+ r = sd_rtnl_message_append_u8(m, IFLA_IPTUN_TOS, netdev->tos);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_TOS attribute: %s",
netdev = link->network->tunnel;
+ assert(netdev->family == AF_INET);
+
r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname);
if (r < 0) {
log_error_netdev(netdev,
}
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_GRE_LOCAL, &netdev->tunnel_local);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_GRE_LOCAL, &netdev->local.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_GRE_LOCAL attribute: %s",
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_GRE_REMOTE, &netdev->tunnel_remote);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_GRE_REMOTE, &netdev->remote.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_GRE_REMOTE attribute: %s",
return r;
}
- r = sd_rtnl_message_append_u8(m, IFLA_GRE_TTL, netdev->tunnel_ttl);
+ r = sd_rtnl_message_append_u8(m, IFLA_GRE_TTL, netdev->ttl);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_GRE_TTL attribute: %s",
return r;
}
- r = sd_rtnl_message_append_u8(m, IFLA_GRE_TOS, netdev->tunnel_tos);
+ r = sd_rtnl_message_append_u8(m, IFLA_GRE_TOS, netdev->tos);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_GRE_TOS attribute: %s",
netdev = link->network->tunnel;
+ assert(netdev->family == AF_INET);
+
r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname);
if (r < 0) {
log_error_netdev(netdev,
}
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_VTI_LOCAL, &netdev->tunnel_local);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_VTI_LOCAL, &netdev->local.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_LOCAL attribute: %s",
return r;
}
- r = sd_rtnl_message_append_in_addr(m, IFLA_VTI_REMOTE, &netdev->tunnel_remote);
+ r = sd_rtnl_message_append_in_addr(m, IFLA_VTI_REMOTE, &netdev->remote.in);
if (r < 0) {
log_error_netdev(netdev,
"Could not append IFLA_IPTUN_REMOTE attribute: %s",
return r;
}
-int netdev_create_tunnel(Link *link, sd_rtnl_message_handler_t callback) {
+int netdev_create_tunnel(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
_cleanup_rtnl_message_unref_ sd_rtnl_message *m = NULL;
- NetDev *netdev;
int r;
- assert(link);
- assert(link->network);
- assert(link->network->tunnel);
-
- netdev = link->network->tunnel;
-
assert(netdev);
assert(netdev->ifname);
assert(netdev->manager);
assert(netdev->manager->rtnl);
+ assert(link);
+ assert(link->network);
+ assert(link->network->tunnel == netdev);
r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0);
if (r < 0) {
return -ENOTSUP;
}
- r = sd_rtnl_call_async(netdev->manager->rtnl, m, callback, netdev, 0, NULL);
+ r = sd_rtnl_call_async(netdev->manager->rtnl, m, callback, link, 0, NULL);
if (r < 0) {
log_error_netdev(netdev,
"Could not send rtnetlink message: %s", strerror(-r));
return 0;
}
+
+int config_parse_tunnel_address(const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
+ NetDev *n = userdata;
+ union in_addr_union *addr = data;
+ int r;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+ assert(data);
+
+ r = net_parse_inaddr(rvalue, &n->family, addr);
+ if (r < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Tunnel address is invalid, ignoring assignment: %s", rvalue);
+ return 0;
+ }
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Susant Sahani <susant@redhat.com>
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <linux/if_tun.h>
+
+#include "networkd.h"
+
+#define TUN_DEV "/dev/net/tun"
+
+
+static int netdev_fill_tuntap_message(NetDev *netdev, struct ifreq *ifr) {
+
+ assert(netdev);
+ assert(ifr);
+
+ memset(ifr, 0, sizeof(*ifr));
+
+ if (netdev->kind == NETDEV_KIND_TAP)
+ ifr->ifr_flags |= IFF_TAP;
+ else
+ ifr->ifr_flags |= IFF_TUN;
+
+ if (!netdev->packet_info)
+ ifr->ifr_flags |= IFF_NO_PI;
+
+ if (netdev->one_queue)
+ ifr->ifr_flags |= IFF_ONE_QUEUE;
+
+ if (netdev->multi_queue)
+ ifr->ifr_flags |= IFF_MULTI_QUEUE;
+
+ strncpy(ifr->ifr_name, netdev->ifname, IFNAMSIZ-1);
+
+ return 0;
+}
+
+static int netdev_tuntap_add(NetDev *netdev, struct ifreq *ifr) {
+ _cleanup_close_ int fd;
+ const char *user;
+ const char *group;
+ uid_t uid;
+ gid_t gid;
+ int r = 0;
+
+ fd = open(TUN_DEV, O_RDWR);
+ if (fd < 0) {
+ log_error_netdev(netdev,
+ "Failed to open tun dev: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = ioctl(fd, TUNSETIFF, ifr);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "TUNSETIFF failed on tun dev: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if(netdev->user_name) {
+
+ user = netdev->user_name;
+
+ r = get_user_creds(&user, &uid, NULL, NULL, NULL);
+ if (r < 0) {
+ log_error("Cannot resolve user name %s: %s",
+ netdev->user_name, strerror(-r));
+ return 0;
+ }
+
+ r = ioctl(fd, TUNSETOWNER, uid);
+ if ( r < 0) {
+ log_error_netdev(netdev,
+ "TUNSETOWNER failed on tun dev: %s",
+ strerror(-r));
+ }
+ }
+
+ if(netdev->group_name) {
+
+ group = netdev->group_name;
+
+ r = get_group_creds(&group, &gid);
+ if (r < 0) {
+ log_error("Cannot resolve group name %s: %s",
+ netdev->group_name, strerror(-r));
+ return 0;
+ }
+
+ r = ioctl(fd, TUNSETGROUP, gid);
+ if( r < 0) {
+ log_error_netdev(netdev,
+ "TUNSETGROUP failed on tun dev: %s",
+ strerror(-r));
+ return r;
+ }
+
+ }
+
+ r = ioctl(fd, TUNSETPERSIST, 1);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "TUNSETPERSIST failed on tun dev: %s",
+ strerror(-r));
+ return r;
+ }
+
+ return r;
+}
+
+int netdev_create_tuntap(NetDev *netdev) {
+ struct ifreq ifr;
+ int r;
+
+ assert(netdev);
+ assert(netdev->ifname);
+
+ switch(netdev->kind) {
+ case NETDEV_KIND_TUN:
+ case NETDEV_KIND_TAP:
+ break;
+ default:
+ return -ENOTSUP;
+ }
+
+ r = netdev_fill_tuntap_message(netdev, &ifr);
+ if(r < 0)
+ return r;
+
+ log_debug_netdev(netdev, "Creating tuntap netdev: %s",
+ netdev_kind_to_string(netdev->kind));
+
+ return netdev_tuntap_add(netdev, &ifr);
+}
return r;
}
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
- if(netdev->ifname_peer) {
+ if (netdev->ifname_peer) {
r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname_peer);
if (r < 0) {
log_error("Failed to add netlink interface name: %s", strerror(-r));
}
}
+ if (netdev->mac_peer) {
+ r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac_peer);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
r = sd_rtnl_message_close_container(m);
if (r < 0) {
log_error_netdev(netdev,
return r;
}
+ netdev_ref(netdev);
+
log_debug_netdev(netdev, "Creating veth netdev: %s",
netdev_kind_to_string(netdev->kind));
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2013 Tom Gundersen <teg@jklm.no>
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <net/if.h>
+
+#include "networkd.h"
+#include "network-internal.h"
+#include "list.h"
+
+int netdev_create_vlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
+ _cleanup_rtnl_message_unref_ sd_rtnl_message *req = NULL;
+ const char *kind;
+ int r;
+
+ assert(netdev);
+ assert(netdev->kind == NETDEV_KIND_VLAN);
+ assert(link);
+ assert(callback);
+ assert(netdev->ifname);
+ assert(netdev->manager);
+ assert(netdev->manager->rtnl);
+
+ r = sd_rtnl_message_new_link(netdev->manager->rtnl, &req, RTM_NEWLINK, 0);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not allocate RTM_NEWLINK message: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (link) {
+ r = sd_rtnl_message_append_u32(req, IFLA_LINK, link->ifindex);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_LINK attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_append_string(req, IFLA_IFNAME, netdev->ifname);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_IFNAME attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (netdev->mtu) {
+ r = sd_rtnl_message_append_u32(req, IFLA_MTU, netdev->mtu);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_MTU attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ if (netdev->mac) {
+ r = sd_rtnl_message_append_ether_addr(req, IFLA_ADDRESS, netdev->mac);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Colud not append IFLA_ADDRESS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_open_container(req, IFLA_LINKINFO);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not open IFLA_LINKINFO container: %s",
+ strerror(-r));
+ return r;
+ }
+
+ kind = netdev_kind_to_string(netdev->kind);
+ if (!kind) {
+ log_error_netdev(netdev, "Invalid kind");
+ return -EINVAL;
+ }
+
+ r = sd_rtnl_message_open_container_union(req, IFLA_INFO_DATA, kind);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not open IFLA_INFO_DATA container: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (netdev->vlanid <= VLANID_MAX) {
+ r = sd_rtnl_message_append_u16(req, IFLA_VLAN_ID, netdev->vlanid);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VLAN_ID attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_close_container(req);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not close IFLA_INFO_DATA container %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_close_container(req);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not close IFLA_LINKINFO container %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_call_async(netdev->manager->rtnl, req, callback, link, 0, NULL);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not send rtnetlink message: %s", strerror(-r));
+ return r;
+ }
+
+ log_debug_netdev(netdev, "creating netdev");
+
+ netdev->state = NETDEV_STATE_CREATING;
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Susant Sahani <susant@redhat.com>
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/ether.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+
+#include "sd-rtnl.h"
+#include "networkd.h"
+#include "missing.h"
+
+
+static int netdev_fill_vxlan_rtnl_message(NetDev *netdev, Link *link, sd_rtnl_message *m) {
+ int r;
+
+ assert(link);
+ assert(link->network);
+ assert(m);
+
+ r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_IFNAME, attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_open_container(m, IFLA_LINKINFO);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_LINKINFO attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_open_container_union(m, IFLA_INFO_DATA,
+ netdev_kind_to_string(netdev->kind));
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_INFO_DATA attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if (netdev->vlanid <= VXLAN_VID_MAX) {
+ r = sd_rtnl_message_append_u32(m, IFLA_VXLAN_ID, netdev->vxlanid);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VXLAN_ID attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_append_in_addr(m, IFLA_VXLAN_GROUP, &netdev->group.in);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VXLAN_GROUP attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_append_u32(m, IFLA_VXLAN_LINK, link->ifindex);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VXLAN_LINK attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ if(netdev->ttl) {
+ r = sd_rtnl_message_append_u8(m, IFLA_VXLAN_TTL, netdev->ttl);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VXLAN_TTL attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ if(netdev->tos) {
+ r = sd_rtnl_message_append_u8(m, IFLA_VXLAN_TOS, netdev->tos);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VXLAN_TOS attribute: %s",
+ strerror(-r));
+ return r;
+ }
+ }
+
+ r = sd_rtnl_message_append_u8(m, IFLA_VXLAN_LEARNING, netdev->learning);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_VXLAN_LEARNING attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = sd_rtnl_message_close_container(m);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not append IFLA_LINKINFO attribute: %s",
+ strerror(-r));
+ return r;
+ }
+
+ return r;
+}
+
+int netdev_create_vxlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
+ _cleanup_rtnl_message_unref_ sd_rtnl_message *m = NULL;
+ int r;
+
+ assert(netdev);
+ assert(!(netdev->kind == NETDEV_KIND_VXLAN) || (link && callback));
+ assert(netdev->ifname);
+ assert(netdev->manager);
+ assert(netdev->manager->rtnl);
+
+ r = sd_rtnl_message_new_link(netdev->manager->rtnl, &m, RTM_NEWLINK, 0);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not allocate RTM_NEWLINK message: %s",
+ strerror(-r));
+ return r;
+ }
+
+ r = netdev_fill_vxlan_rtnl_message(netdev, link, m);
+ if(r < 0)
+ return r;
+
+ r = sd_rtnl_call_async(netdev->manager->rtnl, m, callback, link, 0, NULL);
+ if (r < 0) {
+ log_error_netdev(netdev,
+ "Could not send rtnetlink message: %s", strerror(-r));
+ return r;
+ }
+
+ log_debug_netdev(netdev, "Creating vxlan netdev: %s",
+ netdev_kind_to_string(netdev->kind));
+
+ netdev->state = NETDEV_STATE_CREATING;
+
+ return 0;
+}
#include "sd-rtnl.h"
#include "sd-bus.h"
#include "sd-dhcp-client.h"
+#include "sd-dhcp-server.h"
#include "sd-ipv4ll.h"
+#include "sd-icmp6-nd.h"
+#include "sd-dhcp6-client.h"
#include "udev.h"
#include "rtnl-util.h"
#include "list.h"
#include "set.h"
#include "condition-util.h"
+#include "socket-util.h"
#define CACHE_INFO_INFINITY_LIFE_TIME 0xFFFFFFFFU
+#define VXLAN_VID_MAX (1u << 24) - 1
+#define DHCP_STATIC_ROUTE_METRIC 1024
typedef struct NetDev NetDev;
typedef struct Network Network;
typedef struct Address Address;
typedef struct Route Route;
typedef struct Manager Manager;
+typedef struct AddressPool AddressPool;
typedef struct netdev_enslave_callback netdev_enslave_callback;
NETDEV_KIND_BOND,
NETDEV_KIND_VLAN,
NETDEV_KIND_MACVLAN,
+ NETDEV_KIND_VXLAN,
NETDEV_KIND_IPIP,
NETDEV_KIND_GRE,
NETDEV_KIND_SIT,
NETDEV_KIND_VETH,
NETDEV_KIND_VTI,
+ NETDEV_KIND_DUMMY,
+ NETDEV_KIND_TUN,
+ NETDEV_KIND_TAP,
_NETDEV_KIND_MAX,
_NETDEV_KIND_INVALID = -1
} NetDevKind;
char *description;
char *ifname;
char *ifname_peer;
+ char *user_name;
+ char *group_name;
size_t mtu;
+ struct ether_addr *mac;
+ struct ether_addr *mac_peer;
NetDevKind kind;
uint64_t vlanid;
+ uint64_t vxlanid;
int32_t macvlan_mode;
int ifindex;
NetDevState state;
bool tunnel_pmtudisc;
- unsigned tunnel_ttl;
- unsigned tunnel_tos;
- struct in_addr tunnel_local;
- struct in_addr tunnel_remote;
+ bool learning;
+ bool one_queue;
+ bool multi_queue;
+ bool packet_info;
+
+ unsigned ttl;
+ unsigned tos;
+ unsigned char family;
+ union in_addr_union local;
+ union in_addr_union remote;
+ union in_addr_union group;
LIST_HEAD(netdev_enslave_callback, callbacks);
};
+typedef enum DHCPSupport {
+ DHCP_SUPPORT_NONE,
+ DHCP_SUPPORT_BOTH,
+ DHCP_SUPPORT_V4,
+ DHCP_SUPPORT_V6,
+ _DHCP_SUPPORT_MAX,
+ _DHCP_SUPPORT_INVALID = -1,
+} DHCPSupport;
+
struct Network {
Manager *manager;
NetDev *tunnel;
Hashmap *vlans;
Hashmap *macvlans;
- bool dhcp;
+ Hashmap *vxlans;
+ DHCPSupport dhcp;
bool dhcp_dns;
bool dhcp_ntp;
bool dhcp_mtu;
bool dhcp_hostname;
bool dhcp_domainname;
+ bool dhcp_sendhost;
bool dhcp_critical;
+ bool dhcp_routes;
bool ipv4ll;
+ bool dhcp_server;
+
LIST_HEAD(Address, static_addresses);
LIST_HEAD(Route, static_routes);
struct in_addr broadcast;
struct ifa_cacheinfo cinfo;
- union {
- struct in_addr in;
- struct in6_addr in6;
- } in_addr;
+ union in_addr_union in_addr;
LIST_FIELDS(Address, addresses);
};
unsigned char scope;
uint32_t metrics;
- union {
- struct in_addr in;
- struct in6_addr in6;
- } in_addr;
-
- union {
- struct in_addr in;
- struct in6_addr in6;
- } dst_addr;
+ union in_addr_union in_addr;
+ union in_addr_union dst_addr;
LIST_FIELDS(Route, routes);
};
char *lease_file;
uint16_t original_mtu;
sd_ipv4ll *ipv4ll;
+
+ LIST_HEAD(Address, pool_addresses);
+
+ sd_dhcp_server *dhcp_server;
+
+ sd_icmp6_nd *icmp6_router_discovery;
+ sd_dhcp6_client *dhcp6_client;
+};
+
+struct AddressPool {
+ Manager *manager;
+
+ unsigned family;
+ unsigned prefixlen;
+
+ union in_addr_union in_addr;
+
+ LIST_FIELDS(AddressPool, address_pools);
};
struct Manager {
Hashmap *links;
Hashmap *netdevs;
LIST_HEAD(Network, networks);
+ LIST_HEAD(AddressPool, address_pools);
usec_t network_dirs_ts_usec;
};
int manager_save(Manager *m);
+int manager_address_pool_acquire(Manager *m, unsigned family, unsigned prefixlen, union in_addr_union *found);
+
DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
#define _cleanup_manager_free_ _cleanup_(manager_freep)
/* NetDev */
+#define VLANID_MAX 4094
+
int netdev_load(Manager *manager);
void netdev_drop(NetDev *netdev);
int netdev_get(Manager *manager, const char *name, NetDev **ret);
int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *newlink);
int netdev_enslave(NetDev *netdev, Link *link, sd_rtnl_message_handler_t cb);
-int netdev_create_tunnel(Link *link, sd_rtnl_message_handler_t callback);
+int netdev_create_tunnel(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback);
int netdev_create_veth(NetDev *netdev, sd_rtnl_message_handler_t callback);
+int netdev_create_vxlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback);
+int netdev_create_vlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback);
+int netdev_create_macvlan(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback);
+int netdev_create_dummy(NetDev *netdev, sd_rtnl_message_handler_t callback);
+int netdev_create_tuntap(NetDev *netdev);
const char *netdev_kind_to_string(NetDevKind d) _const_;
NetDevKind netdev_kind_from_string(const char *d) _pure_;
DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_unref);
#define _cleanup_link_unref_ _cleanup_(link_unrefp)
+/* DHCP support */
+
+const char* dhcp_support_to_string(DHCPSupport i) _const_;
+DHCPSupport dhcp_support_from_string(const char *s) _pure_;
+
+int config_parse_dhcp(const char *unit, const char *filename, unsigned line,
+ const char *section, unsigned section_line, const char *lvalue,
+ int ltype, const char *rvalue, void *data, void *userdata);
+
+/* Address Pool */
+
+int address_pool_new(Manager *m, AddressPool **ret, unsigned family, const union in_addr_union *u, unsigned prefixlen);
+int address_pool_new_from_string(Manager *m, AddressPool **ret, unsigned family, const char *p, unsigned prefixlen);
+void address_pool_free(AddressPool *p);
+
+int address_pool_acquire(AddressPool *p, unsigned prefixlen, union in_addr_union *found);
+
/* Macros which append INTERFACE= to the message */
-#define log_full_link(level, link, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", link->ifname, "%*s: " fmt, IFNAMSIZ, link->ifname, ##__VA_ARGS__)
+#define log_full_link(level, link, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", link->ifname, "%-*s: " fmt, IFNAMSIZ, link->ifname, ##__VA_ARGS__)
#define log_debug_link(link, ...) log_full_link(LOG_DEBUG, link, ##__VA_ARGS__)
#define log_info_link(link, ...) log_full_link(LOG_INFO, link, ##__VA_ARGS__)
#define log_notice_link(link, ...) log_full_link(LOG_NOTICE, link, ##__VA_ARGS__)
/* More macros which append INTERFACE= to the message */
-#define log_full_netdev(level, netdev, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", netdev->ifname, "%*s: " fmt, IFNAMSIZ, netdev->ifname, ##__VA_ARGS__)
+#define log_full_netdev(level, netdev, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", netdev->ifname, "%-*s: " fmt, IFNAMSIZ, netdev->ifname, ##__VA_ARGS__)
#define log_debug_netdev(netdev, ...) log_full_netdev(LOG_DEBUG, netdev, ##__VA_ARGS__)
#define log_info_netdev(netdev, ...) log_full_netdev(LOG_INFO, netdev, ##__VA_ARGS__)
#define log_notice_netdev(netdev, ...) log_full_netdev(LOG_NOTICE, netdev, ##__VA_ARGS__)
#include "networkd.h"
#include "network-internal.h"
+#include "dhcp-lease-internal.h"
static void test_deserialize_in_addr(void) {
_cleanup_free_ struct in_addr *addresses = NULL;
assert_se(!memcmp(&f, &addresses6[2], sizeof(struct in6_addr)));
}
+static void test_deserialize_dhcp_routes(void) {
+ size_t size, allocated;
+
+ {
+ _cleanup_free_ struct sd_dhcp_route *routes = NULL;
+ assert_se(deserialize_dhcp_routes(&routes, &size, &allocated, "") >= 0);
+ assert_se(size == 0);
+ }
+
+ {
+ /* no errors */
+ _cleanup_free_ struct sd_dhcp_route *routes = NULL;
+ const char *routes_string = "192.168.0.0/16,192.168.0.1 10.1.2.0/24,10.1.2.1 0.0.0.0/0,10.0.1.1";
+
+ assert_se(deserialize_dhcp_routes(&routes, &size, &allocated, routes_string) >= 0);
+
+ assert_se(size == 3);
+ assert_se(routes[0].dst_addr.s_addr == inet_addr("192.168.0.0"));
+ assert_se(routes[0].gw_addr.s_addr == inet_addr("192.168.0.1"));
+ assert_se(routes[0].dst_prefixlen == 16);
+
+ assert_se(routes[1].dst_addr.s_addr == inet_addr("10.1.2.0"));
+ assert_se(routes[1].gw_addr.s_addr == inet_addr("10.1.2.1"));
+ assert_se(routes[1].dst_prefixlen == 24);
+
+ assert_se(routes[2].dst_addr.s_addr == inet_addr("0.0.0.0"));
+ assert_se(routes[2].gw_addr.s_addr == inet_addr("10.0.1.1"));
+ assert_se(routes[2].dst_prefixlen == 0);
+ }
+
+ {
+ /* error in second word */
+ _cleanup_free_ struct sd_dhcp_route *routes = NULL;
+ const char *routes_string = "192.168.0.0/16,192.168.0.1 10.1.2.0#24,10.1.2.1 0.0.0.0/0,10.0.1.1";
+
+ assert_se(deserialize_dhcp_routes(&routes, &size, &allocated, routes_string) >= 0);
+
+ assert_se(size == 2);
+ assert_se(routes[0].dst_addr.s_addr == inet_addr("192.168.0.0"));
+ assert_se(routes[0].gw_addr.s_addr == inet_addr("192.168.0.1"));
+ assert_se(routes[0].dst_prefixlen == 16);
+
+ assert_se(routes[2].dst_addr.s_addr == inet_addr("0.0.0.0"));
+ assert_se(routes[2].gw_addr.s_addr == inet_addr("10.0.1.1"));
+ assert_se(routes[2].dst_prefixlen == 0);
+ }
+
+ {
+ /* error in every word */
+ _cleanup_free_ struct sd_dhcp_route *routes = NULL;
+ const char *routes_string = "192.168.0.0/55,192.168.0.1 10.1.2.0#24,10.1.2.1 0.0.0.0/0,10.0.1.X";
+
+ assert_se(deserialize_dhcp_routes(&routes, &size, &allocated, routes_string) >= 0);
+ assert_se(size == 0);
+ }
+}
+
static void test_load_config(Manager *manager) {
/* TODO: should_reload, is false if the config dirs do not exist, so
* so we can't do this test here, move it to a test for paths_check_timestamps
struct udev_device *loopback;
test_deserialize_in_addr();
+ test_deserialize_dhcp_routes();
test_address_equality();
assert_se(manager_new(&manager) >= 0);
#include "gpt.h"
#include "siphash24.h"
#include "copy.h"
+#include "base-filesystem.h"
#ifdef HAVE_SECCOMP
#include "seccomp-util.h"
}
static int setup_resolv_conf(const char *dest) {
- char _cleanup_free_ *where = NULL;
+ _cleanup_free_ char *where = NULL;
assert(dest);
return 0;
}
-static int audit_still_doesnt_work_in_containers(void) {
+static int setup_seccomp(void) {
#ifdef HAVE_SECCOMP
+ static const int blacklist[] = {
+ SCMP_SYS(kexec_load),
+ SCMP_SYS(open_by_handle_at),
+ SCMP_SYS(init_module),
+ SCMP_SYS(finit_module),
+ SCMP_SYS(delete_module),
+ SCMP_SYS(iopl),
+ SCMP_SYS(ioperm),
+ SCMP_SYS(swapon),
+ SCMP_SYS(swapoff),
+ };
+
scmp_filter_ctx seccomp;
+ unsigned i;
int r;
- /*
- Audit is broken in containers, much of the userspace audit
- hookup will fail if running inside a container. We don't
- care and just turn off creation of audit sockets.
-
- This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail
- with EAFNOSUPPORT which audit userspace uses as indication
- that audit is disabled in the kernel.
- */
-
seccomp = seccomp_init(SCMP_ACT_ALLOW);
if (!seccomp)
return log_oom();
goto finish;
}
+ for (i = 0; i < ELEMENTSOF(blacklist); i++) {
+ r = seccomp_rule_add(seccomp, SCMP_ACT_ERRNO(EPERM), blacklist[i], 0);
+ if (r == -EFAULT)
+ continue; /* unknown syscall */
+ if (r < 0) {
+ log_error("Failed to block syscall: %s", strerror(-r));
+ goto finish;
+ }
+ }
+
+ /*
+ Audit is broken in containers, much of the userspace audit
+ hookup will fail if running inside a container. We don't
+ care and just turn off creation of audit sockets.
+
+ This will make socket(AF_NETLINK, *, NETLINK_AUDIT) fail
+ with EAFNOSUPPORT which audit userspace uses as indication
+ that audit is disabled in the kernel.
+ */
+
r = seccomp_rule_add(
seccomp,
SCMP_ACT_ERRNO(EAFNOSUPPORT),
}
/*
- * Return 0 in case the container is being rebooted, has been shut
- * down or exited successfully. On failures a negative value is
- * returned.
+ * Return values:
+ * < 0 : wait_for_terminate() failed to get the state of the
+ * container, the container was terminated by a signal, or
+ * failed for an unknown reason. No change is made to the
+ * container argument.
+ * > 0 : The program executed in the container terminated with an
+ * error. The exit code of the program executed in the
+ * container is returned. No change is made to the container
+ * argument.
+ * 0 : The container is being rebooted, has been shut down or exited
+ * successfully. The container argument has been set to either
+ * CONTAINER_TERMINATED or CONTAINER_REBOOTED.
*
- * The status of the container "CONTAINER_TERMINATED" or
- * "CONTAINER_REBOOTED" will be saved in the container argument
+ * That is, success is indicated by a return value of zero, and an
+ * error is indicated by a non-zero value.
*/
static int wait_for_container(pid_t pid, ContainerStatus *container) {
int r;
siginfo_t status;
r = wait_for_terminate(pid, &status);
- if (r < 0)
+ if (r < 0) {
+ log_warning("Failed to wait for container: %s", strerror(-r));
return r;
+ }
switch (status.si_code) {
case CLD_EXITED:
} else {
log_error("Container %s failed with error code %i.",
arg_machine, status.si_status);
- r = -1;
}
break;
if (arg_boot) {
if (path_is_os_tree(arg_directory) <= 0) {
- log_error("Directory %s doesn't look like an OS root directory (/etc/os-release is missing). Refusing.", arg_directory);
+ log_error("Directory %s doesn't look like an OS root directory (os-release file is missing). Refusing.", arg_directory);
goto finish;
}
} else {
srv_device, srv_device_rw) < 0)
goto child_fail;
+ r = base_filesystem_create(arg_directory);
+ if (r < 0) {
+ log_error("Failed to create the base filesystem: %s", strerror(-r));
+ goto child_fail;
+ }
+
/* Turn directory into bind mount */
if (mount(arg_directory, arg_directory, "bind", MS_BIND|MS_REC, NULL) < 0) {
log_error("Failed to make bind mount: %m");
dev_setup(arg_directory);
- if (audit_still_doesnt_work_in_containers() < 0)
+ if (setup_seccomp() < 0)
goto child_fail;
if (setup_dev_console(arg_directory, console) < 0)
* join its cgroup which might limit what it can do */
r = eventfd_child_succeeded(eventfds[1]);
eventfds[1] = safe_close(eventfds[1]);
- if (r < 0)
- goto check_container_status;
- r = register_machine(pid);
- if (r < 0)
- goto finish;
+ if (r >= 0) {
+ r = register_machine(pid);
+ if (r < 0)
+ goto finish;
- r = move_network_interfaces(pid);
- if (r < 0)
- goto finish;
+ r = move_network_interfaces(pid);
+ if (r < 0)
+ goto finish;
- r = setup_veth(pid, veth_name);
- if (r < 0)
- goto finish;
+ r = setup_veth(pid, veth_name);
+ if (r < 0)
+ goto finish;
- r = setup_bridge(veth_name);
- if (r < 0)
- goto finish;
+ r = setup_bridge(veth_name);
+ if (r < 0)
+ goto finish;
- r = setup_macvlan(pid);
- if (r < 0)
- goto finish;
+ r = setup_macvlan(pid);
+ if (r < 0)
+ goto finish;
- /* Block SIGCHLD here, before notifying child.
- * process_pty() will handle it with the other signals. */
- r = sigprocmask(SIG_BLOCK, &mask_chld, NULL);
- if (r < 0)
- goto finish;
+ /* Block SIGCHLD here, before notifying child.
+ * process_pty() will handle it with the other signals. */
+ r = sigprocmask(SIG_BLOCK, &mask_chld, NULL);
+ if (r < 0)
+ goto finish;
- /* Reset signal to default */
- r = default_signals(SIGCHLD, -1);
- if (r < 0)
- goto finish;
+ /* Reset signal to default */
+ r = default_signals(SIGCHLD, -1);
+ if (r < 0)
+ goto finish;
- /* Notify the child that the parent is ready with all
- * its setup, and that the child can now hand over
- * control to the code to run inside the container. */
- r = eventfd_send_state(eventfds[0],
- EVENTFD_PARENT_SUCCEEDED);
- eventfds[0] = safe_close(eventfds[0]);
- if (r < 0)
- goto finish;
+ /* Notify the child that the parent is ready with all
+ * its setup, and that the child can now hand over
+ * control to the code to run inside the container. */
+ r = eventfd_send_state(eventfds[0], EVENTFD_PARENT_SUCCEEDED);
+ eventfds[0] = safe_close(eventfds[0]);
+ if (r < 0)
+ goto finish;
- k = process_pty(master, &mask, arg_boot ? pid : 0, SIGRTMIN+3);
- if (k < 0) {
- r = EXIT_FAILURE;
- break;
- }
+ k = process_pty(master, &mask, arg_boot ? pid : 0, SIGRTMIN+3);
+ if (k < 0) {
+ r = EXIT_FAILURE;
+ break;
+ }
- if (!arg_quiet)
- putc('\n', stdout);
+ if (!arg_quiet)
+ putc('\n', stdout);
- /* Kill if it is not dead yet anyway */
- terminate_machine(pid);
+ /* Kill if it is not dead yet anyway */
+ terminate_machine(pid);
+ }
-check_container_status:
- /* Redundant, but better safe than sorry */
+ /* Normally redundant, but better safe than sorry */
kill(pid, SIGKILL);
r = wait_for_container(pid, &container_status);
pid = 0;
if (r < 0) {
+ /* We failed to wait for the container, or the
+ * container exited abnormally */
r = EXIT_FAILURE;
break;
- } else if (container_status == CONTAINER_TERMINATED)
+ } else if (r > 0 || container_status == CONTAINER_TERMINATED)
+ /* The container exited with a non-zero
+ * status, or with zero status and no reboot
+ * was requested. */
break;
/* CONTAINER_REBOOTED, loop again */
+
+ if (arg_keep_unit) {
+ /* Special handling if we are running as a
+ * service: instead of simply restarting the
+ * machine we want to restart the entire
+ * service, so let's inform systemd about this
+ * with the special exit code 133. The service
+ * file uses RestartForceExitStatus=133 so
+ * that this results in a full nspawn
+ * restart. This is necessary since we might
+ * have cgroup parameters set we want to have
+ * flushed out. */
+ r = 133;
+ break;
+ }
}
finish:
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdio.h>
+#include <getopt.h>
+#include <error.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "sd-path.h"
+#include "build.h"
+#include "macro.h"
+#include "util.h"
+#include "log.h"
+
+static const char *arg_suffix = NULL;
+
+static const char* const path_table[_SD_PATH_MAX] = {
+ [SD_PATH_TEMPORARY] = "temporary",
+ [SD_PATH_TEMPORARY_LARGE] = "temporary-large",
+ [SD_PATH_SYSTEM_BINARIES] = "system-binaries",
+ [SD_PATH_SYSTEM_INCLUDE] = "system-include",
+ [SD_PATH_SYSTEM_LIBRARY_PRIVATE] = "system-library-private",
+ [SD_PATH_SYSTEM_LIBRARY_ARCH] = "system-library-arch",
+ [SD_PATH_SYSTEM_SHARED] = "system-shared",
+ [SD_PATH_SYSTEM_CONFIGURATION_FACTORY] = "system-configuration-factory",
+ [SD_PATH_SYSTEM_STATE_FACTORY] = "system-state-factory",
+ [SD_PATH_SYSTEM_CONFIGURATION] = "system-configuration",
+ [SD_PATH_SYSTEM_RUNTIME] = "system-runtime",
+ [SD_PATH_SYSTEM_RUNTIME_LOGS] = "system-runtime-logs",
+ [SD_PATH_SYSTEM_STATE_PRIVATE] = "system-state-private",
+ [SD_PATH_SYSTEM_STATE_LOGS] = "system-state-logs",
+ [SD_PATH_SYSTEM_STATE_CACHE] = "system-state-cache",
+ [SD_PATH_SYSTEM_STATE_SPOOL] = "system-state-spool",
+ [SD_PATH_USER_BINARIES] = "user-binaries",
+ [SD_PATH_USER_LIBRARY_PRIVATE] = "user-library-private",
+ [SD_PATH_USER_LIBRARY_ARCH] = "user-library-arch",
+ [SD_PATH_USER_SHARED] = "user-shared",
+ [SD_PATH_USER_CONFIGURATION] = "user-configuration",
+ [SD_PATH_USER_RUNTIME] = "user-runtime",
+ [SD_PATH_USER_STATE_CACHE] = "user-state-cache",
+ [SD_PATH_USER] = "user",
+ [SD_PATH_USER_DOCUMENTS] = "user-documents",
+ [SD_PATH_USER_MUSIC] = "user-music",
+ [SD_PATH_USER_PICTURES] = "user-pictures",
+ [SD_PATH_USER_VIDEOS] = "user-videos",
+ [SD_PATH_USER_DOWNLOAD] = "user-download",
+ [SD_PATH_USER_PUBLIC] = "user-public",
+ [SD_PATH_USER_TEMPLATES] = "user-templates",
+ [SD_PATH_USER_DESKTOP] = "user-desktop",
+ [SD_PATH_SEARCH_BINARIES] = "search-binaries",
+ [SD_PATH_SEARCH_LIBRARY_PRIVATE] = "search-library-private",
+ [SD_PATH_SEARCH_LIBRARY_ARCH] = "search-library-arch",
+ [SD_PATH_SEARCH_SHARED] = "search-shared",
+ [SD_PATH_SEARCH_CONFIGURATION_FACTORY] = "search-configuration-factory",
+ [SD_PATH_SEARCH_STATE_FACTORY] = "search-state-factory",
+ [SD_PATH_SEARCH_CONFIGURATION] = "search-configuration",
+};
+
+static int help(void) {
+
+ printf("%s [OPTIONS...] [NAME...]\n\n"
+ "Show system and user paths.\n\n"
+ " -h --help Show this help\n"
+ " --version Show package version\n"
+ " --suffix=SUFFIX Suffix to append to paths\n",
+ program_invocation_short_name);
+
+ return 0;
+}
+
+static int list_homes(void) {
+ uint64_t i = 0;
+ int r = 0;
+
+ for (i = 0; i < ELEMENTSOF(path_table); i++) {
+ _cleanup_free_ char *p = NULL;
+ int q;
+
+ q = sd_path_home(i, arg_suffix, &p);
+ if (q == -ENXIO)
+ continue;
+ if (q < 0) {
+ log_error("Failed to query %s: %s", path_table[i], strerror(-r));
+ r = q;
+ continue;
+ }
+
+ printf("%s: %s\n", path_table[i], p);
+ }
+
+ return r;
+}
+
+static int print_home(const char *n) {
+ uint64_t i = 0;
+ int r;
+
+ for (i = 0; i < ELEMENTSOF(path_table); i++) {
+ if (streq(path_table[i], n)) {
+ _cleanup_free_ char *p = NULL;
+
+ r = sd_path_home(i, arg_suffix, &p);
+ if (r < 0) {
+ log_error("Failed to query %s: %s", n, strerror(-r));
+ return r;
+ }
+
+ printf("%s\n", p);
+ return 0;
+ }
+ }
+
+ log_error("Path %s not known.", n);
+ return -ENOTSUP;
+}
+
+static int parse_argv(int argc, char *argv[]) {
+
+ enum {
+ ARG_VERSION = 0x100,
+ ARG_SUFFIX,
+ };
+
+ static const struct option options[] = {
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, ARG_VERSION },
+ { "suffix", required_argument, NULL, ARG_SUFFIX },
+ {}
+ };
+
+ int c;
+
+ assert(argc >= 0);
+ assert(argv);
+
+ while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) {
+
+ switch (c) {
+
+ case 'h':
+ return help();
+
+ case ARG_VERSION:
+ puts(PACKAGE_STRING);
+ puts(SYSTEMD_FEATURES);
+ return 0;
+
+ case ARG_SUFFIX:
+ arg_suffix = optarg;
+ break;
+
+ case '?':
+ return -EINVAL;
+
+ default:
+ assert_not_reached("Unhandled option");
+ }
+ }
+
+ return 1;
+}
+
+int main(int argc, char* argv[]) {
+ int r;
+
+ log_parse_environment();
+ log_open();
+
+ r = parse_argv(argc, argv);
+ if (r <= 0)
+ goto finish;
+
+ if (argc > optind) {
+ int i, q;
+
+ for (i = optind; i < argc; i++) {
+ q = print_home(argv[i]);
+ if (q < 0)
+ r = q;
+ }
+ } else
+ r = list_homes();
+
+
+finish:
+ return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+++ /dev/null
-add_id(m, "SD_MESSAGE_JOURNAL_START", SD_MESSAGE_JOURNAL_START) JOINER
-add_id(m, "SD_MESSAGE_JOURNAL_STOP", SD_MESSAGE_JOURNAL_STOP) JOINER
-add_id(m, "SD_MESSAGE_JOURNAL_DROPPED", SD_MESSAGE_JOURNAL_DROPPED) JOINER
-add_id(m, "SD_MESSAGE_JOURNAL_MISSED", SD_MESSAGE_JOURNAL_MISSED) JOINER
-add_id(m, "SD_MESSAGE_JOURNAL_USAGE", SD_MESSAGE_JOURNAL_USAGE) JOINER
-add_id(m, "SD_MESSAGE_COREDUMP", SD_MESSAGE_COREDUMP) JOINER
-add_id(m, "SD_MESSAGE_SESSION_START", SD_MESSAGE_SESSION_START) JOINER
-add_id(m, "SD_MESSAGE_SESSION_STOP", SD_MESSAGE_SESSION_STOP) JOINER
-add_id(m, "SD_MESSAGE_SEAT_START", SD_MESSAGE_SEAT_START) JOINER
-add_id(m, "SD_MESSAGE_SEAT_STOP", SD_MESSAGE_SEAT_STOP) JOINER
-add_id(m, "SD_MESSAGE_MACHINE_START", SD_MESSAGE_MACHINE_START) JOINER
-add_id(m, "SD_MESSAGE_MACHINE_STOP", SD_MESSAGE_MACHINE_STOP) JOINER
-add_id(m, "SD_MESSAGE_TIME_CHANGE", SD_MESSAGE_TIME_CHANGE) JOINER
-add_id(m, "SD_MESSAGE_TIMEZONE_CHANGE", SD_MESSAGE_TIMEZONE_CHANGE) JOINER
-add_id(m, "SD_MESSAGE_STARTUP_FINISHED", SD_MESSAGE_STARTUP_FINISHED) JOINER
-add_id(m, "SD_MESSAGE_SLEEP_START", SD_MESSAGE_SLEEP_START) JOINER
-add_id(m, "SD_MESSAGE_SLEEP_STOP", SD_MESSAGE_SLEEP_STOP) JOINER
-add_id(m, "SD_MESSAGE_SHUTDOWN", SD_MESSAGE_SHUTDOWN) JOINER
-add_id(m, "SD_MESSAGE_UNIT_STARTING", SD_MESSAGE_UNIT_STARTING) JOINER
-add_id(m, "SD_MESSAGE_UNIT_STARTED", SD_MESSAGE_UNIT_STARTED) JOINER
-add_id(m, "SD_MESSAGE_UNIT_STOPPING", SD_MESSAGE_UNIT_STOPPING) JOINER
-add_id(m, "SD_MESSAGE_UNIT_STOPPED", SD_MESSAGE_UNIT_STOPPED) JOINER
-add_id(m, "SD_MESSAGE_UNIT_FAILED", SD_MESSAGE_UNIT_FAILED) JOINER
-add_id(m, "SD_MESSAGE_UNIT_RELOADING", SD_MESSAGE_UNIT_RELOADING) JOINER
-add_id(m, "SD_MESSAGE_UNIT_RELOADED", SD_MESSAGE_UNIT_RELOADED) JOINER
-add_id(m, "SD_MESSAGE_SPAWN_FAILED", SD_MESSAGE_SPAWN_FAILED) JOINER
-add_id(m, "SD_MESSAGE_FORWARD_SYSLOG_MISSED", SD_MESSAGE_FORWARD_SYSLOG_MISSED) JOINER
-add_id(m, "SD_MESSAGE_OVERMOUNTING", SD_MESSAGE_OVERMOUNTING) JOINER
-add_id(m, "SD_MESSAGE_LID_OPENED", SD_MESSAGE_LID_OPENED) JOINER
-add_id(m, "SD_MESSAGE_LID_CLOSED", SD_MESSAGE_LID_CLOSED) JOINER
-add_id(m, "SD_MESSAGE_SYSTEM_DOCKED", SD_MESSAGE_SYSTEM_DOCKED) JOINER
-add_id(m, "SD_MESSAGE_SYSTEM_UNDOCKED", SD_MESSAGE_SYSTEM_UNDOCKED) JOINER
-add_id(m, "SD_MESSAGE_POWER_KEY", SD_MESSAGE_POWER_KEY) JOINER
-add_id(m, "SD_MESSAGE_SUSPEND_KEY", SD_MESSAGE_SUSPEND_KEY) JOINER
-add_id(m, "SD_MESSAGE_HIBERNATE_KEY", SD_MESSAGE_HIBERNATE_KEY) JOINER
-add_id(m, "SD_MESSAGE_CONFIG_ERROR", SD_MESSAGE_CONFIG_ERROR) JOINER
-add_id(m, "SD_MESSAGE_BOOTCHART", SD_MESSAGE_BOOTCHART) JOINER
else if (streq(value, "skip"))
arg_skip = true;
else
- log_warning("Invalid quotacheck.mode= parameter. Ignoring.");
+ log_warning("Invalid quotacheck.mode= parameter '%s'. Ignoring.", value);
+ }
- } else if (startswith(key, "quotacheck."))
- log_warning("Invalid quotacheck parameter. Ignoring.");
#ifdef HAVE_SYSV_COMPAT
else if (streq(key, "forcequotacheck") && !value) {
log_warning("Please use 'quotacheck.mode=force' rather than 'forcequotacheck' on the kernel command line.");
}
static void test_files(void) {
+
#ifdef HAVE_SYSV_COMPAT
if (access("/forcequotacheck", F_OK) >= 0) {
log_error("Please pass 'quotacheck.mode=force' on the kernel command line rather than creating /forcequotacheck on the root file system.");
}
if (st->st_size <= 0 || st->st_size > file_size_max) {
- log_debug("Not preloading file %s with size out of bounds %zu", fn, st->st_size);
+ assert_cc(sizeof(st->st_size) == 8);
+ log_debug("Not preloading file %s with size out of bounds %"PRIu64,
+ fn, st->st_size);
return 0;
}
}
ReadaheadShared *shared_get(void) {
- int _cleanup_close_ fd = -1;
+ _cleanup_close_ int fd = -1;
ReadaheadShared *m = NULL;
mkdirs();
int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry);
int calc_acl_mask_if_needed(acl_t *acl_p);
int search_acl_groups(char*** dst, const char* path, bool* belong);
+
+static inline void acl_freep(acl_t *acl) {
+
+ if (!*acl)
+ return;
+
+ acl_free(*acl);
+}
{ "tilegx", ARCHITECTURE_TILEGX },
#elif defined(__cris__)
{ "cris", ARCHITECTURE_CRIS },
+ { "crisv32", ARCHITECTURE_CRIS },
#else
#error "Please register your architecture here!"
#endif
#include "util.h"
+/* A cleaned up architecture definition. We don't want to get lost in
+ * processor features, models, generations or even ABIs. Hence we
+ * focus on general family, and distuignish word width and
+ * endianess. */
+
typedef enum Architecture {
ARCHITECTURE_X86 = 0,
ARCHITECTURE_X86_64,
ARCHITECTURE_SPARC,
ARCHITECTURE_SPARC64,
ARCHITECTURE_MIPS,
+ ARCHITECTURE_MIPS_LE,
ARCHITECTURE_MIPS64,
+ ARCHITECTURE_MIPS64_LE,
ARCHITECTURE_ALPHA,
ARCHITECTURE_ARM,
ARCHITECTURE_ARM_BE,
Architecture uname_architecture(void);
+/*
+ * LIB_ARCH_TUPLE should resolve to the local library path
+ * architecture tuple systemd is built for, according to the Debian
+ * tuple list:
+ *
+ * https://wiki.debian.org/Multiarch/Tuples
+ *
+ * This is used in library search paths that should understand
+ * Debian's paths on all distributions.
+ */
+
#if defined(__x86_64__)
# define native_architecture() ARCHITECTURE_X86_64
+# define LIB_ARCH_TUPLE "x86_64-linux-gnu"
#elif defined(__i386__)
# define native_architecture() ARCHITECTURE_X86
+# define LIB_ARCH_TUPLE "i386-linux-gnu"
#elif defined(__powerpc64__)
# if defined(WORDS_BIGENDIAN)
# define native_architecture() ARCHITECTURE_PPC64
+# define LIB_ARCH_TUPLE "ppc64-linux-gnu"
# else
# define native_architecture() ARCHITECTURE_PPC64_LE
+# error "Missing LIB_ARCH_TUPLE for PPC64LE"
# endif
#elif defined(__powerpc__)
# if defined(WORDS_BIGENDIAN)
# define native_architecture() ARCHITECTURE_PPC
+# define LIB_ARCH_TUPLE "powerpc-linux-gnu"
# else
# define native_architecture() ARCHITECTURE_PPC_LE
+# error "Missing LIB_ARCH_TUPLE for PPCLE"
# endif
#elif defined(__ia64__)
# define native_architecture() ARCHITECTURE_IA64
+# define LIB_ARCH_TUPLE "ia64-linux-gnu"
#elif defined(__hppa64__)
# define native_architecture() ARCHITECTURE_PARISC64
+# error "Missing LIB_ARCH_TUPLE for HPPA64"
#elif defined(__hppa__)
# define native_architecture() ARCHITECTURE_PARISC
+# define LIB_ARCH_TUPLE "hppa‑linux‑gnu"
#elif defined(__s390x__)
# define native_architecture() ARCHITECTURE_S390X
+# define LIB_ARCH_TUPLE "s390x-linux-gnu"
#elif defined(__s390__)
# define native_architecture() ARCHITECTURE_S390
+# define LIB_ARCH_TUPLE "s390-linux-gnu"
#elif defined(__sparc64__)
# define native_architecture() ARCHITECTURE_SPARC64
+# define LIB_ARCH_TUPLE "sparc64-linux-gnu"
#elif defined(__sparc__)
# define native_architecture() ARCHITECTURE_SPARC
+# define LIB_ARCH_TUPLE "sparc-linux-gnu"
#elif defined(__mips64__)
-# define native_architecture() ARCHITECTURE_MIPS64
+# if defined(WORDS_BIGENDIAN)
+# define native_architecture() ARCHITECTURE_MIPS64
+# error "Missing LIB_ARCH_TUPLE for MIPS64"
+# else
+# define native_architecture() ARCHITECTURE_MIPS64_LE
+# error "Missing LIB_ARCH_TUPLE for MIPS64_LE"
+# endif
#elif defined(__mips__)
-# define native_architecture() ARCHITECTURE_MIPS
+# if defined(WORDS_BIGENDIAN)
+# define native_architecture() ARCHITECTURE_MIPS
+# define LIB_ARCH_TUPLE "mips-linux-gnu"
+# else
+# define native_architecture() ARCHITECTURE_MIPS_LE
+# define LIB_ARCH_TUPLE "mipsel-linux-gnu"
+#endif
#elif defined(__alpha__)
# define native_architecture() ARCHITECTURE_ALPHA
+# define LIB_ARCH_TUPLE "alpha-linux-gnu"
#elif defined(__aarch64__)
# if defined(WORDS_BIGENDIAN)
# define native_architecture() ARCHITECTURE_ARM64_BE
+# define LIB_ARCH_TUPLE "aarch64_be-linux-gnu"
# else
# define native_architecture() ARCHITECTURE_ARM64
+# define LIB_ARCH_TUPLE "aarch64-linux-gnu"
# endif
#elif defined(__arm__)
# if defined(WORDS_BIGENDIAN)
# define native_architecture() ARCHITECTURE_ARM_BE
+# if defined(__ARM_EABI__)
+# if defined(__ARM_PCS_VFP)
+# define LIB_ARCH_TUPLE "armeb-linux-gnueabihf"
+# else
+# define LIB_ARCH_TUPLE "armeb-linux-gnueabi"
+# endif
+# else
+# define LIB_ARCH_TUPLE "armeb-linux-gnu"
+# endif
# else
# define native_architecture() ARCHITECTURE_ARM
+# if defined(__ARM_EABI__)
+# if defined(__ARM_PCS_VFP)
+# define LIB_ARCH_TUPLE "arm-linux-gnueabihf"
+# else
+# define LIB_ARCH_TUPLE "arm-linux-gnueabi"
+# endif
+# else
+# define LIB_ARCH_TUPLE "arm-linux-gnu"
+# endif
# endif
#elif defined(__sh64__)
# define native_architecture() ARCHITECTURE_SH64
+# error "Missing LIB_ARCH_TUPLE for SH64"
#elif defined(__sh__)
# define native_architecture() ARCHITECTURE_SH
+# define LIB_ARCH_TUPLE "sh4-linux-gnu"
#elif defined(__m68k__)
# define native_architecture() ARCHITECTURE_M68K
+# define LIB_ARCH_TUPLE "m68k-linux-gnu"
#elif defined(__tilegx__)
# define native_architecture() ARCHITECTURE_TILEGX
+# error "Missing LIB_ARCH_TUPLE for TILEGX"
#elif defined(__cris__)
# define native_architecture() ARCHITECTURE_CRIS
+# error "Missing LIB_ARCH_TUPLE for CRIS"
#else
#error "Please register your architecture here!"
#endif
if (r < 0)
return r;
- if (u == (uid_t) -1)
- return -ENXIO;
-
*uid = (uid_t) u;
return 0;
}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Kay Sievers
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <errno.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <unistd.h>
+
+#include "base-filesystem.h"
+#include "log.h"
+#include "macro.h"
+#include "strv.h"
+#include "util.h"
+#include "label.h"
+#include "mkdir.h"
+
+typedef struct BaseFilesystem {
+ const char *dir;
+ mode_t mode;
+ const char *target;
+ const char *exists;
+} BaseFilesystem;
+
+static const BaseFilesystem table[] = {
+ { "bin", 0, "usr/bin", NULL },
+ { "lib", 0, "usr/lib", NULL },
+ { "root", 0755, NULL, NULL },
+ { "sbin", 0, "usr/sbin", NULL },
+#if defined(__i386__) || defined(__x86_64__)
+ { "lib64", 0, "usr/lib/x86_64-linux-gnu\0usr/lib64", "ld-linux-x86-64.so.2" },
+#endif
+};
+
+int base_filesystem_create(const char *root) {
+ _cleanup_close_ int fd = -1;
+ unsigned i;
+ int r;
+
+ fd = open(root, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
+ if (fd < 0)
+ return -errno;
+
+ for (i = 0; i < ELEMENTSOF(table); i ++) {
+ if (table[i].target) {
+ const char *target = NULL;
+ const char *s;
+
+ if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
+ continue;
+
+ /* check if one of the targets exists */
+ NULSTR_FOREACH(s, table[i].target) {
+ if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
+ continue;
+
+ /* check if a specific file exists at the target path */
+ if (table[i].exists) {
+ _cleanup_free_ char *p = NULL;
+
+ p = strjoin(s, "/", table[i].exists, NULL);
+ if (!p)
+ return log_oom();
+
+ if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
+ continue;
+ }
+
+ target = s;
+ break;
+ }
+
+ if (!target)
+ continue;
+
+ r = symlinkat(target, fd, table[i].dir);
+ if (r < 0 && errno != EEXIST) {
+ log_error("Failed to create symlink at %s/%s: %m", root, table[i].dir);
+ return -errno;
+ }
+ continue;
+ }
+
+ RUN_WITH_UMASK(0000)
+ r = mkdirat(fd, table[i].dir, table[i].mode);
+ if (r < 0 && errno != EEXIST) {
+ log_error("Failed to create directory at %s/%s: %m", root, table[i].dir);
+ return -errno;
+ }
+ }
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Kay Sievers
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+int base_filesystem_create(const char *root);
}
bool condition_test_host(Condition *c) {
+ _cleanup_free_ char *h = NULL;
sd_id128_t x, y;
- char *h;
int r;
- bool b;
assert(c);
assert(c->parameter);
if (!h)
return c->negate;
- b = fnmatch(c->parameter, h, FNM_CASEFOLD) == 0;
- free(h);
-
- return b == !c->negate;
+ return (fnmatch(c->parameter, h, FNM_CASEFOLD) == 0) == !c->negate;
}
bool condition_test_ac_power(Condition *c) {
[CONDITION_HOST] = "ConditionHost",
[CONDITION_AC_POWER] = "ConditionACPower",
[CONDITION_ARCHITECTURE] = "ConditionArchitecture",
+ [CONDITION_NEEDS_UPDATE] = "ConditionNeedsUpdate",
[CONDITION_NULL] = "ConditionNull"
};
CONDITION_HOST,
CONDITION_AC_POWER,
CONDITION_ARCHITECTURE,
+ CONDITION_NEEDS_UPDATE,
CONDITION_NULL,
_CONDITION_TYPE_MAX,
_CONDITION_TYPE_INVALID = -1
#include "hashmap.h"
#include "conf-files.h"
-static int files_add(Hashmap *h, const char *dirpath, const char *suffix) {
+static int files_add(Hashmap *h, const char *root, const char *path, const char *suffix) {
_cleanup_closedir_ DIR *dir = NULL;
+ char *dirpath;
+
+ assert(path);
+ assert(suffix);
+
+ dirpath = strappenda(root ? root : "", path);
dir = opendir(dirpath);
if (!dir) {
}
static int conf_files_list_strv_internal(char ***strv, const char *suffix, const char *root, char **dirs) {
- Hashmap *fh;
+ _cleanup_hashmap_free_ Hashmap *fh = NULL;
char **files, **p;
int r;
assert(suffix);
/* This alters the dirs string array */
- if (!path_strv_canonicalize_absolute_uniq(dirs, root))
+ if (!path_strv_resolve_uniq(dirs, root))
return -ENOMEM;
fh = hashmap_new(string_hash_func, string_compare_func);
return -ENOMEM;
STRV_FOREACH(p, dirs) {
- r = files_add(fh, *p, suffix);
+ r = files_add(fh, root, *p, suffix);
if (r == -ENOMEM) {
- hashmap_free_free(fh);
return r;
} else if (r < 0)
log_debug("Failed to search for files in %s: %s",
files = hashmap_get_strv(fh);
if (files == NULL) {
- hashmap_free_free(fh);
return -ENOMEM;
}
qsort_safe(files, hashmap_size(fh), sizeof(char *), base_cmp);
*strv = files;
- hashmap_free(fh);
return 0;
}
#include "util.h"
#include "copy.h"
-static int stream_bytes(int fdf, int fdt) {
+int copy_bytes(int fdf, int fdt, off_t max_bytes) {
assert(fdf >= 0);
assert(fdt >= 0);
for (;;) {
char buf[PIPE_BUF];
ssize_t n, k;
+ size_t m = sizeof(buf);
- n = read(fdf, buf, sizeof(buf));
+ if (max_bytes != (off_t) -1) {
+
+ if (max_bytes <= 0)
+ return -E2BIG;
+
+ if ((off_t) m > max_bytes)
+ m = (size_t) max_bytes;
+ }
+
+ n = read(fdf, buf, m);
if (n < 0)
return -errno;
if (n == 0)
return k;
if (k != n)
return errno ? -errno : -EIO;
+
+ if (max_bytes != (off_t) -1) {
+ assert(max_bytes >= n);
+ max_bytes -= n;
+ }
}
return 0;
if (r < 0)
return r;
- if (symlinkat(target, dt, to) < 0) {
- if (errno == EEXIST)
- return 0;
-
+ if (symlinkat(target, dt, to) < 0)
return -errno;
- }
if (fchownat(dt, to, st->st_uid, st->st_gid, AT_SYMLINK_NOFOLLOW) < 0)
return -errno;
return -errno;
fdt = openat(dt, to, O_WRONLY|O_CREAT|O_EXCL|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, st->st_mode & 07777);
- if (fdt < 0) {
- if (errno == EEXIST)
- return 0;
-
+ if (fdt < 0)
return -errno;
- }
- r = stream_bytes(fdf, fdt);
+ r = copy_bytes(fdf, fdt, (off_t) -1);
if (r < 0) {
unlinkat(dt, to, 0);
return r;
assert(to);
r = mkfifoat(dt, to, st->st_mode & 07777);
- if (r < 0) {
- if (errno == EEXIST)
- return 0;
-
+ if (r < 0)
return -errno;
- }
if (fchownat(dt, to, st->st_uid, st->st_gid, AT_SYMLINK_NOFOLLOW) < 0)
r = -errno;
assert(to);
r = mknodat(dt, to, st->st_mode, st->st_rdev);
- if (r < 0) {
- if (errno == EEXIST)
- return 0;
-
+ if (r < 0)
return -errno;
- }
if (fchownat(dt, to, st->st_uid, st->st_gid, AT_SYMLINK_NOFOLLOW) < 0)
r = -errno;
return r;
}
-static int fd_copy_directory(int df, const char *from, const struct stat *st, int dt, const char *to, dev_t original_device) {
+static int fd_copy_directory(int df, const char *from, const struct stat *st, int dt, const char *to, dev_t original_device, bool merge) {
_cleanup_close_ int fdf = -1, fdt = -1;
_cleanup_closedir_ DIR *d = NULL;
struct dirent *de;
r = mkdirat(dt, to, st->st_mode & 07777);
if (r >= 0)
created = true;
- else if (errno == EEXIST)
+ else if (errno == EEXIST && merge)
created = false;
else
return -errno;
if (fdt < 0)
return -errno;
+ r = 0;
+
if (created) {
if (fchown(fdt, st->st_uid, st->st_gid) < 0)
r = -errno;
if (S_ISREG(buf.st_mode))
q = fd_copy_regular(dirfd(d), de->d_name, &buf, fdt, de->d_name);
else if (S_ISDIR(buf.st_mode))
- q = fd_copy_directory(dirfd(d), de->d_name, &buf, fdt, de->d_name, original_device);
+ q = fd_copy_directory(dirfd(d), de->d_name, &buf, fdt, de->d_name, original_device, merge);
else if (S_ISLNK(buf.st_mode))
q = fd_copy_symlink(dirfd(d), de->d_name, &buf, fdt, de->d_name);
else if (S_ISFIFO(buf.st_mode))
else
q = -ENOTSUP;
+ if (q == -EEXIST && merge)
+ q = 0;
+
if (q < 0)
r = q;
}
return r;
}
-int copy_tree(const char *from, const char *to) {
+int copy_tree(const char *from, const char *to, bool merge) {
struct stat st;
assert(from);
if (S_ISREG(st.st_mode))
return fd_copy_regular(AT_FDCWD, from, &st, AT_FDCWD, to);
else if (S_ISDIR(st.st_mode))
- return fd_copy_directory(AT_FDCWD, from, &st, AT_FDCWD, to, st.st_dev);
+ return fd_copy_directory(AT_FDCWD, from, &st, AT_FDCWD, to, st.st_dev, merge);
else if (S_ISLNK(st.st_mode))
return fd_copy_symlink(AT_FDCWD, from, &st, AT_FDCWD, to);
else if (S_ISFIFO(st.st_mode))
if (fdt < 0)
return -errno;
- r = stream_bytes(fdf, fdt);
+ r = copy_bytes(fdf, fdt, (off_t) -1);
if (r < 0) {
unlink(to);
return r;
***/
int copy_file(const char *from, const char *to, int flags, mode_t mode);
-int copy_tree(const char *from, const char *to);
+int copy_tree(const char *from, const char *to, bool merge);
+int copy_bytes(int fdf, int fdt, off_t max_bytes);
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Zbigniew Jędrzejewski-Szmek
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "dropin.h"
+#include "util.h"
+#include "mkdir.h"
+#include "fileio-label.h"
+
+int drop_in_file(const char *dir, const char *unit, unsigned level,
+ const char *name, char **_p, char **_q) {
+
+ _cleanup_free_ char *b = NULL;
+ char *p, *q;
+
+ char prefix[DECIMAL_STR_MAX(unsigned)];
+
+ assert(unit);
+ assert(name);
+ assert(_p);
+ assert(_q);
+
+ sprintf(prefix, "%u", level);
+
+ b = xescape(name, "/.");
+ if (!b)
+ return -ENOMEM;
+
+ if (!filename_is_safe(b))
+ return -EINVAL;
+
+ p = strjoin(dir, "/", unit, ".d", NULL);
+ if (!p)
+ return -ENOMEM;
+
+ q = strjoin(p, "/", prefix, "-", b, ".conf", NULL);
+ if (!q) {
+ free(p);
+ return -ENOMEM;
+ }
+
+ *_p = p;
+ *_q = q;
+ return 0;
+}
+
+int write_drop_in(const char *dir, const char *unit, unsigned level,
+ const char *name, const char *data) {
+
+ _cleanup_free_ char *p = NULL, *q = NULL;
+ int r;
+
+ assert(dir);
+ assert(unit);
+ assert(name);
+ assert(data);
+
+ r = drop_in_file(dir, unit, level, name, &p, &q);
+ if (r < 0)
+ return r;
+
+ mkdir_p(p, 0755);
+ return write_string_file_atomic_label(q, data);
+}
+
+int write_drop_in_format(const char *dir, const char *unit, unsigned level,
+ const char *name, const char *format, ...) {
+ _cleanup_free_ char *p = NULL;
+ va_list ap;
+ int r;
+
+ assert(dir);
+ assert(unit);
+ assert(name);
+ assert(format);
+
+ va_start(ap, format);
+ r = vasprintf(&p, format, ap);
+ va_end(ap);
+
+ if (r < 0)
+ return -ENOMEM;
+
+ return write_drop_in(dir, unit, level, name, p);
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#pragma once
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Zbigniew Jędrzejewski-Szmek
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+int drop_in_file(const char *dir, const char *unit, unsigned level,
+ const char *name, char **_p, char **_q);
+
+int write_drop_in(const char *dir, const char *unit, unsigned level,
+ const char *name, const char *data);
+
+int write_drop_in_format(const char *dir, const char *unit, unsigned level,
+ const char *name, const char *format, ...);
if (code == CLD_EXITED)
return status == 0 ||
(success_status &&
- set_contains(success_status->code, INT_TO_PTR(status)));
+ set_contains(success_status->status, INT_TO_PTR(status)));
/* If a daemon does not implement handlers for some of the
* signals that's not considered an unclean shutdown */
code == CLD_EXITED &&
(status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
}
+
+void exit_status_set_free(ExitStatusSet *x) {
+ assert(x);
+
+ set_free(x->status);
+ set_free(x->signal);
+ x->status = x->signal = NULL;
+}
+
+bool exit_status_set_is_empty(ExitStatusSet *x) {
+ if (!x)
+ return true;
+
+ return set_isempty(x->status) && set_isempty(x->signal);
+}
} ExitStatusLevel;
typedef struct ExitStatusSet {
- Set *code;
+ Set *status;
Set *signal;
} ExitStatusSet;
bool is_clean_exit(int code, int status, ExitStatusSet *success_status);
bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status);
+
+void exit_status_set_free(ExitStatusSet *x);
+bool exit_status_set_is_empty(ExitStatusSet *x);
}
int fdset_new_fill(FDSet **_s) {
- DIR *d;
+ _cleanup_closedir_ DIR *d = NULL;
struct dirent *de;
int r = 0;
FDSet *s;
s = NULL;
finish:
- closedir(d);
-
/* We won't close the fds here! */
if (s)
set_free(MAKE_SET(s));
#include "utf8.h"
#include "ctype.h"
-int write_string_to_file(FILE *f, const char *line) {
+int write_string_stream(FILE *f, const char *line) {
+ assert(f);
+ assert(line);
+
errno = 0;
+
fputs(line, f);
if (!endswith(line, "\n"))
fputc('\n', f);
if (!f)
return -errno;
- return write_string_to_file(f, line);
+ return write_string_stream(f, line);
}
int write_string_file_atomic(const char *fn, const char *line) {
return (ssize_t) l;
}
-int read_full_file(const char *fn, char **contents, size_t *size) {
- _cleanup_fclose_ FILE *f = NULL;
+int read_full_stream(FILE *f, char **contents, size_t *size) {
size_t n, l;
_cleanup_free_ char *buf = NULL;
struct stat st;
- assert(fn);
+ assert(f);
assert(contents);
- f = fopen(fn, "re");
- if (!f)
- return -errno;
-
if (fstat(fileno(f), &st) < 0)
return -errno;
- /* Safety check */
- if (st.st_size > 4*1024*1024)
- return -E2BIG;
+ n = LINE_MAX;
- n = st.st_size > 0 ? st.st_size : LINE_MAX;
- l = 0;
+ if (S_ISREG(st.st_mode)) {
+
+ /* Safety check */
+ if (st.st_size > 4*1024*1024)
+ return -E2BIG;
+
+ /* Start with the right file size, but be prepared for
+ * files from /proc which generally report a file size
+ * of 0 */
+ if (st.st_size > 0)
+ n = st.st_size;
+ }
+ l = 0;
for (;;) {
char *t;
size_t k;
return 0;
}
+int read_full_file(const char *fn, char **contents, size_t *size) {
+ _cleanup_fclose_ FILE *f = NULL;
+
+ assert(fn);
+ assert(contents);
+
+ f = fopen(fn, "re");
+ if (!f)
+ return -errno;
+
+ return read_full_stream(f, contents, size);
+}
+
static int parse_env_file_internal(
+ FILE *f,
const char *fname,
const char *newline,
int (*push) (const char *filename, unsigned line,
COMMENT_ESCAPE
} state = PRE_KEY;
- assert(fname);
assert(newline);
- r = read_full_file(fname, &contents, NULL);
+ if (f)
+ r = read_full_stream(f, &contents, NULL);
+ else
+ r = read_full_file(fname, &contents, NULL);
if (r < 0)
return r;
return r;
}
-static int parse_env_file_push(const char *filename, unsigned line,
- const char *key, char *value, void *userdata) {
+static int parse_env_file_push(
+ const char *filename, unsigned line,
+ const char *key, char *value,
+ void *userdata) {
const char *k;
va_list aq, *ap = userdata;
if (!utf8_is_valid(key)) {
- _cleanup_free_ char *p = utf8_escape_invalid(key);
+ _cleanup_free_ char *p;
- log_error("%s:%u: invalid UTF-8 in key '%s', ignoring.",
- filename, line, p);
+ p = utf8_escape_invalid(key);
+ log_error("%s:%u: invalid UTF-8 in key '%s', ignoring.", strna(filename), line, p);
return -EINVAL;
}
if (value && !utf8_is_valid(value)) {
- _cleanup_free_ char *p = utf8_escape_invalid(value);
+ _cleanup_free_ char *p;
- log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.",
- filename, line, key, p);
+ p = utf8_escape_invalid(value);
+ log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", strna(filename), line, key, p);
return -EINVAL;
}
va_end(aq);
free(value);
+
return 0;
}
newline = NEWLINE;
va_start(ap, newline);
- r = parse_env_file_internal(fname, newline, parse_env_file_push, &ap);
+ r = parse_env_file_internal(NULL, fname, newline, parse_env_file_push, &ap);
va_end(ap);
return r;
}
-static int load_env_file_push(const char *filename, unsigned line,
- const char *key, char *value, void *userdata) {
+static int load_env_file_push(
+ const char *filename, unsigned line,
+ const char *key, char *value,
+ void *userdata) {
char ***m = userdata;
char *p;
int r;
if (!utf8_is_valid(key)) {
_cleanup_free_ char *t = utf8_escape_invalid(key);
- log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.",
- filename, line, t);
+ log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", strna(filename), line, t);
return -EINVAL;
}
if (value && !utf8_is_valid(value)) {
_cleanup_free_ char *t = utf8_escape_invalid(value);
- log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.",
- filename, line, key, t);
+ log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", strna(filename), line, key, t);
return -EINVAL;
}
return 0;
}
-int load_env_file(const char *fname, const char *newline, char ***rl) {
+int load_env_file(FILE *f, const char *fname, const char *newline, char ***rl) {
+ char **m = NULL;
+ int r;
+
+ if (!newline)
+ newline = NEWLINE;
+
+ r = parse_env_file_internal(f, fname, newline, load_env_file_push, &m);
+ if (r < 0) {
+ strv_free(m);
+ return r;
+ }
+
+ *rl = m;
+ return 0;
+}
+
+static int load_env_file_push_pairs(
+ const char *filename, unsigned line,
+ const char *key, char *value,
+ void *userdata) {
+ char ***m = userdata;
+ int r;
+
+ if (!utf8_is_valid(key)) {
+ _cleanup_free_ char *t = utf8_escape_invalid(key);
+
+ log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", strna(filename), line, t);
+ return -EINVAL;
+ }
+
+ if (value && !utf8_is_valid(value)) {
+ _cleanup_free_ char *t = utf8_escape_invalid(value);
+
+ log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", strna(filename), line, key, t);
+ return -EINVAL;
+ }
+
+ r = strv_extend(m, key);
+ if (r < 0)
+ return -ENOMEM;
+
+ if (!value) {
+ r = strv_extend(m, "");
+ if (r < 0)
+ return -ENOMEM;
+ } else {
+ r = strv_push(m, value);
+ if (r < 0)
+ return r;
+ }
+
+ return 0;
+}
+
+int load_env_file_pairs(FILE *f, const char *fname, const char *newline, char ***rl) {
char **m = NULL;
int r;
if (!newline)
newline = NEWLINE;
- r = parse_env_file_internal(fname, newline, load_env_file_push, &m);
+ r = parse_env_file_internal(f, fname, newline, load_env_file_push_pairs, &m);
if (r < 0) {
strv_free(m);
return r;
int executable_is_script(const char *path, char **interpreter) {
int r;
- char _cleanup_free_ *line = NULL;
+ _cleanup_free_ char *line = NULL;
int len;
char *ans;
#include "macro.h"
-int write_string_to_file(FILE *f, const char *line);
+int write_string_stream(FILE *f, const char *line);
int write_string_file(const char *fn, const char *line);
int write_string_file_atomic(const char *fn, const char *line);
int read_one_line_file(const char *fn, char **line);
int read_full_file(const char *fn, char **contents, size_t *size);
+int read_full_stream(FILE *f, char **contents, size_t *size);
ssize_t sendfile_full(int out_fd, const char *fn);
int parse_env_file(const char *fname, const char *separator, ...) _sentinel_;
-int load_env_file(const char *fname, const char *separator, char ***l);
+int load_env_file(FILE *f, const char *fname, const char *separator, char ***l);
+int load_env_file_pairs(FILE *f, const char *fname, const char *separator, char ***l);
+
int write_env_file(const char *fname, char **l);
int executable_is_script(const char *path, char **interpreter);
#include "unit-name.h"
#include "generator.h"
#include "path-util.h"
+#include "dropin.h"
int generator_write_fsck_deps(
FILE *f,
if (!isempty(fstype) && !streq(fstype, "auto")) {
int r;
r = fsck_exists(fstype);
- if (r < 0) {
- log_warning("Checking was requested for %s, but fsck.%s cannot be used: %s", what, fstype, strerror(-r));
+ if (r == -ENOENT) {
/* treat missing check as essentially OK */
- return r == -ENOENT ? 0 : r;
+ log_debug("Checking was requested for %s, but fsck.%s does not exist: %s", what, fstype, strerror(-r));
+ return 0;
+ } else if (r < 0) {
+ log_warning("Checking was requested for %s, but fsck.%s cannot be used: %s", what, fstype, strerror(-r));
+ return r;
}
}
return 0;
}
+
+int generator_write_timeouts(const char *dir, const char *what, const char *where,
+ const char *opts, char **filtered) {
+
+ /* Allow configuration how long we wait for a device that
+ * backs a mount point to show up. This is useful to support
+ * endless device timeouts for devices that show up only after
+ * user input, like crypto devices. */
+
+ _cleanup_free_ char *node = NULL, *unit = NULL, *t = NULL;
+ char *start, *timeout;
+ usec_t u;
+ int r;
+ size_t len;
+
+ if ((start = mount_test_option(opts, "comment=systemd.device-timeout")))
+ timeout = start + 31;
+ else if ((start = mount_test_option(opts, "x-systemd.device-timeout")))
+ timeout = start + 25;
+ else {
+ if (filtered) {
+ *filtered = strdup(opts ?: "");
+ if (!*filtered)
+ return log_oom();
+ }
+
+ return 0;
+ }
+
+ len = strcspn(timeout, ",;" WHITESPACE);
+ t = strndup(timeout, len);
+ if (!t)
+ return -ENOMEM;
+
+ if (filtered) {
+ char *prefix, *postfix;
+
+ prefix = strndupa(opts, start - opts - (start != opts));
+ postfix = timeout + len + (timeout[len] != '\0');
+ *filtered = strjoin(prefix, *postfix ? postfix : NULL, NULL);
+ if (!*filtered)
+ return log_oom();
+ }
+
+ r = parse_sec(t, &u);
+ if (r < 0) {
+ log_warning("Failed to parse timeout for %s, ignoring: %s",
+ where, timeout);
+ return 0;
+ }
+
+ node = fstab_node_to_udev_node(what);
+ if (!node)
+ return log_oom();
+
+ unit = unit_name_from_path(node, ".device");
+ if (!unit)
+ return -ENOMEM;
+
+ return write_drop_in_format(dir, unit, 50, "device-timeout",
+ "# Automatically generated by %s\n\n"
+ "[Unit]\nJobTimeoutSec=%u",
+ program_invocation_short_name,
+ u / USEC_PER_SEC);
+}
#include <stdio.h>
int generator_write_fsck_deps(FILE *f, const char *dest, const char *what, const char *where, const char *type);
+
+int generator_write_timeouts(const char *dir, const char *what, const char *where,
+ const char *opts, char **filtered);
#define _cleanup_install_context_done_ _cleanup_(install_context_done)
+static int in_search_path(const char *path, char **search) {
+ _cleanup_free_ char *parent = NULL;
+ int r;
+
+ assert(path);
+
+ r = path_get_parent(path, &parent);
+ if (r < 0)
+ return r;
+
+ return strv_contains(search, parent);
+}
+
static int lookup_paths_init_from_scope(LookupPaths *paths,
UnitFileScope scope,
const char *root_dir) {
if (!c[i].path)
return -ENOMEM;
+ path_kill_slashes(c[i].path);
+
if (source) {
c[i].source = strdup(source);
if (!c[i].source) {
free(c[i].path);
return -ENOMEM;
}
+
+ path_kill_slashes(c[i].path);
} else
c[i].source = NULL;
bool *deleted,
UnitFileChange **changes,
unsigned *n_changes,
- char** files) {
+ char** instance_whitelist) {
- int r = 0;
_cleanup_closedir_ DIR *d = NULL;
+ int r = 0;
assert(remove_symlinks_to);
assert(fd >= 0);
}
/* This will close nfd, regardless whether it succeeds or not */
- q = remove_marked_symlinks_fd(remove_symlinks_to, nfd, p, config_path, deleted, changes, n_changes, files);
-
- if (r == 0)
+ q = remove_marked_symlinks_fd(remove_symlinks_to, nfd, p, config_path, deleted, changes, n_changes, instance_whitelist);
+ if (q < 0 && r == 0)
r = q;
} else if (de->d_type == DT_LNK) {
int q;
bool found;
+ if (!unit_name_is_valid(de->d_name, TEMPLATE_VALID))
+ continue;
+
+ if (unit_name_is_instance(de->d_name) &&
+ instance_whitelist &&
+ !strv_contains(instance_whitelist, de->d_name)) {
+
+ _cleanup_free_ char *w;
+
+ /* OK, the file is not listed directly
+ * in the whitelist, so let's check if
+ * the template of it might be
+ * listed. */
+
+ w = unit_name_template(de->d_name);
+ if (!w)
+ return -ENOMEM;
+
+ if (!strv_contains(instance_whitelist, w))
+ continue;
+ }
+
p = path_make_absolute(de->d_name, path);
if (!p)
return -ENOMEM;
set_get(remove_symlinks_to, dest) ||
set_get(remove_symlinks_to, basename(dest));
- if (unit_name_is_instance(p))
- found = found && strv_contains(files, basename(p));
+ if (!found)
+ continue;
+
+ if (unlink(p) < 0 && errno != ENOENT) {
+ if (r == 0)
+ r = -errno;
+ continue;
+ }
- if (found) {
+ path_kill_slashes(p);
+ rmdir_parents(p, config_path);
+ add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
- if (unlink(p) < 0 && errno != ENOENT) {
+ if (!set_get(remove_symlinks_to, p)) {
+ q = mark_symlink_for_removal(&remove_symlinks_to, p);
+ if (q < 0) {
if (r == 0)
- r = -errno;
- } else {
- rmdir_parents(p, config_path);
- path_kill_slashes(p);
-
- add_file_change(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
-
- if (!set_get(remove_symlinks_to, p)) {
-
- q = mark_symlink_for_removal(&remove_symlinks_to, p);
- if (q < 0) {
- if (r == 0)
- r = q;
- } else
- *deleted = true;
- }
- }
+ r = q;
+ } else
+ *deleted = true;
}
}
}
const char *config_path,
UnitFileChange **changes,
unsigned *n_changes,
- char** files) {
+ char** instance_whitelist) {
- int fd, r = 0;
+ _cleanup_close_ int fd = -1;
+ int r = 0;
bool deleted;
assert(config_path);
}
/* This takes possession of cfd and closes it */
- q = remove_marked_symlinks_fd(remove_symlinks_to, cfd, config_path, config_path, &deleted, changes, n_changes, files);
+ q = remove_marked_symlinks_fd(remove_symlinks_to, cfd, config_path, config_path, &deleted, changes, n_changes, instance_whitelist);
if (r == 0)
r = q;
} while (deleted);
- safe_close(fd);
-
return r;
}
/* This will close nfd, regardless whether it succeeds or not */
q = find_symlinks_fd(name, nfd, p, config_path, same_name_link);
-
if (q > 0)
return 1;
-
if (r == 0)
r = q;
unsigned *n_changes) {
char **i;
- _cleanup_free_ char *prefix;
+ _cleanup_free_ char *prefix = NULL;
int r;
assert(scope >= 0);
if (symlink("/dev/null", path) >= 0) {
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, "/dev/null");
-
continue;
}
continue;
if (force) {
- unlink(path);
-
- if (symlink("/dev/null", path) >= 0) {
-
+ if (symlink_atomic("/dev/null", path) >= 0) {
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, path, NULL);
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, "/dev/null");
-
continue;
}
}
_cleanup_free_ char *dest = NULL;
q = readlink_and_make_absolute(path, &dest);
-
if (q < 0 && errno != ENOENT) {
if (r == 0)
r = q;
continue;
if (force) {
- unlink(path);
-
- if (symlink(*i, path) >= 0) {
-
+ if (symlink_atomic(*i, path) >= 0) {
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, path, NULL);
add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, path, *i);
-
continue;
}
}
strv_free(i->aliases);
strv_free(i->wanted_by);
strv_free(i->required_by);
+ free(i->default_instance);
free(i);
}
return install_info_add(c, name_or_path, NULL);
}
-static int config_parse_also(const char *unit,
- const char *filename,
- unsigned line,
- const char *section,
- unsigned section_line,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+static int config_parse_also(
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
char *w;
size_t l;
return 0;
}
-static int config_parse_user(const char *unit,
- const char *filename,
- unsigned line,
- const char *section,
- unsigned section_line,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+static int config_parse_user(
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
InstallInfo *i = data;
- char* printed;
+ char *printed;
int r;
assert(filename);
return 0;
}
+static int config_parse_default_instance(
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
+
+ InstallInfo *i = data;
+ char *printed;
+ int r;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+
+ r = install_full_printf(i, rvalue, &printed);
+ if (r < 0)
+ return r;
+
+ if (!unit_instance_is_valid(printed))
+ return -EINVAL;
+
+ free(i->default_instance);
+ i->default_instance = printed;
+
+ return 0;
+}
+
static int unit_file_load(
InstallContext *c,
InstallInfo *info,
const char *path,
+ const char *root_dir,
bool allow_symlink) {
const ConfigTableItem items[] = {
- { "Install", "Alias", config_parse_strv, 0, &info->aliases },
- { "Install", "WantedBy", config_parse_strv, 0, &info->wanted_by },
- { "Install", "RequiredBy", config_parse_strv, 0, &info->required_by },
- { "Install", "Also", config_parse_also, 0, c },
- { "Exec", "User", config_parse_user, 0, info },
- { NULL, NULL, NULL, 0, NULL }
+ { "Install", "Alias", config_parse_strv, 0, &info->aliases },
+ { "Install", "WantedBy", config_parse_strv, 0, &info->wanted_by },
+ { "Install", "RequiredBy", config_parse_strv, 0, &info->required_by },
+ { "Install", "DefaultInstance", config_parse_default_instance, 0, info },
+ { "Install", "Also", config_parse_also, 0, c },
+ { "Exec", "User", config_parse_user, 0, info },
+ {}
};
- int fd;
_cleanup_fclose_ FILE *f = NULL;
- int r;
+ int fd, r;
assert(c);
assert(info);
assert(path);
+ if (!isempty(root_dir))
+ path = strappenda3(root_dir, "/", path);
+
fd = open(path, O_RDONLY|O_CLOEXEC|O_NOCTTY|(allow_symlink ? 0 : O_NOFOLLOW));
if (fd < 0)
return -errno;
return -ENOMEM;
}
- r = config_parse(NULL, path, f, NULL,
- config_item_table_lookup, (void*) items, true, true, info);
+ r = config_parse(NULL, path, f, NULL, config_item_table_lookup, (void*) items, true, true, info);
if (r < 0)
return r;
assert(info);
assert(paths);
- if (info->path) {
- char *full_path = NULL;
-
- if (!isempty(root_dir))
- full_path = strappenda(root_dir, info->path);
-
- return unit_file_load(c, info, full_path ?: info->path, allow_symlink);
- }
+ if (info->path)
+ return unit_file_load(c, info, info->path, root_dir, allow_symlink);
assert(info->name);
STRV_FOREACH(p, paths->unit_path) {
- _cleanup_free_ char *path = NULL, *full_path = NULL;
+ _cleanup_free_ char *path = NULL;
path = strjoin(*p, "/", info->name, NULL);
if (!path)
return -ENOMEM;
- if (!isempty(root_dir)) {
- full_path = strappend(root_dir, path);
- if (!full_path)
- return -ENOMEM;
- }
-
- r = unit_file_load(c, info, full_path ?: path, allow_symlink);
+ r = unit_file_load(c, info, path, root_dir, allow_symlink);
if (r >= 0) {
info->path = path;
path = NULL;
- } else if (r == -ENOENT && unit_name_is_instance(info->name)) {
- /* Unit file doesn't exist, however instance enablement was requested.
- * We will check if it is possible to load template unit file. */
- _cleanup_free_ char *template = NULL, *template_dir = NULL;
+ return r;
+ }
+ if (r != -ENOENT && r != -ELOOP)
+ return r;
+ }
- template = unit_name_template(info->name);
- if (!template)
- return -ENOMEM;
+ if (unit_name_is_instance(info->name)) {
- /* We will reuse path variable since we don't need it anymore. */
- template_dir = path;
- *(strrchr(template_dir, '/') + 1) = '\0';
+ /* Unit file doesn't exist, however instance
+ * enablement was requested. We will check if it is
+ * possible to load template unit file. */
- path = strappend(template_dir, template);
+ _cleanup_free_ char *template = NULL;
+
+ template = unit_name_template(info->name);
+ if (!template)
+ return -ENOMEM;
+
+ STRV_FOREACH(p, paths->unit_path) {
+ _cleanup_free_ char *path = NULL;
+
+ path = strjoin(*p, "/", template, NULL);
if (!path)
return -ENOMEM;
- if (!isempty(root_dir)) {
- free(full_path);
- full_path = strappend(root_dir, path);
- if (!full_path)
- return -ENOMEM;
- }
-
- /* Let's try to load template unit. */
- r = unit_file_load(c, info, full_path ?: path, allow_symlink);
+ r = unit_file_load(c, info, path, root_dir, allow_symlink);
if (r >= 0) {
info->path = path;
path = NULL;
+ return r;
}
+ if (r != -ENOENT && r != -ELOOP)
+ return r;
}
-
- if (r != -ENOENT && r != -ELOOP)
- return r;
}
return -ENOENT;
if (!force)
return -EEXIST;
- r = unlink(new_path);
- if (r < 0 && errno != ENOENT)
- return -errno;
+ r = symlink_atomic(old_path, new_path);
+ if (r < 0)
+ return r;
- if (symlink(old_path, new_path) >= 0) {
- add_file_change(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
- add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
- return 0;
- }
+ add_file_change(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
+ add_file_change(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
- return -errno;
+ return 0;
}
static int install_info_symlink_alias(
static int install_info_symlink_wants(
InstallInfo *i,
const char *config_path,
+ char **list,
+ const char *suffix,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
+ _cleanup_free_ char *buf = NULL;
+ const char *n;
char **s;
int r = 0, q;
assert(i);
assert(config_path);
- STRV_FOREACH(s, i->wanted_by) {
- _cleanup_free_ char *path = NULL, *dst = NULL;
+ if (unit_name_is_template(i->name)) {
- q = install_full_printf(i, *s, &dst);
- if (q < 0)
- return q;
+ /* Don't install any symlink if there's no default
+ * instance configured */
- if (!unit_name_is_valid(dst, TEMPLATE_VALID)) {
- r = -EINVAL;
- continue;
- }
+ if (!i->default_instance)
+ return 0;
- if (asprintf(&path, "%s/%s.wants/%s", config_path, dst, i->name) < 0)
+ buf = unit_name_replace_instance(i->name, i->default_instance);
+ if (!buf)
return -ENOMEM;
- q = create_symlink(i->path, path, force, changes, n_changes);
-
- if (r == 0)
- r = q;
- }
-
- return r;
-}
-
-static int install_info_symlink_requires(
- InstallInfo *i,
- const char *config_path,
- bool force,
- UnitFileChange **changes,
- unsigned *n_changes) {
-
- char **s;
- int r = 0, q;
-
- assert(i);
- assert(config_path);
+ n = buf;
+ } else
+ n = i->name;
- STRV_FOREACH(s, i->required_by) {
+ STRV_FOREACH(s, list) {
_cleanup_free_ char *path = NULL, *dst = NULL;
q = install_full_printf(i, *s, &dst);
continue;
}
- if (asprintf(&path, "%s/%s.requires/%s", config_path, dst, i->name) < 0)
+ path = strjoin(config_path, "/", dst, suffix, n, NULL);
+ if (!path)
return -ENOMEM;
q = create_symlink(i->path, path, force, changes, n_changes);
-
if (r == 0)
r = q;
}
InstallInfo *i,
LookupPaths *paths,
const char *config_path,
+ const char *root_dir,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
- int r;
_cleanup_free_ char *path = NULL;
+ int r;
assert(i);
assert(paths);
if (r != 0)
return r;
- if (asprintf(&path, "%s/%s", config_path, i->name) < 0)
+ path = strjoin(config_path, "/", i->name, NULL);
+ if (!path)
return -ENOMEM;
- r = create_symlink(i->path, path, force, changes, n_changes);
- return r;
+ return create_symlink(i->path, path, force, changes, n_changes);
}
static int install_info_apply(
InstallInfo *i,
LookupPaths *paths,
const char *config_path,
+ const char *root_dir,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
r = install_info_symlink_alias(i, config_path, force, changes, n_changes);
- q = install_info_symlink_wants(i, config_path, force, changes, n_changes);
+ q = install_info_symlink_wants(i, config_path, i->wanted_by, ".wants/", force, changes, n_changes);
if (r == 0)
r = q;
- q = install_info_symlink_requires(i, config_path, force, changes, n_changes);
+ q = install_info_symlink_wants(i, config_path, i->required_by, ".requires/", force, changes, n_changes);
if (r == 0)
r = q;
- q = install_info_symlink_link(i, paths, config_path, force, changes, n_changes);
+ q = install_info_symlink_link(i, paths, config_path, root_dir, force, changes, n_changes);
if (r == 0)
r = q;
} else if (r >= 0)
r += q;
- q = install_info_apply(i, paths, config_path, force, changes, n_changes);
+ q = install_info_apply(i, paths, config_path, root_dir, force, changes, n_changes);
if (r >= 0 && q < 0)
r = q;
}
return r < 0 ? r : state;
}
-int unit_file_query_preset(UnitFileScope scope, const char *name) {
+int unit_file_query_preset(UnitFileScope scope, const char *root_dir, const char *name) {
_cleanup_strv_free_ char **files = NULL;
- char **i;
+ char **p;
int r;
assert(scope >= 0);
assert(name);
if (scope == UNIT_FILE_SYSTEM)
- r = conf_files_list(&files, ".preset", NULL,
+ r = conf_files_list(&files, ".preset", root_dir,
"/etc/systemd/system-preset",
"/usr/local/lib/systemd/system-preset",
"/usr/lib/systemd/system-preset",
#endif
NULL);
else if (scope == UNIT_FILE_GLOBAL)
- r = conf_files_list(&files, ".preset", NULL,
+ r = conf_files_list(&files, ".preset", root_dir,
"/etc/systemd/user-preset",
"/usr/local/lib/systemd/user-preset",
"/usr/lib/systemd/user-preset",
if (r < 0)
return r;
- STRV_FOREACH(i, files) {
+ STRV_FOREACH(p, files) {
_cleanup_fclose_ FILE *f;
- f = fopen(*i, "re");
+ f = fopen(*p, "re");
if (!f) {
if (errno == ENOENT)
continue;
l += 6;
l += strspn(l, WHITESPACE);
- if (fnmatch(l, name, FNM_NOESCAPE) == 0)
+ if (fnmatch(l, name, FNM_NOESCAPE) == 0) {
+ log_debug("Preset file says enable %s.", name);
return 1;
+ }
} else if (first_word(l, "disable")) {
l += 7;
l += strspn(l, WHITESPACE);
- if (fnmatch(l, name, FNM_NOESCAPE) == 0)
+ if (fnmatch(l, name, FNM_NOESCAPE) == 0) {
+ log_debug("Preset file says disable %s.", name);
return 0;
+ }
} else
log_debug("Couldn't parse line '%s'", l);
}
/* Default is "enable" */
+ log_debug("Preset file doesn't say anything about %s, enabling.", name);
return 1;
}
bool runtime,
const char *root_dir,
char **files,
+ UnitFilePresetMode mode,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
- _cleanup_lookup_paths_free_ LookupPaths paths = {};
_cleanup_install_context_done_ InstallContext plus = {}, minus = {};
- char **i;
+ _cleanup_lookup_paths_free_ LookupPaths paths = {};
_cleanup_free_ char *config_path = NULL;
- _cleanup_set_free_free_ Set *remove_symlinks_to = NULL;
+ char **i;
int r, q;
assert(scope >= 0);
assert(scope < _UNIT_FILE_SCOPE_MAX);
+ assert(mode < _UNIT_FILE_PRESET_MODE_MAX);
r = lookup_paths_init_from_scope(&paths, scope, root_dir);
if (r < 0)
if (!unit_name_is_valid(*i, TEMPLATE_VALID))
return -EINVAL;
- r = unit_file_query_preset(scope, *i);
+ r = unit_file_query_preset(scope, root_dir, *i);
if (r < 0)
return r;
- if (r)
+ if (r && mode != UNIT_FILE_PRESET_DISABLE_ONLY)
r = install_info_add_auto(&plus, *i);
- else
+ else if (!r && mode != UNIT_FILE_PRESET_ENABLE_ONLY)
r = install_info_add_auto(&minus, *i);
-
+ else
+ r = 0;
if (r < 0)
return r;
}
- r = install_context_mark_for_removal(&minus, &paths, &remove_symlinks_to,
- config_path, root_dir);
+ r = 0;
- q = remove_marked_symlinks(remove_symlinks_to, config_path,
- changes, n_changes, files);
- if (r == 0)
- r = q;
+ if (mode != UNIT_FILE_PRESET_ENABLE_ONLY) {
+ _cleanup_set_free_free_ Set *remove_symlinks_to = NULL;
- /* Returns number of symlinks that where supposed to be installed. */
- q = install_context_apply(&plus, &paths, config_path, root_dir, force,
- changes, n_changes);
- if (r == 0)
- r = q;
+ r = install_context_mark_for_removal(&minus, &paths, &remove_symlinks_to, config_path, root_dir);
+
+ q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, files);
+ if (r == 0)
+ r = q;
+ }
+
+ if (mode != UNIT_FILE_PRESET_DISABLE_ONLY) {
+ /* Returns number of symlinks that where supposed to be installed. */
+ q = install_context_apply(&plus, &paths, config_path, root_dir, force, changes, n_changes);
+ if (r == 0)
+ r = q;
+ }
+
+ return r;
+}
+
+int unit_file_preset_all(
+ UnitFileScope scope,
+ bool runtime,
+ const char *root_dir,
+ UnitFilePresetMode mode,
+ bool force,
+ UnitFileChange **changes,
+ unsigned *n_changes) {
+
+ _cleanup_install_context_done_ InstallContext plus = {}, minus = {};
+ _cleanup_lookup_paths_free_ LookupPaths paths = {};
+ _cleanup_free_ char *config_path = NULL;
+ char **i;
+ int r, q;
+
+ assert(scope >= 0);
+ assert(scope < _UNIT_FILE_SCOPE_MAX);
+ assert(mode < _UNIT_FILE_PRESET_MODE_MAX);
+
+ r = lookup_paths_init_from_scope(&paths, scope, root_dir);
+ if (r < 0)
+ return r;
+
+ r = get_config_path(scope, runtime, root_dir, &config_path);
+ if (r < 0)
+ return r;
+
+ STRV_FOREACH(i, paths.unit_path) {
+ _cleanup_closedir_ DIR *d = NULL;
+ _cleanup_free_ char *buf = NULL;
+ const char *units_dir;
+
+ if (!isempty(root_dir)) {
+ buf = strjoin(root_dir, "/", *i, NULL);
+ if (!buf)
+ return -ENOMEM;
+
+ units_dir = buf;
+ } else
+ units_dir = *i;
+
+ d = opendir(units_dir);
+ if (!d) {
+ if (errno == ENOENT)
+ continue;
+
+ return -errno;
+ }
+
+ for (;;) {
+ struct dirent *de;
+
+ errno = 0;
+ de = readdir(d);
+ if (!de && errno != 0)
+ return -errno;
+
+ if (!de)
+ break;
+
+ if (ignore_file(de->d_name))
+ continue;
+
+ if (!unit_name_is_valid(de->d_name, TEMPLATE_VALID))
+ continue;
+
+ dirent_ensure_type(d, de);
+
+ if (de->d_type != DT_REG)
+ continue;
+
+ r = unit_file_query_preset(scope, root_dir, de->d_name);
+ if (r < 0)
+ return r;
+
+ if (r && mode != UNIT_FILE_PRESET_DISABLE_ONLY)
+ r = install_info_add_auto(&plus, de->d_name);
+ else if (!r && mode != UNIT_FILE_PRESET_ENABLE_ONLY)
+ r = install_info_add_auto(&minus, de->d_name);
+ else
+ r = 0;
+ if (r < 0)
+ return r;
+ }
+ }
+
+ r = 0;
+
+ if (mode != UNIT_FILE_PRESET_ENABLE_ONLY) {
+ _cleanup_set_free_free_ Set *remove_symlinks_to = NULL;
+
+ r = install_context_mark_for_removal(&minus, &paths, &remove_symlinks_to, config_path, root_dir);
+
+ q = remove_marked_symlinks(remove_symlinks_to, config_path, changes, n_changes, NULL);
+ if (r == 0)
+ r = q;
+ }
+
+ if (mode != UNIT_FILE_PRESET_DISABLE_ONLY) {
+ q = install_context_apply(&plus, &paths, config_path, root_dir, force, changes, n_changes);
+ if (r == 0)
+ r = q;
+ }
return r;
}
_cleanup_lookup_paths_free_ LookupPaths paths = {};
char **i;
- _cleanup_free_ char *buf = NULL;
- _cleanup_closedir_ DIR *d = NULL;
int r;
assert(scope >= 0);
return r;
STRV_FOREACH(i, paths.unit_path) {
+ _cleanup_closedir_ DIR *d = NULL;
+ _cleanup_free_ char *buf = NULL;
const char *units_dir;
- free(buf);
- buf = NULL;
-
- if (root_dir) {
- if (asprintf(&buf, "%s/%s", root_dir, *i) < 0)
+ if (!isempty(root_dir)) {
+ buf = strjoin(root_dir, "/", *i, NULL);
+ if (!buf)
return -ENOMEM;
units_dir = buf;
} else
units_dir = *i;
- if (d)
- closedir(d);
-
d = opendir(units_dir);
if (!d) {
if (errno == ENOENT)
}
for (;;) {
- struct dirent *de;
_cleanup_unitfilelist_free_ UnitFileList *f = NULL;
+ struct dirent *de;
errno = 0;
de = readdir(d);
if (hashmap_get(h, de->d_name))
continue;
- r = dirent_ensure_type(d, de);
- if (r < 0) {
- if (r == -ENOENT)
- continue;
-
- return r;
- }
+ dirent_ensure_type(d, de);
- if (de->d_type != DT_LNK && de->d_type != DT_REG)
+ if (!IN_SET(de->d_type, DT_LNK, DT_REG))
continue;
f = new0(UnitFileList, 1);
};
DEFINE_STRING_TABLE_LOOKUP(unit_file_change_type, UnitFileChangeType);
+
+static const char* const unit_file_preset_mode_table[_UNIT_FILE_PRESET_MODE_MAX] = {
+ [UNIT_FILE_PRESET_FULL] = "full",
+ [UNIT_FILE_PRESET_ENABLE_ONLY] = "enable-only",
+ [UNIT_FILE_PRESET_DISABLE_ONLY] = "disable-only",
+};
+
+DEFINE_STRING_TABLE_LOOKUP(unit_file_preset_mode, UnitFilePresetMode);
_UNIT_FILE_STATE_INVALID = -1
} UnitFileState;
+typedef enum UnitFilePresetMode {
+ UNIT_FILE_PRESET_FULL,
+ UNIT_FILE_PRESET_ENABLE_ONLY,
+ UNIT_FILE_PRESET_DISABLE_ONLY,
+ _UNIT_FILE_PRESET_MODE_MAX,
+ _UNIT_FILE_PRESET_INVALID = -1
+} UnitFilePresetMode;
+
typedef enum UnitFileChangeType {
UNIT_FILE_SYMLINK,
UNIT_FILE_UNLINK,
char **aliases;
char **wanted_by;
char **required_by;
+
+ char *default_instance;
} InstallInfo;
int unit_file_enable(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_disable(UnitFileScope scope, bool runtime, const char *root_dir, char **files, UnitFileChange **changes, unsigned *n_changes);
int unit_file_reenable(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_link(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes);
-int unit_file_preset(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes);
+int unit_file_preset(UnitFileScope scope, bool runtime, const char *root_dir, char **files, UnitFilePresetMode mode, bool force, UnitFileChange **changes, unsigned *n_changes);
+int unit_file_preset_all(UnitFileScope scope, bool runtime, const char *root_dir, UnitFilePresetMode mode, bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_mask(UnitFileScope scope, bool runtime, const char *root_dir, char **files, bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_unmask(UnitFileScope scope, bool runtime, const char *root_dir, char **files, UnitFileChange **changes, unsigned *n_changes);
int unit_file_set_default(UnitFileScope scope, const char *root_dir, const char *file, bool force, UnitFileChange **changes, unsigned *n_changes);
void unit_file_list_free(Hashmap *h);
void unit_file_changes_free(UnitFileChange *changes, unsigned n_changes);
-int unit_file_query_preset(UnitFileScope scope, const char *name);
+int unit_file_query_preset(UnitFileScope scope, const char *root_dir, const char *name);
const char *unit_file_state_to_string(UnitFileState s) _const_;
UnitFileState unit_file_state_from_string(const char *s) _pure_;
const char *unit_file_change_type_to_string(UnitFileChangeType s) _const_;
UnitFileChangeType unit_file_change_type_from_string(const char *s) _pure_;
+
+const char *unit_file_preset_mode_to_string(UnitFilePresetMode m) _const_;
+UnitFilePresetMode unit_file_preset_mode_from_string(const char *s) _pure_;
if (l == 5 && startswith(w, "debug")) {
log_set_max_level(LOG_DEBUG);
break;
- } else if (l == 5 && startswith(w, "quiet")) {
- log_set_max_level(LOG_WARNING);
- break;
}
}
}
_Pragma("GCC diagnostic push"); \
_Pragma("GCC diagnostic ignored \"-Wnonnull\"")
+#define DISABLE_WARNING_SHADOW \
+ _Pragma("GCC diagnostic push"); \
+ _Pragma("GCC diagnostic ignored \"-Wshadow\"")
+
#define REENABLE_WARNING \
_Pragma("GCC diagnostic pop")
#define IP_TRANSPARENT 19
#endif
-#ifndef IFLA_CARRIER
- #define IFLA_CARRIER 33
- #ifndef IFLA_NUM_RX_QUEUES
- #define IFLA_NUM_RX_QUEUES 32
- #ifndef IFLA_NUM_TX_QUEUES
- #define IFLA_NUM_TX_QUEUES 31
- #ifndef IFLA_PROMISCUITY
- #define IFLA_PROMISCUITY 30
- #endif
- #endif
- #endif
-#endif
-
#ifndef SOL_NETLINK
#define SOL_NETLINK 270
#endif
#define LOOP_CTL_GET_FREE 0x4C82
#endif
-#ifndef IFLA_BOND_MAX
-enum {
- IFLA_BOND_UNSPEC,
- IFLA_BOND_MODE,
- IFLA_BOND_ACTIVE_SLAVE,
- IFLA_BOND_MIIMON,
- IFLA_BOND_UPDELAY,
- IFLA_BOND_DOWNDELAY,
- IFLA_BOND_USE_CARRIER,
- IFLA_BOND_ARP_INTERVAL,
- IFLA_BOND_ARP_IP_TARGET,
- IFLA_BOND_ARP_VALIDATE,
- IFLA_BOND_ARP_ALL_TARGETS,
- IFLA_BOND_PRIMARY,
- IFLA_BOND_PRIMARY_RESELECT,
- IFLA_BOND_FAIL_OVER_MAC,
- IFLA_BOND_XMIT_HASH_POLICY,
- IFLA_BOND_RESEND_IGMP,
- IFLA_BOND_NUM_PEER_NOTIF,
- IFLA_BOND_ALL_SLAVES_ACTIVE,
- IFLA_BOND_MIN_LINKS,
- IFLA_BOND_LP_INTERVAL,
- IFLA_BOND_PACKETS_PER_SLAVE,
- IFLA_BOND_AD_LACP_RATE,
- IFLA_BOND_AD_SELECT,
- IFLA_BOND_AD_INFO,
- __IFLA_BOND_MAX,
-};
+#if !HAVE_DECL_IFLA_PHYS_PORT_ID
+#undef IFLA_PROMISCUITY
+#define IFLA_PROMISCUITY 30
+#define IFLA_NUM_TX_QUEUES 31
+#define IFLA_NUM_RX_QUEUES 32
+#define IFLA_CARRIER 33
+#define IFLA_PHYS_PORT_ID 34
+#define __IFLA_MAX 35
+
+#define IFLA_MAX (__IFLA_MAX - 1)
+#endif
+
+#if !HAVE_DECL_IFLA_BOND_AD_INFO
+#define IFLA_BOND_UNSPEC 0
+#define IFLA_BOND_MODE 1
+#define IFLA_BOND_ACTIVE_SLAVE 2
+#define IFLA_BOND_MIIMON 3
+#define IFLA_BOND_UPDELAY 4
+#define IFLA_BOND_DOWNDELAY 5
+#define IFLA_BOND_USE_CARRIER 6
+#define IFLA_BOND_ARP_INTERVAL 7
+#define IFLA_BOND_ARP_IP_TARGET 8
+#define IFLA_BOND_ARP_VALIDATE 9
+#define IFLA_BOND_ARP_ALL_TARGETS 10
+#define IFLA_BOND_PRIMARY 11
+#define IFLA_BOND_PRIMARY_RESELECT 12
+#define IFLA_BOND_FAIL_OVER_MAC 13
+#define IFLA_BOND_XMIT_HASH_POLICY 14
+#define IFLA_BOND_RESEND_IGMP 15
+#define IFLA_BOND_NUM_PEER_NOTIF 16
+#define IFLA_BOND_ALL_SLAVES_ACTIVE 17
+#define IFLA_BOND_MIN_LINKS 18
+#define IFLA_BOND_LP_INTERVAL 19
+#define IFLA_BOND_PACKETS_PER_SLAVE 20
+#define IFLA_BOND_AD_LACP_RATE 21
+#define IFLA_BOND_AD_SELECT 22
+#define IFLA_BOND_AD_INFO 23
+#define __IFLA_BOND_MAX 24
#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
#endif
+
+#if !HAVE_DECL_IFLA_VLAN_PROTOCOL
+#define IFLA_VLAN_UNSPEC 0
+#define IFLA_VLAN_ID 1
+#define IFLA_VLAN_FLAGS 2
+#define IFLA_VLAN_EGRESS_QOS 3
+#define IFLA_VLAN_INGRESS_QOS 4
+#define IFLA_VLAN_PROTOCOL 5
+#define __IFLA_VLAN_MAX 6
+
+#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1)
+#endif
+
+#if !HAVE_DECL_IFLA_VXLAN_LOCAL6
+#define IFLA_VXLAN_UNSPEC 0
+#define IFLA_VXLAN_ID 1
+#define IFLA_VXLAN_GROUP 2
+#define IFLA_VXLAN_LINK 3
+#define IFLA_VXLAN_LOCAL 4
+#define IFLA_VXLAN_TTL 5
+#define IFLA_VXLAN_TOS 6
+#define IFLA_VXLAN_LEARNING 7
+#define IFLA_VXLAN_AGEING 8
+#define IFLA_VXLAN_LIMIT 9
+#define IFLA_VXLAN_PORT_RANGE 10
+#define IFLA_VXLAN_PROXY 11
+#define IFLA_VXLAN_RSC 12
+#define IFLA_VXLAN_L2MISS 13
+#define IFLA_VXLAN_L3MISS 14
+#define IFLA_VXLAN_PORT 15
+#define IFLA_VXLAN_GROUP6 16
+#define IFLA_VXLAN_LOCAL6 17
+#define __IFLA_VXLAN_MAX 18
+
+#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
+#endif
+
+#if !HAVE_DECL_IFLA_IPTUN_6RD_RELAY_PREFIXLEN
+#define IFLA_IPTUN_UNSPEC 0
+#define IFLA_IPTUN_LINK 1
+#define IFLA_IPTUN_LOCAL 2
+#define IFLA_IPTUN_REMOTE 3
+#define IFLA_IPTUN_TTL 4
+#define IFLA_IPTUN_TOS 5
+#define IFLA_IPTUN_ENCAP_LIMIT 6
+#define IFLA_IPTUN_FLOWINFO 7
+#define IFLA_IPTUN_FLAGS 8
+#define IFLA_IPTUN_PROTO 9
+#define IFLA_IPTUN_PMTUDISC 10
+#define IFLA_IPTUN_6RD_PREFIX 11
+#define IFLA_IPTUN_6RD_RELAY_PREFIX 12
+#define IFLA_IPTUN_6RD_PREFIXLEN 13
+#define IFLA_IPTUN_6RD_RELAY_PREFIXLEN 14
+#define __IFLA_IPTUN_MAX 15
+
+#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
+#endif
+
+#if !HAVE_DECL_IFLA_BRIDGE_VLAN_INFO
+#define IFLA_BRIDGE_FLAGS 0
+#define IFLA_BRIDGE_MODE 1
+#define IFLA_BRIDGE_VLAN_INFO 2
+#define __IFLA_BRIDGE_MAX 3
+
+#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
+#endif
}
}
- if (!path_strv_canonicalize_absolute_uniq(p->unit_path, root_dir))
+ if (!path_strv_resolve_uniq(p->unit_path, root_dir))
return -ENOMEM;
if (!strv_isempty(p->unit_path)) {
return -ENOMEM;
}
- if (!path_strv_canonicalize_absolute_uniq(p->sysvinit_path, root_dir))
+ if (!path_strv_resolve_uniq(p->sysvinit_path, root_dir))
return -ENOMEM;
- if (!path_strv_canonicalize_absolute_uniq(p->sysvrcnd_path, root_dir))
+ if (!path_strv_resolve_uniq(p->sysvrcnd_path, root_dir))
return -ENOMEM;
if (!strv_isempty(p->sysvinit_path)) {
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include "macro.h"
+
typedef struct LookupPaths {
char **unit_path;
#ifdef HAVE_SYSV_COMPAT
return l;
}
-char **path_strv_canonicalize_absolute(char **l, const char *prefix) {
+char **path_strv_resolve(char **l, const char *prefix) {
char **s;
unsigned k = 0;
bool enomem = false;
return l;
}
-char **path_strv_canonicalize_absolute_uniq(char **l, const char *prefix) {
+char **path_strv_resolve_uniq(char **l, const char *prefix) {
if (strv_isempty(l))
return l;
- if (!path_strv_canonicalize_absolute(l, prefix))
+ if (!path_strv_resolve(l, prefix))
return NULL;
return strv_uniq(l);
};
int mount_id, mount_id_parent;
- char *parent;
+ _cleanup_free_ char *parent = NULL;
struct stat a, b;
int r;
h.handle.handle_bytes = MAX_HANDLE_SZ;
r = name_to_handle_at(AT_FDCWD, parent, &h.handle, &mount_id_parent, 0);
- free(parent);
if (r < 0) {
/* The parent can't do name_to_handle_at() but the
* directory we are interested in can? If so, it must
return r;
r = lstat(parent, &b);
- free(parent);
if (r < 0)
return -errno;
char *p;
int r;
- /* We use /etc/os-release as flag file if something is an OS */
+ /* We use /usr/lib/os-release as flag file if something is an OS */
+ p = strappenda(path, "/usr/lib/os-release");
+ r = access(p, F_OK);
+
+ if (r >= 0)
+ return 1;
+ /* Also check for the old location in /etc, just in case. */
p = strappenda(path, "/etc/os-release");
r = access(p, F_OK);
- return r < 0 ? 0 : 1;
+ return r >= 0;
}
int find_binary(const char *name, char **filename) {
assert(name);
- if (strchr(name, '/')) {
+ if (is_path(name)) {
if (access(name, X_OK) < 0)
return -errno;
}
int fsck_exists(const char *fstype) {
+ _cleanup_free_ char *p = NULL, *d = NULL;
const char *checker;
+ int r;
checker = strappenda("fsck.", fstype);
- return find_binary(checker, NULL);
+
+ r = find_binary(checker, &p);
+ if (r < 0)
+ return r;
+
+ /* An fsck that is linked to /bin/true is a non-existant
+ * fsck */
+
+ r = readlink_malloc(p, &d);
+ if (r >= 0 &&
+ (path_equal(d, "/bin/true") ||
+ path_equal(d, "/usr/bin/true") ||
+ path_equal(d, "/dev/null")))
+ return -ENOENT;
+
+ return 0;
}
bool path_equal(const char *a, const char *b) _pure_;
char** path_strv_make_absolute_cwd(char **l);
-char** path_strv_canonicalize_absolute(char **l, const char *prefix);
-char** path_strv_canonicalize_absolute_uniq(char **l, const char *prefix);
+char** path_strv_resolve(char **l, const char *prefix);
+char** path_strv_resolve_uniq(char **l, const char *prefix);
int path_is_mount_point(const char *path, bool allow_symlink);
int path_is_read_only_fs(const char *path);
#define USE(x, y) do{ (x) = (y); (y) = NULL; } while(0)
int parse_sleep_config(const char *verb, char ***_modes, char ***_states) {
+
_cleanup_strv_free_ char
**suspend_mode = NULL, **suspend_state = NULL,
**hibernate_mode = NULL, **hibernate_state = NULL,
{ "Sleep", "HibernateState", config_parse_strv, 0, &hibernate_state },
{ "Sleep", "HybridSleepMode", config_parse_strv, 0, &hybrid_mode },
{ "Sleep", "HybridSleepState", config_parse_strv, 0, &hybrid_state },
- {}};
+ {}
+ };
int r;
- FILE _cleanup_fclose_ *f;
+ _cleanup_fclose_ FILE *f;
f = fopen(PKGSYSCONFDIR "/sleep.conf", "re");
if (!f)
fd = socket_address_listen(&a, flags, SOMAXCONN, SOCKET_ADDRESS_DEFAULT,
NULL, false, false, 0755, 0644, NULL);
if (fd < 0 || log_get_max_level() >= log_level) {
- char _cleanup_free_ *p = NULL;
+ _cleanup_free_ char *p = NULL;
r = socket_address_print(&a, &p);
if (r < 0) {
return 1;
}
+int in_addr_null(unsigned family, union in_addr_union *u) {
+ assert(u);
+
+ if (family == AF_INET)
+ return u->in.s_addr == 0;
+
+ if (family == AF_INET6)
+ return
+ u->in6.s6_addr32[0] == 0 &&
+ u->in6.s6_addr32[1] == 0 &&
+ u->in6.s6_addr32[2] == 0 &&
+ u->in6.s6_addr32[3] == 0;
+
+ return -EAFNOSUPPORT;
+}
+
+
+int in_addr_equal(unsigned family, union in_addr_union *a, union in_addr_union *b) {
+ assert(a);
+ assert(b);
+
+ if (family == AF_INET)
+ return a->in.s_addr == b->in.s_addr;
+
+ if (family == AF_INET6)
+ return
+ a->in6.s6_addr32[0] == b->in6.s6_addr32[0] &&
+ a->in6.s6_addr32[1] == b->in6.s6_addr32[1] &&
+ a->in6.s6_addr32[2] == b->in6.s6_addr32[2] &&
+ a->in6.s6_addr32[3] == b->in6.s6_addr32[3];
+
+ return -EAFNOSUPPORT;
+}
+
+int in_addr_prefix_intersect(
+ unsigned family,
+ const union in_addr_union *a,
+ unsigned aprefixlen,
+ const union in_addr_union *b,
+ unsigned bprefixlen) {
+
+ unsigned m;
+
+ assert(a);
+ assert(b);
+
+ /* Checks whether there are any addresses that are in both
+ * networks */
+
+ m = MIN(aprefixlen, bprefixlen);
+
+ if (family == AF_INET) {
+ uint32_t x, nm;
+
+ x = be32toh(a->in.s_addr ^ b->in.s_addr);
+ nm = (m == 0) ? 0 : 0xFFFFFFFFUL << (32 - m);
+
+ return (x & nm) == 0;
+ }
+
+ if (family == AF_INET6) {
+ unsigned i;
+
+ if (m > 128)
+ m = 128;
+
+ for (i = 0; i < 16; i++) {
+ uint8_t x, nm;
+
+ x = a->in6.s6_addr[i] ^ b->in6.s6_addr[i];
+
+ if (m < 8)
+ nm = 0xFF << (8 - m);
+ else
+ nm = 0xFF;
+
+ if ((x & nm) != 0)
+ return 0;
+
+ if (m > 8)
+ m -= 8;
+ else
+ m = 0;
+ }
+
+ return 1;
+ }
+
+ return -EAFNOSUPPORT;
+}
+
+int in_addr_prefix_next(unsigned family, union in_addr_union *u, unsigned prefixlen) {
+ assert(u);
+
+ /* Increases the network part of an address by one. Returns
+ * positive it that succeeds, or 0 if this overflows. */
+
+ if (prefixlen <= 0)
+ return 0;
+
+ if (family == AF_INET) {
+ uint32_t c, n;
+
+ if (prefixlen > 32)
+ prefixlen = 32;
+
+ c = be32toh(u->in.s_addr);
+ n = c + (1UL << (32 - prefixlen));
+ if (n < c)
+ return 0;
+ n &= 0xFFFFFFFFUL << (32 - prefixlen);
+
+ u->in.s_addr = htobe32(n);
+ return 1;
+ }
+
+ if (family == AF_INET6) {
+ struct in6_addr add = {}, result;
+ uint8_t overflow = 0;
+ unsigned i;
+
+ if (prefixlen > 128)
+ prefixlen = 128;
+
+ /* First calculate what we have to add */
+ add.s6_addr[(prefixlen-1) / 8] = 1 << (7 - (prefixlen-1) % 8);
+
+ for (i = 16; i > 0; i--) {
+ unsigned j = i - 1;
+
+ result.s6_addr[j] = u->in6.s6_addr[j] + add.s6_addr[j] + overflow;
+ overflow = (result.s6_addr[j] < u->in6.s6_addr[j]);
+ }
+
+ if (overflow)
+ return 0;
+
+ u->in6 = result;
+ return 1;
+ }
+
+ return -EAFNOSUPPORT;
+}
+
+int in_addr_to_string(unsigned family, const union in_addr_union *u, char **ret) {
+ char *x;
+ size_t l;
+
+ assert(u);
+ assert(ret);
+
+ if (family == AF_INET)
+ l = INET_ADDRSTRLEN;
+ else if (family == AF_INET6)
+ l = INET6_ADDRSTRLEN;
+ else
+ return -EAFNOSUPPORT;
+
+ x = new(char, l);
+ if (!x)
+ return -ENOMEM;
+
+ errno = 0;
+ if (!inet_ntop(family, u, x, l)) {
+ free(x);
+ return errno ? -errno : -EINVAL;
+ }
+
+ *ret = x;
+ return 0;
+}
+
+int in_addr_from_string(unsigned family, const char *s, union in_addr_union *ret) {
+
+ assert(s);
+ assert(ret);
+
+ if (!IN_SET(family, AF_INET, AF_INET6))
+ return -EAFNOSUPPORT;
+
+ errno = 0;
+ if (inet_pton(family, s, ret) <= 0)
+ return errno ? -errno : -EINVAL;
+
+ return 0;
+}
+
static const char* const netlink_family_table[] = {
[NETLINK_ROUTE] = "route",
[NETLINK_FIREWALL] = "firewall",
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/un.h>
-#include <net/if.h>
#include <asm/types.h>
#include <linux/netlink.h>
#include <linux/if_packet.h>
struct sockaddr_ll ll;
};
+union in_addr_union {
+ struct in_addr in;
+ struct in6_addr in6;
+};
+
typedef struct SocketAddress {
union sockaddr_union sockaddr;
int netlink_family_to_string_alloc(int b, char **s);
int netlink_family_from_string(const char *s) _pure_;
+
+int in_addr_null(unsigned family, union in_addr_union *u);
+int in_addr_equal(unsigned family, union in_addr_union *a, union in_addr_union *b);
+int in_addr_prefix_intersect(unsigned family, const union in_addr_union *a, unsigned aprefixlen, const union in_addr_union *b, unsigned bprefixlen);
+int in_addr_prefix_next(unsigned family, union in_addr_union *u, unsigned prefixlen);
+int in_addr_to_string(unsigned family, const union in_addr_union *u, char **ret);
+int in_addr_from_string(unsigned family, const char *s, union in_addr_union *ret);
return 0;
}
+int strv_push_prepend(char ***l, char *value) {
+ char **c;
+ unsigned n, i;
+
+ if (!value)
+ return 0;
+
+ n = strv_length(*l);
+ c = new(char*, n + 2);
+ if (!c)
+ return -ENOMEM;
+
+ for (i = 0; i < n; i++)
+ c[i+1] = (*l)[i];
+
+ c[0] = value;
+ c[n+1] = NULL;
+
+ free(*l);
+ *l = c;
+
+ return 0;
+}
+
int strv_consume(char ***l, char *value) {
int r;
return r;
}
+int strv_consume_prepend(char ***l, char *value) {
+ int r;
+
+ r = strv_push_prepend(l, value);
+ if (r < 0)
+ free(value);
+
+ return r;
+}
+
int strv_extend(char ***l, const char *value) {
char *v;
int strv_extend(char ***l, const char *value);
int strv_extendf(char ***l, const char *format, ...) _printf_(2,0);
int strv_push(char ***l, char *value);
+int strv_push_prepend(char ***l, char *value);
int strv_consume(char ***l, char *value);
+int strv_consume_prepend(char ***l, char *value);
char **strv_remove(char **l, const char *s);
char **strv_uniq(char **l);
#define NSEC_PER_YEAR ((usec_t) (31557600ULL*NSEC_PER_SEC))
#define FORMAT_TIMESTAMP_MAX ((4*4+1)+11+9+4+1) /* weekdays can be unicode */
+#define FORMAT_TIMESTAMP_WIDTH 28 /* when outputting, assume this width */
#define FORMAT_TIMESTAMP_RELATIVE_MAX 256
#define FORMAT_TIMESPAN_MAX 64
#include "util.h"
#include "unit-name.h"
#include "def.h"
+#include "strv.h"
#define VALID_CHARS \
DIGITS LETTERS \
* string.suffix
*/
- assert(n);
assert(IN_SET(template_ok, TEMPLATE_VALID, TEMPLATE_INVALID));
+ if (isempty(n))
+ return false;
+
if (strlen(n) >= UNIT_NAME_MAX)
return false;
}
bool unit_instance_is_valid(const char *i) {
- assert(i);
/* The max length depends on the length of the string, so we
* don't really check this here. */
- if (i[0] == 0)
+ if (isempty(i))
return false;
/* We allow additional @ in the instance string, we do not
* allow them in the prefix! */
- for (; *i; i++)
- if (!strchr("@" VALID_CHARS, *i))
- return false;
-
- return true;
+ return in_charset(i, "@" VALID_CHARS);
}
bool unit_prefix_is_valid(const char *p) {
/* We don't allow additional @ in the instance string */
- if (p[0] == 0)
+ if (isempty(p))
return false;
- for (; *p; p++)
- if (!strchr(VALID_CHARS, *p))
- return false;
-
- return true;
+ return in_charset(p, VALID_CHARS);
}
int unit_name_to_instance(const char *n, char **instance) {
return 0;
}
- assert_se(d = strrchr(n, '.'));
- assert(p < d);
+ d = strrchr(n, '.');
+ if (!d)
+ return -EINVAL;
+ if (d < p)
+ return -EINVAL;
i = strndup(p+1, d-p-1);
if (!i)
return -ENOMEM;
*instance = i;
- return 0;
+ return 1;
}
char *unit_name_to_prefix_and_instance(const char *n) {
assert(n);
assert_se(d = strrchr(n, '.'));
-
return strndup(n, d - n);
}
char *unit_name_to_prefix(const char *n) {
const char *p;
+ assert(n);
+
p = strchr(n, '@');
if (p)
return strndup(n, p - n);
size_t a, b;
assert(n);
- assert(unit_name_is_valid(n, TEMPLATE_VALID));
assert(suffix);
assert(suffix[0] == '.');
if (!r)
return NULL;
- memcpy(r, n, a);
- memcpy(r+a, suffix, b+1);
-
+ strcpy(mempcpy(r, n, a), suffix);
return r;
}
char *unit_name_build(const char *prefix, const char *instance, const char *suffix) {
assert(prefix);
- assert(unit_prefix_is_valid(prefix));
- assert(!instance || unit_instance_is_valid(instance));
assert(suffix);
if (!instance)
}
static char *do_escape_char(char c, char *t) {
+ assert(t);
+
*(t++) = '\\';
*(t++) = 'x';
*(t++) = hexchar(c >> 4);
*(t++) = hexchar(c);
+
return t;
}
char *unit_name_escape(const char *f) {
char *r, *t;
+ assert(f);
+
r = new(char, strlen(f)*4+1);
if (!r)
return NULL;
}
char *unit_name_path_escape(const char *f) {
- _cleanup_free_ char *p;
+ _cleanup_free_ char *p = NULL;
assert(f);
path_kill_slashes(p);
- if (streq(p, "/") || streq(p, ""))
+ if (STR_IN_SET(p, "/", ""))
return strdup("-");
return unit_name_escape(p[0] == '/' ? p + 1 : p);
}
char *unit_name_path_unescape(const char *f) {
- char *e;
+ char *e, *w;
assert(f);
return NULL;
if (e[0] != '/') {
- char *w;
-
w = strappend("/", e);
free(e);
-
return w;
}
}
bool unit_name_is_template(const char *n) {
- const char *p;
+ const char *p, *e;
assert(n);
if (!p)
return false;
- return p[1] == '.';
+ e = strrchr(p+1, '.');
+ if (!e)
+ return false;
+
+ return e == p + 1;
}
bool unit_name_is_instance(const char *n) {
- const char *p;
+ const char *p, *e;
assert(n);
if (!p)
return false;
- return p[1] != '.';
+ e = strrchr(p+1, '.');
+ if (!e)
+ return false;
+
+ return e > p + 1;
}
char *unit_name_replace_instance(const char *f, const char *i) {
const char *p, *e;
- char *r, *k;
+ char *r;
size_t a, b;
assert(f);
+ assert(i);
p = strchr(f, '@');
if (!p)
e = strrchr(f, '.');
if (!e)
- assert_se(e = strchr(f, 0));
+ e = strchr(f, 0);
a = p - f;
b = strlen(i);
if (!r)
return NULL;
- k = mempcpy(r, f, a + 1);
- k = mempcpy(k, i, b);
- strcpy(k, e);
-
+ strcpy(mempcpy(mempcpy(r, f, a + 1), i, b), e);
return r;
}
char *r;
size_t a;
+ assert(f);
+
p = strchr(f, '@');
if (!p)
return strdup(f);
- assert_se(e = strrchr(f, '.'));
- a = p - f + 1;
+ e = strrchr(f, '.');
+ if (!e)
+ e = strchr(f, 0);
+
+ a = p - f;
- r = new(char, a + strlen(e) + 1);
+ r = new(char, a + 1 + strlen(e) + 1);
if (!r)
return NULL;
- strcpy(mempcpy(r, f, a), e);
+ strcpy(mempcpy(r, f, a + 1), e);
return r;
}
return 0;
}
-
/**
* Try to turn a string that might not be a unit name into a
* sensible unit name.
*/
char *unit_name_mangle(const char *name, enum unit_name_mangle allow_globs) {
+ const char *valid_chars, *f;
char *r, *t;
- const char *f;
- const char* valid_chars = allow_globs == MANGLE_GLOB ? "@" VALID_CHARS "[]!-*?" : "@" VALID_CHARS;
assert(name);
assert(IN_SET(allow_globs, MANGLE_GLOB, MANGLE_NOGLOB));
/* We'll only escape the obvious characters here, to play
* safe. */
+ valid_chars = allow_globs == MANGLE_GLOB ? "@" VALID_CHARS "[]!-*?" : "@" VALID_CHARS;
+
r = new(char, strlen(name) * 4 + strlen(".service") + 1);
if (!r)
return NULL;
return r;
}
-
/**
* Similar to unit_name_mangle(), but is called when we know
* that this is about a specific unit type.
const char *f;
assert(name);
+ assert(IN_SET(allow_globs, MANGLE_GLOB, MANGLE_NOGLOB));
assert(suffix);
assert(suffix[0] == '.');
if ((unsigned long) uid != ul)
return -ERANGE;
+ /* Some libc APIs use (uid_t) -1 as special placeholder */
+ if (uid == (uid_t) 0xFFFFFFFF)
+ return -ENXIO;
+
+ /* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */
+ if (uid == (uid_t) 0xFFFF)
+ return -ENXIO;
+
*ret_uid = uid;
return 0;
}
a = unhexchar(f[1]);
b = unhexchar(f[2]);
- if (a < 0 || b < 0) {
+ if (a < 0 || b < 0 || (a == 0 && b == 0)) {
/* Invalid escape code, let's take it literal then */
*(t++) = '\\';
*(t++) = 'x';
b = unoctchar(f[1]);
c = unoctchar(f[2]);
- if (a < 0 || b < 0 || c < 0) {
+ if (a < 0 || b < 0 || c < 0 || (a == 0 && b == 0 && c == 0)) {
/* Invalid escape code, let's take it literal then */
*(t++) = '\\';
*(t++) = f[0];
}
int close_all_fds(const int except[], unsigned n_except) {
- DIR *d;
+ _cleanup_closedir_ DIR *d = NULL;
struct dirent *de;
int r = 0;
}
}
- closedir(d);
return r;
}
static const char table[] =
"cifs\0"
"smbfs\0"
+ "sshfs\0"
"ncpfs\0"
"ncp\0"
"nfs\0"
int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) {
struct termios old_termios, new_termios;
- char c;
- char line[LINE_MAX];
+ char c, line[LINE_MAX];
assert(f);
assert(ret);
}
}
- if (t != (usec_t) -1)
+ if (t != (usec_t) -1) {
if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0)
return -ETIMEDOUT;
+ }
if (!fgets(line, sizeof(line), f))
return -EIO;
}
int ask(char *ret, const char *replies, const char *text, ...) {
+ int r;
assert(ret);
assert(replies);
for (;;) {
va_list ap;
char c;
- int r;
bool need_nl = true;
if (on_tty())
}
int rm_rf_children_dangerous(int fd, bool only_dirs, bool honour_sticky, struct stat *root_dev) {
- DIR *d;
+ _cleanup_closedir_ DIR *d = NULL;
int ret = 0;
assert(fd >= 0);
errno = 0;
de = readdir(d);
- if (!de && errno != 0) {
- if (ret == 0)
+ if (!de) {
+ if (errno != 0 && ret == 0)
ret = -errno;
- break;
+ return ret;
}
- if (!de)
- break;
-
if (streq(de->d_name, ".") || streq(de->d_name, ".."))
continue;
}
}
}
-
- closedir(d);
-
- return ret;
}
_pure_ static int is_temporary_fs(struct statfs *s) {
}
}
+/*
+ * Return values:
+ * < 0 : wait_for_terminate() failed to get the state of the
+ * process, the process was terminated by a signal, or
+ * failed for an unknown reason.
+ * >=0 : The process terminated normally, and its exit code is
+ * returned.
+ *
+ * That is, success is indicated by a return value of zero, and an
+ * error is indicated by a non-zero value.
+ */
int wait_for_terminate_and_warn(const char *name, pid_t pid) {
int r;
siginfo_t status;
bool tty_is_vc(const char *tty) {
assert(tty);
- if (startswith(tty, "/dev/"))
- tty += 5;
-
return vtnr_from_tty(tty) >= 0;
}
return s;
}
+bool machine_name_is_valid(const char *s) {
+
+ if (!hostname_is_valid(s))
+ return false;
+
+ /* Machine names should be useful hostnames, but also be
+ * useful in unit names, hence we enforce a stricter length
+ * limitation. */
+
+ if (strlen(s) > 64)
+ return false;
+
+ return true;
+}
+
int pipe_eof(int fd) {
struct pollfd pollfd = {
.fd = fd,
int fopen_temporary(const char *path, FILE **_f, char **_temp_path) {
FILE *f;
char *t;
- const char *fn;
- size_t k;
int fd;
assert(path);
assert(_f);
assert(_temp_path);
- t = new(char, strlen(path) + 1 + 6 + 1);
+ t = tempfn_xxxxxx(path);
if (!t)
return -ENOMEM;
- fn = basename(path);
- k = fn - path;
- memcpy(t, path, k);
- t[k] = '.';
- stpcpy(stpcpy(t+k+1, fn), "XXXXXX");
-
fd = mkostemp_safe(t, O_WRONLY|O_CLOEXEC);
if (fd < 0) {
free(t);
}
int symlink_atomic(const char *from, const char *to) {
- char *x;
- _cleanup_free_ char *t;
- const char *fn;
- size_t k;
- uint64_t u;
- unsigned i;
- int r;
+ _cleanup_free_ char *t = NULL;
assert(from);
assert(to);
- t = new(char, strlen(to) + 1 + 16 + 1);
+ t = tempfn_random(to);
if (!t)
return -ENOMEM;
- fn = basename(to);
- k = fn-to;
- memcpy(t, to, k);
- t[k] = '.';
- x = stpcpy(t+k+1, fn);
+ if (symlink(from, t) < 0)
+ return -errno;
- u = random_u64();
- for (i = 0; i < 16; i++) {
- *(x++) = hexchar(u & 0xF);
- u >>= 4;
+ if (rename(t, to) < 0) {
+ unlink_noerrno(t);
+ return -errno;
}
- *x = 0;
+ return 0;
+}
- if (symlink(from, t) < 0)
+int mknod_atomic(const char *path, mode_t mode, dev_t dev) {
+ _cleanup_free_ char *t = NULL;
+
+ assert(path);
+
+ t = tempfn_random(path);
+ if (!t)
+ return -ENOMEM;
+
+ if (mknod(t, mode, dev) < 0)
return -errno;
- if (rename(t, to) < 0) {
- r = -errno;
- unlink(t);
- return r;
+ if (rename(t, path) < 0) {
+ unlink_noerrno(t);
+ return -errno;
+ }
+
+ return 0;
+}
+
+int mkfifo_atomic(const char *path, mode_t mode) {
+ _cleanup_free_ char *t = NULL;
+
+ assert(path);
+
+ t = tempfn_random(path);
+ if (!t)
+ return -ENOMEM;
+
+ if (mkfifo(t, mode) < 0)
+ return -errno;
+
+ if (rename(t, path) < 0) {
+ unlink_noerrno(t);
+ return -errno;
}
return 0;
return 0;
}
-int in_search_path(const char *path, char **search) {
- char **i;
- _cleanup_free_ char *parent = NULL;
- int r;
-
- r = path_get_parent(path, &parent);
- if (r < 0)
- return r;
-
- STRV_FOREACH(i, search)
- if (path_equal(parent, *i))
- return 1;
-
- return 0;
-}
-
int get_files_in_directory(const char *path, char ***list) {
_cleanup_closedir_ DIR *d = NULL;
size_t bufsize = 0, n = 0;
assert(_h);
/* Take the user specified one */
- e = getenv("HOME");
- if (e) {
+ e = secure_getenv("HOME");
+ if (e && path_is_absolute(e)) {
h = strdup(e);
if (!h)
return -ENOMEM;
assert(mode);
assert(_f);
- if (!path_strv_canonicalize_absolute_uniq(search, root))
+ if (!path_strv_resolve_uniq(search, root))
return -ENOMEM;
STRV_FOREACH(i, search) {
_cleanup_free_ char *p = NULL;
FILE *f;
- p = strjoin(*i, "/", path, NULL);
+ if (root)
+ p = strjoin(root, *i, "/", path, NULL);
+ else
+ p = strjoin(*i, "/", path, NULL);
if (!p)
return -ENOMEM;
}
}
}
+
+int fflush_and_check(FILE *f) {
+ assert(f);
+
+ errno = 0;
+ fflush(f);
+
+ if (ferror(f))
+ return errno ? -errno : -EIO;
+
+ return 0;
+}
+
+char *tempfn_xxxxxx(const char *p) {
+ const char *fn;
+ char *t;
+ size_t k;
+
+ assert(p);
+
+ t = new(char, strlen(p) + 1 + 6 + 1);
+ if (!t)
+ return NULL;
+
+ fn = basename(p);
+ k = fn - p;
+
+ strcpy(stpcpy(stpcpy(mempcpy(t, p, k), "."), fn), "XXXXXX");
+
+ return t;
+}
+
+char *tempfn_random(const char *p) {
+ const char *fn;
+ char *t, *x;
+ uint64_t u;
+ size_t k;
+ unsigned i;
+
+ assert(p);
+
+ t = new(char, strlen(p) + 1 + 16 + 1);
+ if (!t)
+ return NULL;
+
+ fn = basename(p);
+ k = fn - p;
+
+ x = stpcpy(stpcpy(mempcpy(t, p, k), "."), fn);
+
+ u = random_u64();
+ for (i = 0; i < 16; i++) {
+ *(x++) = hexchar(u & 0xF);
+ u >>= 4;
+ }
+
+ *x = 0;
+
+ return t;
+}
+
+/* make sure the hostname is not "localhost" */
+bool is_localhost(const char *hostname) {
+ assert(hostname);
+
+ /* This tries to identify local hostnames described in RFC6761
+ * plus the redhatism of .localdomain */
+
+ return streq(hostname, "localhost") ||
+ streq(hostname, "localhost.") ||
+ endswith(hostname, ".localhost") ||
+ endswith(hostname, ".localhost.") ||
+ endswith(hostname, ".localdomain") ||
+ endswith(hostname, ".localdomain.");
+}
bool hostname_is_valid(const char *s) _pure_;
char* hostname_cleanup(char *s, bool lowercase);
+bool machine_name_is_valid(const char *s) _pure_;
+
char* strshorten(char *s, size_t l);
int terminal_vhangup_fd(int fd);
int vt_disallocate(const char *name);
int symlink_atomic(const char *from, const char *to);
+int mknod_atomic(const char *path, mode_t mode, dev_t dev);
+int mkfifo_atomic(const char *path, mode_t mode);
int fchmod_umask(int fd, mode_t mode);
int dirent_ensure_type(DIR *d, struct dirent *de);
-int in_search_path(const char *path, char **search);
int get_files_in_directory(const char *path, char ***list);
char *strjoin(const char *x, ...) _sentinel_;
#define _cleanup_close_pair_ _cleanup_(close_pairp)
_malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t a, size_t b) {
- if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
+ if (_unlikely_(b != 0 && a > ((size_t) -1) / b))
return NULL;
return malloc(a * b);
}
+_alloc_(2, 3) static inline void *realloc_multiply(void *p, size_t a, size_t b) {
+ if (_unlikely_(b != 0 && a > ((size_t) -1) / b))
+ return NULL;
+
+ return realloc(p, a * b);
+}
+
_alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t a, size_t b) {
- if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
+ if (_unlikely_(b != 0 && a > ((size_t) -1) / b))
return NULL;
return memdup(p, a * b);
int umount_recursive(const char *target, int flags);
int bind_remount_recursive(const char *prefix, bool ro);
+
+int fflush_and_check(FILE *f);
+
+char *tempfn_xxxxxx(const char *p);
+char *tempfn_random(const char *p);
+
+bool is_localhost(const char *hostname);
STRV_FOREACH(state, states) {
int k;
- k = write_string_to_file(*f, *state);
+ k = write_string_stream(*f, *state);
if (k == 0)
return 0;
log_debug("Failed to write '%s' to /sys/power/state: %s",
}
static int help(void) {
+
printf("%s COMMAND\n\n"
"Suspend the system, hibernate the system, or both.\n\n"
"Commands:\n"
static const char *arg_dest = "/tmp";
static int generate_symlink(void) {
- struct stat st;
- char _cleanup_free_ *p = NULL;
+ const char *p = NULL;
- if (lstat("/system-update", &st) < 0) {
+ if (access("/system-update", F_OK) < 0) {
if (errno == ENOENT)
return 0;
return -EINVAL;
}
- p = strappend(arg_dest, "/default.target");
- if (!p)
- return log_oom();
-
+ p = strappenda(arg_dest, "/default.target");
if (symlink(SYSTEM_DATA_UNIT_PATH "/system-update.target", p) < 0) {
log_error("Failed to create symlink %s: %m", p);
return -errno;
static int arg_force = 0;
static bool arg_ask_password = true;
static bool arg_runtime = false;
+static UnitFilePresetMode arg_preset_mode = UNIT_FILE_PRESET_FULL;
static char **arg_wall = NULL;
static const char *arg_kill_who = NULL;
static int arg_signal = SIGTERM;
for (i = 0; i < n_changes; i++) {
if (changes[i].type == UNIT_FILE_SYMLINK)
- log_info("ln -s '%s' '%s'", changes[i].source, changes[i].path);
+ log_info("Created symlink from %s to %s.", changes[i].path, changes[i].source);
else
- log_info("rm '%s'", changes[i].path);
+ log_info("Removed symlink %s.", changes[i].path);
}
}
while ((r = sd_bus_message_read(m, "(sss)", &type, &path, &source)) > 0) {
if (!arg_quiet) {
if (streq(type, "symlink"))
- log_info("ln -s '%s' '%s'", source, path);
+ log_info("Created symlink from %s to %s.", path, source);
else
- log_info("rm '%s'", path);
+ log_info("Removed symlink %s.", path);
}
}
if (r < 0)
} else if (streq(verb, "link"))
r = unit_file_link(arg_scope, arg_runtime, arg_root, names, arg_force, &changes, &n_changes);
else if (streq(verb, "preset")) {
- r = unit_file_preset(arg_scope, arg_runtime, arg_root, names, arg_force, &changes, &n_changes);
+ r = unit_file_preset(arg_scope, arg_runtime, arg_root, names, arg_preset_mode, arg_force, &changes, &n_changes);
carries_install_info = r;
} else if (streq(verb, "mask"))
r = unit_file_mask(arg_scope, arg_runtime, arg_root, names, arg_force, &changes, &n_changes);
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL, *m = NULL;
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
int expect_carries_install_info = false;
- bool send_force = true;
+ bool send_force = true, send_preset_mode = false;
const char *method;
if (streq(verb, "enable")) {
} else if (streq(verb, "link"))
method = "LinkUnitFiles";
else if (streq(verb, "preset")) {
- method = "PresetUnitFiles";
+
+ if (arg_preset_mode != UNIT_FILE_PRESET_FULL) {
+ method = "PresetUnitFilesWithMode";
+ send_preset_mode = true;
+ } else
+ method = "PresetUnitFiles";
+
expect_carries_install_info = true;
} else if (streq(verb, "mask"))
method = "MaskUnitFiles";
if (r < 0)
return bus_log_create_error(r);
+ if (send_preset_mode) {
+ r = sd_bus_message_append(m, "s", unit_file_preset_mode_to_string(arg_preset_mode));
+ if (r < 0)
+ return bus_log_create_error(r);
+ }
+
r = sd_bus_message_append(m, "b", arg_runtime);
if (r < 0)
return bus_log_create_error(r);
return r;
}
+static int preset_all(sd_bus *bus, char **args) {
+ UnitFileChange *changes = NULL;
+ unsigned n_changes = 0;
+ int r;
+
+ if (!bus || avoid_bus()) {
+
+ r = unit_file_preset_all(arg_scope, arg_runtime, arg_root, arg_preset_mode, arg_force, &changes, &n_changes);
+ if (r < 0) {
+ log_error("Operation failed: %s", strerror(-r));
+ goto finish;
+ }
+
+ if (!arg_quiet)
+ dump_unit_file_changes(changes, n_changes);
+
+ r = 0;
+
+ } else {
+ _cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
+ _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
+
+ r = sd_bus_call_method(
+ bus,
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1",
+ "org.freedesktop.systemd1.Manager",
+ "PresetAllUnitFiles",
+ &error,
+ &reply,
+ "sbb",
+ unit_file_preset_mode_to_string(arg_preset_mode),
+ arg_runtime,
+ arg_force);
+ if (r < 0) {
+ log_error("Failed to execute operation: %s", bus_error_message(&error, r));
+ return r;
+ }
+
+ r = deserialize_and_dump_unit_file_changes(reply);
+ if (r < 0)
+ return r;
+
+ if (!arg_no_reload)
+ r = daemon_reload(bus, args);
+ else
+ r = 0;
+ }
+
+finish:
+ unit_file_changes_free(changes, n_changes);
+
+ return r;
+}
+
static int unit_is_enabled(sd_bus *bus, char **args) {
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
return !enabled;
}
+static int is_system_running(sd_bus *bus, char **args) {
+ _cleanup_free_ char *state = NULL;
+ int r;
+
+ r = sd_bus_get_property_string(
+ bus,
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1",
+ "org.freedesktop.systemd1.Manager",
+ "SystemState",
+ NULL,
+ &state);
+ if (r < 0) {
+ if (!arg_quiet)
+ puts("unknown");
+ return 0;
+ }
+
+ if (!arg_quiet)
+ puts(state);
+
+ return streq(state, "running") ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
static int systemctl_help(void) {
pager_open_if_enabled();
" --runtime Enable unit files only temporarily until next reboot\n"
" -f --force When enabling unit files, override existing symlinks\n"
" When shutting down, execute action immediately\n"
+ " --preset-mode= Specifies whether fully apply presets, or only enable,\n"
+ " or only disable\n"
" --root=PATH Enable unit files in the specified root directory\n"
" -n --lines=INTEGER Number of journal entries to show\n"
" -o --output=STRING Change journal output mode (short, short-monotonic,\n"
" reenable NAME... Reenable one or more unit files\n"
" preset NAME... Enable/disable one or more unit files\n"
" based on preset configuration\n"
+ " preset-all Enable/disable all unit files based on\n"
+ " preset configuration\n"
" is-enabled NAME... Check whether unit files are enabled\n\n"
" mask NAME... Mask one or more units\n"
" unmask NAME... Unmask one or more units\n"
" daemon-reload Reload systemd manager configuration\n"
" daemon-reexec Reexecute systemd manager\n\n"
"System Commands:\n"
+ " is-system-running Check whether system is fully running\n"
" default Enter system default mode\n"
" rescue Enter system rescue mode\n"
" emergency Enter system emergency mode\n"
ARG_FORCE,
ARG_PLAIN,
ARG_STATE,
- ARG_JOB_MODE
+ ARG_JOB_MODE,
+ ARG_PRESET_MODE,
};
static const struct option options[] = {
{ "plain", no_argument, NULL, ARG_PLAIN },
{ "state", required_argument, NULL, ARG_STATE },
{ "recursive", no_argument, NULL, 'r' },
+ { "preset-mode", required_argument, NULL, ARG_PRESET_MODE },
{}
};
arg_recursive = true;
break;
+ case ARG_PRESET_MODE:
+
+ arg_preset_mode = unit_file_preset_mode_from_string(optarg);
+ if (arg_preset_mode < 0) {
+ log_error("Failed to parse preset mode: %s.", optarg);
+ return -EINVAL;
+ }
+
+ break;
+
case '?':
return -EINVAL;
{ "is-enabled", MORE, 2, unit_is_enabled, NOBUS },
{ "reenable", MORE, 2, enable_unit, NOBUS },
{ "preset", MORE, 2, enable_unit, NOBUS },
+ { "preset-all", EQUAL, 1, preset_all, NOBUS },
{ "mask", MORE, 2, enable_unit, NOBUS },
{ "unmask", MORE, 2, enable_unit, NOBUS },
{ "link", MORE, 2, enable_unit, NOBUS },
{ "set-default", EQUAL, 2, set_default, NOBUS },
{ "get-default", EQUAL, 1, get_default, NOBUS },
{ "set-property", MORE, 3, set_property },
+ { "is-system-running", EQUAL, 1, is_system_running },
{}
}, *verb = verbs;
DHCP_EVENT_IP_ACQUIRE = 2,
DHCP_EVENT_IP_CHANGE = 3,
DHCP_EVENT_EXPIRED = 4,
+ DHCP_EVENT_RENEW = 5,
};
typedef struct sd_dhcp_client sd_dhcp_client;
int sd_dhcp_client_set_index(sd_dhcp_client *client, int interface_index);
int sd_dhcp_client_set_mac(sd_dhcp_client *client,
const struct ether_addr *addr);
+int sd_dhcp_client_set_hostname(sd_dhcp_client *client, const char *hostname);
int sd_dhcp_client_get_lease(sd_dhcp_client *client, sd_dhcp_lease **ret);
int sd_dhcp_client_stop(sd_dhcp_client *client);
#include <net/ethernet.h>
typedef struct sd_dhcp_lease sd_dhcp_lease;
+struct sd_dhcp_route;
sd_dhcp_lease *sd_dhcp_lease_ref(sd_dhcp_lease *lease);
sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease);
int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr);
+int sd_dhcp_lease_get_lifetime(sd_dhcp_lease *lease, uint32_t *lifetime);
int sd_dhcp_lease_get_netmask(sd_dhcp_lease *lease, struct in_addr *addr);
int sd_dhcp_lease_get_router(sd_dhcp_lease *lease, struct in_addr *addr);
int sd_dhcp_lease_get_next_server(sd_dhcp_lease *lease, struct in_addr *addr);
int sd_dhcp_lease_get_domainname(sd_dhcp_lease *lease, const char **domainname);
int sd_dhcp_lease_get_hostname(sd_dhcp_lease *lease, const char **hostname);
int sd_dhcp_lease_get_root_path(sd_dhcp_lease *lease, const char **root_path);
-
+int sd_dhcp_lease_get_routes(sd_dhcp_lease *lease, struct sd_dhcp_route **routes, size_t *routes_size);
#endif
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#ifndef foosddhcpserverhfoo
+#define foosddhcpserverhfoo
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2013 Intel Corporation. All rights reserved.
+ Copyright (C) 2014 Tom Gundersen
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdbool.h>
+#include <netinet/in.h>
+
+#include "sd-event.h"
+
+typedef struct sd_dhcp_server sd_dhcp_server;
+
+sd_dhcp_server *sd_dhcp_server_ref(sd_dhcp_server *server);
+sd_dhcp_server *sd_dhcp_server_unref(sd_dhcp_server *server);
+
+int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex);
+
+int sd_dhcp_server_attach_event(sd_dhcp_server *client, sd_event *event, int priority);
+int sd_dhcp_server_detach_event(sd_dhcp_server *client);
+sd_event *sd_dhcp_server_get_event(sd_dhcp_server *client);
+
+bool sd_dhcp_server_is_running(sd_dhcp_server *server);
+
+int sd_dhcp_server_start(sd_dhcp_server *server);
+int sd_dhcp_server_stop(sd_dhcp_server *server);
+
+int sd_dhcp_server_set_address(sd_dhcp_server *server, struct in_addr *address);
+int sd_dhcp_server_set_lease_pool(sd_dhcp_server *server, struct in_addr *start, size_t size);
+#endif
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#ifndef foosddhcp6clienthfoo
+#define foosddhcp6clienthfoo
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <net/ethernet.h>
+
+#include "sd-event.h"
+
+#include "sd-dhcp6-lease.h"
+
+enum {
+ DHCP6_EVENT_STOP = 0,
+ DHCP6_EVENT_RESEND_EXPIRE = 10,
+ DHCP6_EVENT_RETRANS_MAX = 11,
+ DHCP6_EVENT_IP_ACQUIRE = 12,
+};
+
+typedef struct sd_dhcp6_client sd_dhcp6_client;
+
+typedef void (*sd_dhcp6_client_cb_t)(sd_dhcp6_client *client, int event,
+ void *userdata);
+int sd_dhcp6_client_set_callback(sd_dhcp6_client *client,
+ sd_dhcp6_client_cb_t cb, void *userdata);
+
+int sd_dhcp6_client_set_index(sd_dhcp6_client *client, int interface_index);
+int sd_dhcp6_client_set_mac(sd_dhcp6_client *client,
+ const struct ether_addr *mac_addr);
+int sd_dhcp6_client_set_request_option(sd_dhcp6_client *client,
+ uint16_t option);
+
+int sd_dhcp6_client_get_lease(sd_dhcp6_client *client, sd_dhcp6_lease **ret);
+
+int sd_dhcp6_client_stop(sd_dhcp6_client *client);
+int sd_dhcp6_client_start(sd_dhcp6_client *client);
+int sd_dhcp6_client_attach_event(sd_dhcp6_client *client, sd_event *event,
+ int priority);
+int sd_dhcp6_client_detach_event(sd_dhcp6_client *client);
+sd_event *sd_dhcp6_client_get_event(sd_dhcp6_client *client);
+sd_dhcp6_client *sd_dhcp6_client_ref(sd_dhcp6_client *client);
+sd_dhcp6_client *sd_dhcp6_client_unref(sd_dhcp6_client *client);
+int sd_dhcp6_client_new(sd_dhcp6_client **ret);
+
+#endif
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#ifndef foosddhcp6leasehfoo
+#define foosddhcp6leasehfoo
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Tom Gundersen
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <netinet/in.h>
+
+typedef struct sd_dhcp6_lease sd_dhcp6_lease;
+
+int sd_dhcp6_lease_get_first_address(sd_dhcp6_lease *lease,
+ struct in6_addr *addr,
+ uint32_t *lifetime_preferred,
+ uint32_t *lifetime_valid);
+int sd_dhcp6_lease_get_next_address(sd_dhcp6_lease *lease,
+ struct in6_addr *addr,
+ uint32_t *lifetime_preferred,
+ uint32_t *lifetime_valid);
+
+sd_dhcp6_lease *sd_dhcp6_lease_ref(sd_dhcp6_lease *lease);
+sd_dhcp6_lease *sd_dhcp6_lease_unref(sd_dhcp6_lease *lease);
+
+#endif
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#ifndef foosdicmp6ndfoo
+#define foosdicmp6ndfoo
+
+/***
+ This file is part of systemd.
+
+ Copyright (C) 2014 Intel Corporation. All rights reserved.
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <net/ethernet.h>
+
+#include "sd-event.h"
+
+enum {
+ ICMP6_EVENT_ROUTER_ADVERTISMENT_NONE = 0,
+ ICMP6_EVENT_ROUTER_ADVERTISMENT_TIMEOUT = 1,
+ ICMP6_EVENT_ROUTER_ADVERTISMENT_OTHER = 2,
+ ICMP6_EVENT_ROUTER_ADVERTISMENT_MANAGED = 3,
+};
+
+typedef struct sd_icmp6_nd sd_icmp6_nd;
+
+typedef void(*sd_icmp6_nd_callback_t)(sd_icmp6_nd *nd, int event,
+ void *userdata);
+
+int sd_icmp6_nd_set_callback(sd_icmp6_nd *nd, sd_icmp6_nd_callback_t cb,
+ void *userdata);
+int sd_icmp6_nd_set_index(sd_icmp6_nd *nd, int interface_index);
+int sd_icmp6_nd_set_mac(sd_icmp6_nd *nd, const struct ether_addr *mac_addr);
+
+int sd_icmp6_nd_attach_event(sd_icmp6_nd *nd, sd_event *event, int priority);
+int sd_icmp6_nd_detach_event(sd_icmp6_nd *nd);
+sd_event *sd_icmp6_nd_get_event(sd_icmp6_nd *nd);
+
+sd_icmp6_nd *sd_icmp6_nd_ref(sd_icmp6_nd *nd);
+sd_icmp6_nd *sd_icmp6_nd_unref(sd_icmp6_nd *nd);
+int sd_icmp6_nd_new(sd_icmp6_nd **ret);
+
+int sd_icmp6_nd_stop(sd_icmp6_nd *nd);
+int sd_icmp6_router_solicitation_start(sd_icmp6_nd *nd);
+
+#endif
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#ifndef foosdpathhfoo
+#define foosdpathhfoo
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <inttypes.h>
+
+enum {
+ /* Temporary files */
+ SD_PATH_TEMPORARY = 0x0ULL,
+ SD_PATH_TEMPORARY_LARGE,
+
+ /* Vendor supplied data */
+ SD_PATH_SYSTEM_BINARIES,
+ SD_PATH_SYSTEM_INCLUDE,
+ SD_PATH_SYSTEM_LIBRARY_PRIVATE,
+ SD_PATH_SYSTEM_LIBRARY_ARCH,
+ SD_PATH_SYSTEM_SHARED,
+ SD_PATH_SYSTEM_CONFIGURATION_FACTORY,
+ SD_PATH_SYSTEM_STATE_FACTORY,
+
+ /* System configuration, runtime, state, ... */
+ SD_PATH_SYSTEM_CONFIGURATION,
+ SD_PATH_SYSTEM_RUNTIME,
+ SD_PATH_SYSTEM_RUNTIME_LOGS,
+ SD_PATH_SYSTEM_STATE_PRIVATE,
+ SD_PATH_SYSTEM_STATE_LOGS,
+ SD_PATH_SYSTEM_STATE_CACHE,
+ SD_PATH_SYSTEM_STATE_SPOOL,
+
+ /* Vendor supplied data */
+ SD_PATH_USER_BINARIES,
+ SD_PATH_USER_LIBRARY_PRIVATE,
+ SD_PATH_USER_LIBRARY_ARCH,
+ SD_PATH_USER_SHARED,
+
+ /* User configuration, state, runtime ... */
+ SD_PATH_USER_CONFIGURATION, /* takes both actual configuration (like /etc) and state (like /var/lib) */
+ SD_PATH_USER_RUNTIME,
+ SD_PATH_USER_STATE_CACHE,
+
+ /* User resources */
+ SD_PATH_USER, /* $HOME itself */
+ SD_PATH_USER_DOCUMENTS,
+ SD_PATH_USER_MUSIC,
+ SD_PATH_USER_PICTURES,
+ SD_PATH_USER_VIDEOS,
+ SD_PATH_USER_DOWNLOAD,
+ SD_PATH_USER_PUBLIC,
+ SD_PATH_USER_TEMPLATES,
+ SD_PATH_USER_DESKTOP,
+
+ /* Search paths */
+ SD_PATH_SEARCH_BINARIES,
+ SD_PATH_SEARCH_LIBRARY_PRIVATE,
+ SD_PATH_SEARCH_LIBRARY_ARCH,
+ SD_PATH_SEARCH_SHARED,
+ SD_PATH_SEARCH_CONFIGURATION_FACTORY,
+ SD_PATH_SEARCH_STATE_FACTORY,
+ SD_PATH_SEARCH_CONFIGURATION,
+
+ _SD_PATH_MAX,
+};
+
+int sd_path_home(uint64_t type, const char *suffix, char **path);
+int sd_path_search(uint64_t type, const char *suffix, char ***paths);
+
+#endif
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <sys/types.h>
+#include <pwd.h>
+#include <grp.h>
+#include <shadow.h>
+#include <getopt.h>
+
+#include "util.h"
+#include "hashmap.h"
+#include "specifier.h"
+#include "path-util.h"
+#include "build.h"
+#include "strv.h"
+#include "conf-files.h"
+#include "copy.h"
+#include "utf8.h"
+
+typedef enum ItemType {
+ ADD_USER = 'u',
+ ADD_GROUP = 'g',
+ ADD_MEMBER = 'm',
+} ItemType;
+typedef struct Item {
+ ItemType type;
+
+ char *name;
+ char *uid_path;
+ char *gid_path;
+ char *description;
+
+ gid_t gid;
+ uid_t uid;
+
+ bool gid_set:1;
+ bool uid_set:1;
+
+ bool todo_user:1;
+ bool todo_group:1;
+} Item;
+
+static char *arg_root = NULL;
+
+static const char conf_file_dirs[] =
+ "/usr/local/lib/sysusers.d\0"
+ "/usr/lib/sysusers.d\0"
+#ifdef HAVE_SPLIT_USR
+ "/lib/sysusers.d\0"
+#endif
+ ;
+
+static Hashmap *users = NULL, *groups = NULL;
+static Hashmap *todo_uids = NULL, *todo_gids = NULL;
+static Hashmap *members = NULL;
+
+static Hashmap *database_uid = NULL, *database_user = NULL;
+static Hashmap *database_gid = NULL, *database_group = NULL;
+
+static uid_t search_uid = SYSTEM_UID_MAX;
+static gid_t search_gid = SYSTEM_GID_MAX;
+
+#define UID_TO_PTR(u) (ULONG_TO_PTR(u+1))
+#define PTR_TO_UID(u) ((uid_t) (PTR_TO_ULONG(u)-1))
+
+#define GID_TO_PTR(g) (ULONG_TO_PTR(g+1))
+#define PTR_TO_GID(g) ((gid_t) (PTR_TO_ULONG(g)-1))
+
+#define fix_root(x) (arg_root ? strappenda(arg_root, x) : x)
+
+static int load_user_database(void) {
+ _cleanup_fclose_ FILE *f = NULL;
+ const char *passwd_path;
+ struct passwd *pw;
+ int r;
+
+ passwd_path = fix_root("/etc/passwd");
+ f = fopen(passwd_path, "re");
+ if (!f)
+ return errno == ENOENT ? 0 : -errno;
+
+ r = hashmap_ensure_allocated(&database_user, string_hash_func, string_compare_func);
+ if (r < 0)
+ return r;
+
+ r = hashmap_ensure_allocated(&database_uid, trivial_hash_func, trivial_compare_func);
+ if (r < 0)
+ return r;
+
+ errno = 0;
+ while ((pw = fgetpwent(f))) {
+ char *n;
+ int k, q;
+
+ n = strdup(pw->pw_name);
+ if (!n)
+ return -ENOMEM;
+
+ k = hashmap_put(database_user, n, UID_TO_PTR(pw->pw_uid));
+ if (k < 0 && k != -EEXIST) {
+ free(n);
+ return k;
+ }
+
+ q = hashmap_put(database_uid, UID_TO_PTR(pw->pw_uid), n);
+ if (q < 0 && q != -EEXIST) {
+ if (k < 0)
+ free(n);
+ return q;
+ }
+
+ if (q < 0 && k < 0)
+ free(n);
+
+ errno = 0;
+ }
+ if (!IN_SET(errno, 0, ENOENT))
+ return -errno;
+
+ return 0;
+}
+
+static int load_group_database(void) {
+ _cleanup_fclose_ FILE *f = NULL;
+ const char *group_path;
+ struct group *gr;
+ int r;
+
+ group_path = fix_root("/etc/group");
+ f = fopen(group_path, "re");
+ if (!f)
+ return errno == ENOENT ? 0 : -errno;
+
+ r = hashmap_ensure_allocated(&database_group, string_hash_func, string_compare_func);
+ if (r < 0)
+ return r;
+
+ r = hashmap_ensure_allocated(&database_gid, trivial_hash_func, trivial_compare_func);
+ if (r < 0)
+ return r;
+
+ errno = 0;
+ while ((gr = fgetgrent(f))) {
+ char *n;
+ int k, q;
+
+ n = strdup(gr->gr_name);
+ if (!n)
+ return -ENOMEM;
+
+ k = hashmap_put(database_group, n, GID_TO_PTR(gr->gr_gid));
+ if (k < 0 && k != -EEXIST) {
+ free(n);
+ return k;
+ }
+
+ q = hashmap_put(database_gid, GID_TO_PTR(gr->gr_gid), n);
+ if (q < 0 && q != -EEXIST) {
+ if (k < 0)
+ free(n);
+ return q;
+ }
+
+ if (q < 0 && k < 0)
+ free(n);
+
+ errno = 0;
+ }
+ if (!IN_SET(errno, 0, ENOENT))
+ return -errno;
+
+ return 0;
+}
+
+static int make_backup(const char *x) {
+ _cleanup_close_ int src = -1, dst = -1;
+ char *backup, *temp;
+ struct timespec ts[2];
+ struct stat st;
+ int r;
+
+ src = open(x, O_RDONLY|O_CLOEXEC|O_NOCTTY);
+ if (src < 0) {
+ if (errno == ENOENT) /* No backup necessary... */
+ return 0;
+
+ return -errno;
+ }
+
+ if (fstat(src, &st) < 0)
+ return -errno;
+
+ temp = strappenda(x, ".XXXXXX");
+ dst = mkostemp_safe(temp, O_WRONLY|O_CLOEXEC|O_NOCTTY);
+ if (dst < 0)
+ return dst;
+
+ r = copy_bytes(src, dst, (off_t) -1);
+ if (r < 0)
+ goto fail;
+
+ /* Copy over the access mask */
+ if (fchmod(dst, st.st_mode & 07777) < 0) {
+ r = -errno;
+ goto fail;
+ }
+
+ /* Don't fail on chmod(). If it stays owned by us, then it
+ * isn't too bad... */
+ fchown(dst, st.st_uid, st.st_gid);
+
+ ts[0] = st.st_atim;
+ ts[1] = st.st_mtim;
+ futimens(dst, ts);
+
+ backup = strappenda(x, "-");
+ if (rename(temp, backup) < 0)
+ goto fail;
+
+ return 0;
+
+fail:
+ unlink(temp);
+ return r;
+}
+
+static int putgrent_with_members(const struct group *gr, FILE *group) {
+ char **a;
+
+ assert(gr);
+ assert(group);
+
+ a = hashmap_get(members, gr->gr_name);
+ if (a) {
+ _cleanup_strv_free_ char **l = NULL;
+ bool added = false;
+ char **i;
+
+ l = strv_copy(gr->gr_mem);
+ if (!l)
+ return -ENOMEM;
+
+ STRV_FOREACH(i, a) {
+ if (strv_find(l, *i))
+ continue;
+
+ if (strv_extend(&l, *i) < 0)
+ return -ENOMEM;
+
+ added = true;
+ }
+
+ if (added) {
+ struct group t;
+
+ strv_uniq(l);
+ strv_sort(l);
+
+ t = *gr;
+ t.gr_mem = l;
+
+ errno = 0;
+ if (putgrent(&t, group) != 0)
+ return errno ? -errno : -EIO;
+
+ return 1;
+ }
+ }
+
+ errno = 0;
+ if (putgrent(gr, group) != 0)
+ return errno ? -errno : -EIO;
+
+ return 0;
+}
+
+static int write_files(void) {
+
+ _cleanup_fclose_ FILE *passwd = NULL, *group = NULL;
+ _cleanup_free_ char *passwd_tmp = NULL, *group_tmp = NULL;
+ const char *passwd_path = NULL, *group_path = NULL;
+ bool group_changed = false;
+ Iterator iterator;
+ Item *i;
+ int r;
+
+ /* We don't patch /etc/shadow or /etc/gshadow here, since we
+ * only create user accounts without passwords anyway. */
+
+ if (hashmap_size(todo_gids) > 0 || hashmap_size(members) > 0) {
+ _cleanup_fclose_ FILE *original = NULL;
+
+ group_path = fix_root("/etc/group");
+ r = fopen_temporary(group_path, &group, &group_tmp);
+ if (r < 0)
+ goto finish;
+
+ if (fchmod(fileno(group), 0644) < 0) {
+ r = -errno;
+ goto finish;
+ }
+
+ original = fopen(group_path, "re");
+ if (original) {
+ struct group *gr;
+
+ errno = 0;
+ while ((gr = fgetgrent(original))) {
+ /* Safety checks against name and GID
+ * collisions. Normally, this should
+ * be unnecessary, but given that we
+ * look at the entries anyway here,
+ * let's make an extra verification
+ * step that we don't generate
+ * duplicate entries. */
+
+ i = hashmap_get(groups, gr->gr_name);
+ if (i && i->todo_group) {
+ r = -EEXIST;
+ goto finish;
+ }
+
+ if (hashmap_contains(todo_gids, GID_TO_PTR(gr->gr_gid))) {
+ r = -EEXIST;
+ goto finish;
+ }
+
+ r = putgrent_with_members(gr, group);
+ if (r < 0)
+ goto finish;
+
+ if (r > 0)
+ group_changed = true;
+
+ errno = 0;
+ }
+ if (!IN_SET(errno, 0, ENOENT)) {
+ r = -errno;
+ goto finish;
+ }
+
+ } else if (errno != ENOENT) {
+ r = -errno;
+ goto finish;
+ }
+
+ HASHMAP_FOREACH(i, todo_gids, iterator) {
+ struct group n = {
+ .gr_name = i->name,
+ .gr_gid = i->gid,
+ .gr_passwd = (char*) "x",
+ };
+
+ r = putgrent_with_members(&n, group);
+ if (r < 0)
+ goto finish;
+
+ group_changed = true;
+ }
+
+ r = fflush_and_check(group);
+ if (r < 0)
+ goto finish;
+ }
+
+ if (hashmap_size(todo_uids) > 0) {
+ _cleanup_fclose_ FILE *original = NULL;
+
+ passwd_path = fix_root("/etc/passwd");
+ r = fopen_temporary(passwd_path, &passwd, &passwd_tmp);
+ if (r < 0)
+ goto finish;
+
+ if (fchmod(fileno(passwd), 0644) < 0) {
+ r = -errno;
+ goto finish;
+ }
+
+ original = fopen(passwd_path, "re");
+ if (original) {
+ struct passwd *pw;
+
+ errno = 0;
+ while ((pw = fgetpwent(original))) {
+
+ i = hashmap_get(users, pw->pw_name);
+ if (i && i->todo_user) {
+ r = -EEXIST;
+ goto finish;
+ }
+
+ if (hashmap_contains(todo_uids, UID_TO_PTR(pw->pw_uid))) {
+ r = -EEXIST;
+ goto finish;
+ }
+
+ errno = 0;
+ if (putpwent(pw, passwd) < 0) {
+ r = errno ? -errno : -EIO;
+ goto finish;
+ }
+
+ errno = 0;
+ }
+ if (!IN_SET(errno, 0, ENOENT)) {
+ r = -errno;
+ goto finish;
+ }
+
+ } else if (errno != ENOENT) {
+ r = -errno;
+ goto finish;
+ }
+
+ HASHMAP_FOREACH(i, todo_uids, iterator) {
+ struct passwd n = {
+ .pw_name = i->name,
+ .pw_uid = i->uid,
+ .pw_gid = i->gid,
+ .pw_gecos = i->description,
+ .pw_passwd = (char*) "x",
+ };
+
+ /* Initialize the home directory and the shell
+ * to nologin, with one exception: for root we
+ * patch in something special */
+ if (i->uid == 0) {
+ n.pw_shell = (char*) "/bin/sh";
+ n.pw_dir = (char*) "/root";
+ } else {
+ n.pw_shell = (char*) "/sbin/nologin";
+ n.pw_dir = (char*) "/";
+ }
+
+ errno = 0;
+ if (putpwent(&n, passwd) != 0) {
+ r = errno ? -errno : -EIO;
+ goto finish;
+ }
+ }
+
+ r = fflush_and_check(passwd);
+ if (r < 0)
+ goto finish;
+ }
+
+ /* Make a backup of the old files */
+ if (group && group_changed) {
+ r = make_backup(group_path);
+ if (r < 0)
+ goto finish;
+ }
+
+ if (passwd) {
+ r = make_backup(passwd_path);
+ if (r < 0)
+ goto finish;
+ }
+
+ /* And make the new files count */
+ if (group && group_changed) {
+ if (rename(group_tmp, group_path) < 0) {
+ r = -errno;
+ goto finish;
+ }
+
+ free(group_tmp);
+ group_tmp = NULL;
+ }
+
+ if (passwd) {
+ if (rename(passwd_tmp, passwd_path) < 0) {
+ r = -errno;
+ goto finish;
+ }
+
+ free(passwd_tmp);
+ passwd_tmp = NULL;
+ }
+
+ r = 0;
+
+finish:
+ if (passwd_tmp)
+ unlink(passwd_tmp);
+ if (group_tmp)
+ unlink(group_tmp);
+
+ return r;
+}
+
+static int uid_is_ok(uid_t uid, const char *name) {
+ struct passwd *p;
+ struct group *g;
+ const char *n;
+ Item *i;
+
+ /* Let's see if we already have assigned the UID a second time */
+ if (hashmap_get(todo_uids, UID_TO_PTR(uid)))
+ return 0;
+
+ /* Try to avoid using uids that are already used by a group
+ * that doesn't have the same name as our new user. */
+ i = hashmap_get(todo_gids, GID_TO_PTR(uid));
+ if (i && !streq(i->name, name))
+ return 0;
+
+ /* Let's check the files directly */
+ if (hashmap_contains(database_uid, UID_TO_PTR(uid)))
+ return 0;
+
+ n = hashmap_get(database_gid, GID_TO_PTR(uid));
+ if (n && !streq(n, name))
+ return 0;
+
+ /* Let's also check via NSS, to avoid UID clashes over LDAP and such, just in case */
+ if (!arg_root) {
+ errno = 0;
+ p = getpwuid(uid);
+ if (p)
+ return 0;
+ if (!IN_SET(errno, 0, ENOENT))
+ return -errno;
+
+ errno = 0;
+ g = getgrgid((gid_t) uid);
+ if (g) {
+ if (!streq(g->gr_name, name))
+ return 0;
+ } else if (!IN_SET(errno, 0, ENOENT))
+ return -errno;
+ }
+
+ return 1;
+}
+
+static int root_stat(const char *p, struct stat *st) {
+ const char *fix;
+
+ fix = fix_root(p);
+ if (stat(fix, st) < 0)
+ return -errno;
+
+ return 0;
+}
+
+static int read_id_from_file(Item *i, uid_t *_uid, gid_t *_gid) {
+ struct stat st;
+ bool found_uid = false, found_gid = false;
+ uid_t uid;
+ gid_t gid;
+
+ assert(i);
+
+ /* First, try to get the gid directly */
+ if (_gid && i->gid_path && root_stat(i->gid_path, &st) >= 0) {
+ gid = st.st_gid;
+ found_gid = true;
+ }
+
+ /* Then, try to get the uid directly */
+ if ((_uid || (_gid && !found_gid))
+ && i->uid_path
+ && root_stat(i->uid_path, &st) >= 0) {
+
+ uid = st.st_uid;
+ found_uid = true;
+
+ /* If we need the gid, but had no success yet, also derive it from the uid path */
+ if (_gid && !found_gid) {
+ gid = st.st_gid;
+ found_gid = true;
+ }
+ }
+
+ /* If that didn't work yet, then let's reuse the gid as uid */
+ if (_uid && !found_uid && i->gid_path) {
+
+ if (found_gid) {
+ uid = (uid_t) gid;
+ found_uid = true;
+ } else if (root_stat(i->gid_path, &st) >= 0) {
+ uid = (uid_t) st.st_gid;
+ found_uid = true;
+ }
+ }
+
+ if (_uid) {
+ if (!found_uid)
+ return 0;
+
+ *_uid = uid;
+ }
+
+ if (_gid) {
+ if (!found_gid)
+ return 0;
+
+ *_gid = gid;
+ }
+
+ return 1;
+}
+
+static int add_user(Item *i) {
+ void *z;
+ int r;
+
+ assert(i);
+
+ /* Check the database directly */
+ z = hashmap_get(database_user, i->name);
+ if (z) {
+ log_debug("User %s already exists.", i->name);
+ i->uid = PTR_TO_UID(z);
+ i->uid_set = true;
+ return 0;
+ }
+
+ if (!arg_root) {
+ struct passwd *p;
+ struct spwd *sp;
+
+ /* Also check NSS */
+ errno = 0;
+ p = getpwnam(i->name);
+ if (p) {
+ log_debug("User %s already exists.", i->name);
+ i->uid = p->pw_uid;
+ i->uid_set = true;
+
+ free(i->description);
+ i->description = strdup(p->pw_gecos);
+ return 0;
+ }
+ if (!IN_SET(errno, 0, ENOENT)) {
+ log_error("Failed to check if user %s already exists: %m", i->name);
+ return -errno;
+ }
+
+ /* And shadow too, just to be sure */
+ errno = 0;
+ sp = getspnam(i->name);
+ if (sp) {
+ log_error("User %s already exists in shadow database, but not in user database.", i->name);
+ return -EBADMSG;
+ }
+ if (!IN_SET(errno, 0, ENOENT)) {
+ log_error("Failed to check if user %s already exists in shadow database: %m", i->name);
+ return -errno;
+ }
+ }
+
+ /* Try to use the suggested numeric uid */
+ if (i->uid_set) {
+ r = uid_is_ok(i->uid, i->name);
+ if (r < 0) {
+ log_error("Failed to verify uid " UID_FMT ": %s", i->uid, strerror(-r));
+ return r;
+ }
+ if (r == 0) {
+ log_debug("Suggested user ID " UID_FMT " for %s already used.", i->uid, i->name);
+ i->uid_set = false;
+ }
+ }
+
+ /* If that didn't work, try to read it from the specified path */
+ if (!i->uid_set) {
+ uid_t c;
+
+ if (read_id_from_file(i, &c, NULL) > 0) {
+
+ if (c <= 0 || c > SYSTEM_UID_MAX)
+ log_debug("User ID " UID_FMT " of file not suitable for %s.", c, i->name);
+ else {
+ r = uid_is_ok(c, i->name);
+ if (r < 0) {
+ log_error("Failed to verify uid " UID_FMT ": %s", i->uid, strerror(-r));
+ return r;
+ } else if (r > 0) {
+ i->uid = c;
+ i->uid_set = true;
+ } else
+ log_debug("User ID " UID_FMT " of file for %s is already used.", c, i->name);
+ }
+ }
+ }
+
+ /* Otherwise try to reuse the group ID */
+ if (!i->uid_set && i->gid_set) {
+ r = uid_is_ok((uid_t) i->gid, i->name);
+ if (r < 0) {
+ log_error("Failed to verify uid " UID_FMT ": %s", i->uid, strerror(-r));
+ return r;
+ }
+ if (r > 0) {
+ i->uid = (uid_t) i->gid;
+ i->uid_set = true;
+ }
+ }
+
+ /* And if that didn't work either, let's try to find a free one */
+ if (!i->uid_set) {
+ for (; search_uid > 0; search_uid--) {
+
+ r = uid_is_ok(search_uid, i->name);
+ if (r < 0) {
+ log_error("Failed to verify uid " UID_FMT ": %s", i->uid, strerror(-r));
+ return r;
+ } else if (r > 0)
+ break;
+ }
+
+ if (search_uid <= 0) {
+ log_error("No free user ID available for %s.", i->name);
+ return -E2BIG;
+ }
+
+ i->uid_set = true;
+ i->uid = search_uid;
+
+ search_uid--;
+ }
+
+ r = hashmap_ensure_allocated(&todo_uids, trivial_hash_func, trivial_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ r = hashmap_put(todo_uids, UID_TO_PTR(i->uid), i);
+ if (r < 0)
+ return log_oom();
+
+ i->todo_user = true;
+ log_info("Creating user %s (%s) with uid " UID_FMT " and gid " GID_FMT ".", i->name, strna(i->description), i->uid, i->gid);
+
+ return 0;
+}
+
+static int gid_is_ok(gid_t gid) {
+ struct group *g;
+ struct passwd *p;
+
+ if (hashmap_get(todo_gids, GID_TO_PTR(gid)))
+ return 0;
+
+ /* Avoid reusing gids that are already used by a different user */
+ if (hashmap_get(todo_uids, UID_TO_PTR(gid)))
+ return 0;
+
+ if (hashmap_contains(database_gid, GID_TO_PTR(gid)))
+ return 0;
+
+ if (hashmap_contains(database_uid, UID_TO_PTR(gid)))
+ return 0;
+
+ if (!arg_root) {
+ errno = 0;
+ g = getgrgid(gid);
+ if (g)
+ return 0;
+ if (!IN_SET(errno, 0, ENOENT))
+ return -errno;
+
+ errno = 0;
+ p = getpwuid((uid_t) gid);
+ if (p)
+ return 0;
+ if (!IN_SET(errno, 0, ENOENT))
+ return -errno;
+ }
+
+ return 1;
+}
+
+static int add_group(Item *i) {
+ void *z;
+ int r;
+
+ assert(i);
+
+ /* Check the database directly */
+ z = hashmap_get(database_group, i->name);
+ if (z) {
+ log_debug("Group %s already exists.", i->name);
+ i->gid = PTR_TO_GID(z);
+ i->gid_set = true;
+ return 0;
+ }
+
+ /* Also check NSS */
+ if (!arg_root) {
+ struct group *g;
+
+ errno = 0;
+ g = getgrnam(i->name);
+ if (g) {
+ log_debug("Group %s already exists.", i->name);
+ i->gid = g->gr_gid;
+ i->gid_set = true;
+ return 0;
+ }
+ if (!IN_SET(errno, 0, ENOENT)) {
+ log_error("Failed to check if group %s already exists: %m", i->name);
+ return -errno;
+ }
+ }
+
+ /* Try to use the suggested numeric gid */
+ if (i->gid_set) {
+ r = gid_is_ok(i->gid);
+ if (r < 0) {
+ log_error("Failed to verify gid " GID_FMT ": %s", i->gid, strerror(-r));
+ return r;
+ }
+ if (r == 0) {
+ log_debug("Suggested group ID " GID_FMT " for %s already used.", i->gid, i->name);
+ i->gid_set = false;
+ }
+ }
+
+ /* Try to reuse the numeric uid, if there's one */
+ if (!i->gid_set && i->uid_set) {
+ r = gid_is_ok((gid_t) i->uid);
+ if (r < 0) {
+ log_error("Failed to verify gid " GID_FMT ": %s", i->gid, strerror(-r));
+ return r;
+ }
+ if (r > 0) {
+ i->gid = (gid_t) i->uid;
+ i->gid_set = true;
+ }
+ }
+
+ /* If that didn't work, try to read it from the specified path */
+ if (!i->gid_set) {
+ gid_t c;
+
+ if (read_id_from_file(i, NULL, &c) > 0) {
+
+ if (c <= 0 || c > SYSTEM_GID_MAX)
+ log_debug("Group ID " GID_FMT " of file not suitable for %s.", c, i->name);
+ else {
+ r = gid_is_ok(c);
+ if (r < 0) {
+ log_error("Failed to verify gid " GID_FMT ": %s", i->gid, strerror(-r));
+ return r;
+ } else if (r > 0) {
+ i->gid = c;
+ i->gid_set = true;
+ } else
+ log_debug("Group ID " GID_FMT " of file for %s already used.", c, i->name);
+ }
+ }
+ }
+
+ /* And if that didn't work either, let's try to find a free one */
+ if (!i->gid_set) {
+ for (; search_gid > 0; search_gid--) {
+ r = gid_is_ok(search_gid);
+ if (r < 0) {
+ log_error("Failed to verify gid " GID_FMT ": %s", i->gid, strerror(-r));
+ return r;
+ } else if (r > 0)
+ break;
+ }
+
+ if (search_gid <= 0) {
+ log_error("No free group ID available for %s.", i->name);
+ return -E2BIG;
+ }
+
+ i->gid_set = true;
+ i->gid = search_gid;
+
+ search_gid--;
+ }
+
+ r = hashmap_ensure_allocated(&todo_gids, trivial_hash_func, trivial_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ r = hashmap_put(todo_gids, GID_TO_PTR(i->gid), i);
+ if (r < 0)
+ return log_oom();
+
+ i->todo_group = true;
+ log_info("Creating group %s with gid " GID_FMT ".", i->name, i->gid);
+
+ return 0;
+}
+
+static int process_item(Item *i) {
+ int r;
+
+ assert(i);
+
+ switch (i->type) {
+
+ case ADD_USER:
+ r = add_group(i);
+ if (r < 0)
+ return r;
+
+ return add_user(i);
+
+ case ADD_GROUP: {
+ Item *j;
+
+ j = hashmap_get(users, i->name);
+ if (j) {
+ /* There's already user to be created for this
+ * name, let's process that in one step */
+
+ if (i->gid_set) {
+ j->gid = i->gid;
+ j->gid_set = true;
+ }
+
+ if (i->gid_path) {
+ free(j->gid_path);
+ j->gid_path = strdup(i->gid_path);
+ if (!j->gid_path)
+ return log_oom();
+ }
+
+ return 0;
+ }
+
+ return add_group(i);
+ }
+
+ default:
+ assert_not_reached("Unknown item type");
+ }
+}
+
+static void item_free(Item *i) {
+
+ if (!i)
+ return;
+
+ free(i->name);
+ free(i->uid_path);
+ free(i->gid_path);
+ free(i->description);
+ free(i);
+}
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(Item*, item_free);
+
+static int add_implicit(void) {
+ char *g, **l;
+ Iterator iterator;
+ int r;
+
+ /* Implicitly create additional users and groups, if they were listed in "m" lines */
+
+ HASHMAP_FOREACH_KEY(l, g, members, iterator) {
+ Item *i;
+ char **m;
+
+ i = hashmap_get(groups, g);
+ if (!i) {
+ _cleanup_(item_freep) Item *j = NULL;
+
+ r = hashmap_ensure_allocated(&groups, string_hash_func, string_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ j = new0(Item, 1);
+ if (!j)
+ return log_oom();
+
+ j->type = ADD_GROUP;
+ j->name = strdup(g);
+ if (!j->name)
+ return log_oom();
+
+ r = hashmap_put(groups, j->name, j);
+ if (r < 0)
+ return log_oom();
+
+ log_debug("Adding implicit group '%s' due to m line", j->name);
+ j = NULL;
+ }
+
+ STRV_FOREACH(m, l) {
+
+ i = hashmap_get(users, *m);
+ if (!i) {
+ _cleanup_(item_freep) Item *j = NULL;
+
+ r = hashmap_ensure_allocated(&users, string_hash_func, string_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ j = new0(Item, 1);
+ if (!j)
+ return log_oom();
+
+ j->type = ADD_USER;
+ j->name = strdup(*m);
+ if (!j->name)
+ return log_oom();
+
+ r = hashmap_put(users, j->name, j);
+ if (r < 0)
+ return log_oom();
+
+ log_debug("Adding implicit user '%s' due to m line", j->name);
+ j = NULL;
+ }
+ }
+ }
+
+ return 0;
+}
+
+static bool item_equal(Item *a, Item *b) {
+ assert(a);
+ assert(b);
+
+ if (a->type != b->type)
+ return false;
+
+ if (!streq_ptr(a->name, b->name))
+ return false;
+
+ if (!streq_ptr(a->uid_path, b->uid_path))
+ return false;
+
+ if (!streq_ptr(a->gid_path, b->gid_path))
+ return false;
+
+ if (!streq_ptr(a->description, b->description))
+ return false;
+
+ if (a->uid_set != b->uid_set)
+ return false;
+
+ if (a->uid_set && a->uid != b->uid)
+ return false;
+
+ if (a->gid_set != b->gid_set)
+ return false;
+
+ if (a->gid_set && a->gid != b->gid)
+ return false;
+
+ return true;
+}
+
+static bool valid_user_group_name(const char *u) {
+ const char *i;
+ long sz;
+
+ if (isempty(u) < 0)
+ return false;
+
+ if (!(u[0] >= 'a' && u[0] <= 'z') &&
+ !(u[0] >= 'A' && u[0] <= 'Z') &&
+ u[0] != '_')
+ return false;
+
+ for (i = u+1; *i; i++) {
+ if (!(*i >= 'a' && *i <= 'z') &&
+ !(*i >= 'A' && *i <= 'Z') &&
+ !(*i >= '0' && *i <= '9') &&
+ *i != '_' &&
+ *i != '-')
+ return false;
+ }
+
+ sz = sysconf(_SC_LOGIN_NAME_MAX);
+ assert_se(sz > 0);
+
+ if ((size_t) (i-u) > (size_t) sz)
+ return false;
+
+ return true;
+}
+
+static bool valid_gecos(const char *d) {
+
+ if (!utf8_is_valid(d))
+ return false;
+
+ if (strpbrk(d, ":\n"))
+ return false;
+
+ return true;
+}
+
+static int parse_line(const char *fname, unsigned line, const char *buffer) {
+
+ static const Specifier specifier_table[] = {
+ { 'm', specifier_machine_id, NULL },
+ { 'b', specifier_boot_id, NULL },
+ { 'H', specifier_host_name, NULL },
+ { 'v', specifier_kernel_release, NULL },
+ {}
+ };
+
+ _cleanup_free_ char *action = NULL, *name = NULL, *id = NULL, *resolved_name = NULL;
+ _cleanup_(item_freep) Item *i = NULL;
+ Item *existing;
+ Hashmap *h;
+ int r, n = -1;
+
+ assert(fname);
+ assert(line >= 1);
+ assert(buffer);
+
+ r = sscanf(buffer,
+ "%ms %ms %ms %n",
+ &action,
+ &name,
+ &id,
+ &n);
+ if (r < 2) {
+ log_error("[%s:%u] Syntax error.", fname, line);
+ return -EIO;
+ }
+
+ if (strlen(action) != 1) {
+ log_error("[%s:%u] Unknown modifier '%s'", fname, line, action);
+ return -EINVAL;
+ }
+
+ if (!IN_SET(action[0], ADD_USER, ADD_GROUP, ADD_MEMBER)) {
+ log_error("[%s:%u] Unknown command command type '%c'.", fname, line, action[0]);
+ return -EBADMSG;
+ }
+
+ r = specifier_printf(name, specifier_table, NULL, &resolved_name);
+ if (r < 0) {
+ log_error("[%s:%u] Failed to replace specifiers: %s", fname, line, name);
+ return r;
+ }
+
+ if (!valid_user_group_name(resolved_name)) {
+ log_error("[%s:%u] '%s' is not a valid user or group name.", fname, line, resolved_name);
+ return -EINVAL;
+ }
+
+ if (n >= 0) {
+ n += strspn(buffer+n, WHITESPACE);
+
+ if (STR_IN_SET(buffer + n, "", "-"))
+ n = -1;
+ }
+
+ switch (action[0]) {
+
+ case ADD_MEMBER: {
+ _cleanup_free_ char *resolved_id = NULL;
+ char **l;
+
+ r = hashmap_ensure_allocated(&members, string_hash_func, string_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ /* Try to extend an existing member or group item */
+
+ if (!id || streq(id, "-")) {
+ log_error("[%s:%u] Lines of type 'm' require a group name in the third field.", fname, line);
+ return -EINVAL;
+ }
+
+ r = specifier_printf(id, specifier_table, NULL, &resolved_id);
+ if (r < 0) {
+ log_error("[%s:%u] Failed to replace specifiers: %s", fname, line, name);
+ return r;
+ }
+
+ if (!valid_user_group_name(resolved_id)) {
+ log_error("[%s:%u] '%s' is not a valid user or group name.", fname, line, resolved_id);
+ return -EINVAL;
+ }
+
+ if (n >= 0) {
+ log_error("[%s:%u] Lines of type 'm' don't take a GECOS field.", fname, line);
+ return -EINVAL;
+ }
+
+ l = hashmap_get(members, resolved_id);
+ if (l) {
+ /* A list for this group name already exists, let's append to it */
+ r = strv_push(&l, resolved_name);
+ if (r < 0)
+ return log_oom();
+
+ resolved_name = NULL;
+
+ assert_se(hashmap_update(members, resolved_id, l) >= 0);
+ } else {
+ /* No list for this group name exists yet, create one */
+
+ l = new0(char *, 2);
+ if (!l)
+ return -ENOMEM;
+
+ l[0] = resolved_name;
+ l[1] = NULL;
+
+ r = hashmap_put(members, resolved_id, l);
+ if (r < 0) {
+ free(l);
+ return log_oom();
+ }
+
+ resolved_id = resolved_name = NULL;
+ }
+
+ return 0;
+ }
+
+ case ADD_USER:
+ r = hashmap_ensure_allocated(&users, string_hash_func, string_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ i = new0(Item, 1);
+ if (!i)
+ return log_oom();
+
+ if (id && !streq(id, "-")) {
+
+ if (path_is_absolute(id)) {
+ i->uid_path = strdup(id);
+ if (!i->uid_path)
+ return log_oom();
+
+ path_kill_slashes(i->uid_path);
+
+ } else {
+ r = parse_uid(id, &i->uid);
+ if (r < 0) {
+ log_error("Failed to parse UID: %s", id);
+ return -EBADMSG;
+ }
+
+ i->uid_set = true;
+ }
+ }
+
+ if (n >= 0) {
+ i->description = unquote(buffer+n, "\"");
+ if (!i->description)
+ return log_oom();
+
+ if (!valid_gecos(i->description)) {
+ log_error("[%s:%u] '%s' is not a valid GECOS field.", fname, line, i->description);
+ return -EINVAL;
+ }
+ }
+
+ h = users;
+ break;
+
+ case ADD_GROUP:
+ r = hashmap_ensure_allocated(&groups, string_hash_func, string_compare_func);
+ if (r < 0)
+ return log_oom();
+
+ if (n >= 0) {
+ log_error("[%s:%u] Lines of type 'g' don't take a GECOS field.", fname, line);
+ return -EINVAL;
+ }
+
+ i = new0(Item, 1);
+ if (!i)
+ return log_oom();
+
+ if (id && !streq(id, "-")) {
+
+ if (path_is_absolute(id)) {
+ i->gid_path = strdup(id);
+ if (!i->gid_path)
+ return log_oom();
+
+ path_kill_slashes(i->gid_path);
+ } else {
+ r = parse_gid(id, &i->gid);
+ if (r < 0) {
+ log_error("Failed to parse GID: %s", id);
+ return -EBADMSG;
+ }
+
+ i->gid_set = true;
+ }
+ }
+
+
+ h = groups;
+ break;
+ }
+
+ i->type = action[0];
+ i->name = resolved_name;
+ resolved_name = NULL;
+
+ existing = hashmap_get(h, i->name);
+ if (existing) {
+
+ /* Two identical items are fine */
+ if (!item_equal(existing, i))
+ log_warning("Two or more conflicting lines for %s configured, ignoring.", i->name);
+
+ return 0;
+ }
+
+ r = hashmap_put(h, i->name, i);
+ if (r < 0)
+ return log_oom();
+
+ i = NULL;
+ return 0;
+}
+
+static int read_config_file(const char *fn, bool ignore_enoent) {
+ _cleanup_fclose_ FILE *f = NULL;
+ char line[LINE_MAX];
+ unsigned v = 0;
+ int r;
+
+ assert(fn);
+
+ r = search_and_fopen_nulstr(fn, "re", arg_root, conf_file_dirs, &f);
+ if (r < 0) {
+ if (ignore_enoent && r == -ENOENT)
+ return 0;
+
+ log_error("Failed to open '%s', ignoring: %s", fn, strerror(-r));
+ return r;
+ }
+
+ FOREACH_LINE(line, f, break) {
+ char *l;
+ int k;
+
+ v++;
+
+ l = strstrip(line);
+ if (*l == '#' || *l == 0)
+ continue;
+
+ k = parse_line(fn, v, l);
+ if (k < 0 && r == 0)
+ r = k;
+ }
+
+ if (ferror(f)) {
+ log_error("Failed to read from file %s: %m", fn);
+ if (r == 0)
+ r = -EIO;
+ }
+
+ return r;
+}
+
+static int take_lock(void) {
+
+ struct flock flock = {
+ .l_type = F_WRLCK,
+ .l_whence = SEEK_SET,
+ .l_start = 0,
+ .l_len = 0,
+ };
+
+ const char *path;
+ int fd, r;
+
+ /* This is roughly the same as lckpwdf(), but not as awful. We
+ * don't want to use alarm() and signals, hence we implement
+ * our own trivial version of this.
+ *
+ * Note that shadow-utils also takes per-database locks in
+ * addition to lckpwdf(). However, we don't given that they
+ * are redundant as they they invoke lckpwdf() first and keep
+ * it during everything they do. The per-database locks are
+ * awfully racy, and thus we just won't do them. */
+
+ path = fix_root("/etc/.pwd.lock");
+ fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0600);
+ if (fd < 0)
+ return -errno;
+
+ r = fcntl(fd, F_SETLKW, &flock);
+ if (r < 0) {
+ safe_close(fd);
+ return -errno;
+ }
+
+ return fd;
+}
+
+static void free_database(Hashmap *by_name, Hashmap *by_id) {
+ char *name;
+
+ for (;;) {
+ name = hashmap_first(by_id);
+ if (!name)
+ break;
+
+ hashmap_remove(by_name, name);
+
+ hashmap_steal_first_key(by_id);
+ free(name);
+ }
+
+ while ((name = hashmap_steal_first_key(by_name)))
+ free(name);
+
+ hashmap_free(by_name);
+ hashmap_free(by_id);
+}
+
+static int help(void) {
+
+ printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
+ "Creates system user accounts.\n\n"
+ " -h --help Show this help\n"
+ " --version Show package version\n"
+ " --root=PATH Operate on an alternate filesystem root\n",
+ program_invocation_short_name);
+
+ return 0;
+}
+
+static int parse_argv(int argc, char *argv[]) {
+
+ enum {
+ ARG_VERSION = 0x100,
+ ARG_ROOT,
+ };
+
+ static const struct option options[] = {
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, ARG_VERSION },
+ { "root", required_argument, NULL, ARG_ROOT },
+ {}
+ };
+
+ int c;
+
+ assert(argc >= 0);
+ assert(argv);
+
+ while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0) {
+
+ switch (c) {
+
+ case 'h':
+ return help();
+
+ case ARG_VERSION:
+ puts(PACKAGE_STRING);
+ puts(SYSTEMD_FEATURES);
+ return 0;
+
+ case ARG_ROOT:
+ free(arg_root);
+ arg_root = path_make_absolute_cwd(optarg);
+ if (!arg_root)
+ return log_oom();
+
+ path_kill_slashes(arg_root);
+ break;
+
+ case '?':
+ return -EINVAL;
+
+ default:
+ assert_not_reached("Unhandled option");
+ }
+ }
+
+ return 1;
+}
+
+int main(int argc, char *argv[]) {
+
+ _cleanup_close_ int lock = -1;
+ Iterator iterator;
+ int r, k;
+ Item *i;
+ char *n;
+
+ r = parse_argv(argc, argv);
+ if (r <= 0)
+ goto finish;
+
+ log_set_target(LOG_TARGET_AUTO);
+ log_parse_environment();
+ log_open();
+
+ umask(0022);
+
+ r = 0;
+
+ if (optind < argc) {
+ int j;
+
+ for (j = optind; j < argc; j++) {
+ k = read_config_file(argv[j], false);
+ if (k < 0 && r == 0)
+ r = k;
+ }
+ } else {
+ _cleanup_strv_free_ char **files = NULL;
+ char **f;
+
+ r = conf_files_list_nulstr(&files, ".conf", arg_root, conf_file_dirs);
+ if (r < 0) {
+ log_error("Failed to enumerate sysusers.d files: %s", strerror(-r));
+ goto finish;
+ }
+
+ STRV_FOREACH(f, files) {
+ k = read_config_file(*f, true);
+ if (k < 0 && r == 0)
+ r = k;
+ }
+ }
+
+ r = add_implicit();
+ if (r < 0)
+ goto finish;
+
+ lock = take_lock();
+ if (lock < 0) {
+ log_error("Failed to take lock: %s", strerror(-lock));
+ goto finish;
+ }
+
+ r = load_user_database();
+ if (r < 0) {
+ log_error("Failed to load user database: %s", strerror(-r));
+ goto finish;
+ }
+
+ r = load_group_database();
+ if (r < 0) {
+ log_error("Failed to read group database: %s", strerror(-r));
+ goto finish;
+ }
+
+ HASHMAP_FOREACH(i, groups, iterator)
+ process_item(i);
+
+ HASHMAP_FOREACH(i, users, iterator)
+ process_item(i);
+
+ r = write_files();
+ if (r < 0)
+ log_error("Failed to write files: %s", strerror(-r));
+
+finish:
+ while ((i = hashmap_steal_first(groups)))
+ item_free(i);
+
+ while ((i = hashmap_steal_first(users)))
+ item_free(i);
+
+ while ((n = hashmap_first_key(members))) {
+ strv_free(hashmap_steal_first(members));
+ free(n);
+ }
+
+ hashmap_free(groups);
+ hashmap_free(users);
+ hashmap_free(members);
+ hashmap_free(todo_uids);
+ hashmap_free(todo_gids);
+
+ free_database(database_user, database_uid);
+ free_database(database_group, database_gid);
+
+ free(arg_root);
+
+ return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+}
char **before;
char **after;
char **wants;
+ char **wanted_by;
char **conflicts;
bool has_lsb;
bool reload;
_cleanup_fclose_ FILE *f = NULL;
_cleanup_free_ char *before = NULL;
_cleanup_free_ char *after = NULL;
+ _cleanup_free_ char *wants = NULL;
_cleanup_free_ char *conflicts = NULL;
int r;
if (!after)
return log_oom();
+ wants = strv_join(s->wants, " ");
+ if (!wants)
+ return log_oom();
+
conflicts = strv_join(s->conflicts, " ");
if (!conflicts)
return log_oom();
fprintf(f, "Before=%s\n", before);
if (!isempty(after))
fprintf(f, "After=%s\n", after);
+ if (!isempty(wants))
+ fprintf(f, "Wants=%s\n", wants);
if (!isempty(conflicts))
fprintf(f, "Conflicts=%s\n", conflicts);
fprintf(f, "SysVStartPriority=%d\n", s->sysv_start_priority);
if (s->pid_file)
- fprintf(f, "PidFile=%s\n", s->pid_file);
+ fprintf(f, "PIDFile=%s\n", s->pid_file);
fprintf(f,
"ExecStart=%s start\n"
if (s->reload)
fprintf(f, "ExecReload=%s reload\n", s->path);
- STRV_FOREACH(p, s->wants) {
+ STRV_FOREACH(p, s->wanted_by) {
r = add_symlink(s->name, *p);
if (r < 0)
log_error_unit(s->name, "Failed to create 'Wants' symlink to %s: %s", *p, strerror(-r));
if (hashmap_contains(all_services, name))
service = hashmap_get(all_services, name);
else {
- log_warning("Could not find init scirpt for %s", name);
+ log_warning("Could not find init script for %s", name);
continue;
}
r = strv_extend(&service->before, rcnd_table[i].target);
if (r < 0)
return log_oom();
- r = strv_extend(&service->wants, rcnd_table[i].target);
+ r = strv_extend(&service->wanted_by, rcnd_table[i].target);
if (r < 0)
return log_oom();
}
assert_se(a >= 0);
log_info("native architecture=%s", architecture_to_string(a));
+
+ log_info("primary library architecture=" LIB_ARCH_TUPLE);
+
return 0;
}
--- /dev/null
+/***
+ This file is part of systemd
+
+ Copyright 2014 Ronny Chevalier
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <unistd.h>
+
+#include "async.h"
+#include "util.h"
+#include "macro.h"
+
+static bool test_async = false;
+
+static void *async_func(void *arg) {
+ test_async = true;
+
+ return NULL;
+}
+
+int main(int argc, char *argv[]) {
+ int fd;
+ char name[] = "/tmp/test-asynchronous_close.XXXXXX";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+ asynchronous_close(fd);
+ assert_se(asynchronous_job(async_func, NULL) >= 0);
+ assert_se(asynchronous_sync() >= 0);
+
+ sleep(1);
+
+ assert_se(fcntl(fd, F_GETFD) == -1);
+ assert_se(test_async);
+
+ return 0;
+}
--- /dev/null
+/***
+ This file is part of systemd
+
+ Copyright 2014 Ronny Chevalier
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/capability.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <pwd.h>
+#include <unistd.h>
+
+#include "capability.h"
+#include "util.h"
+#include "macro.h"
+
+static uid_t test_uid = -1;
+static gid_t test_gid = -1;
+// We keep CAP_DAC_OVERRIDE to avoid errors with gcov when doing test coverage
+static uint64_t test_flags = 1ULL << CAP_DAC_OVERRIDE;
+
+static void fork_test(void (*test_func)(void)) {
+ pid_t pid = 0;
+
+ pid = fork();
+ assert_se(pid >= 0);
+ if (pid == 0) {
+ test_func();
+ exit(0);
+ } else if (pid > 0) {
+ int status;
+
+ assert_se(waitpid(pid, &status, 0) > 0);
+ assert_se(WIFEXITED(status) && WEXITSTATUS(status) == 0);
+ }
+}
+
+static void show_capabilities(void) {
+ cap_t caps;
+ char *text;
+
+ caps = cap_get_proc();
+ assert_se(caps);
+
+ text = cap_to_text(caps, NULL);
+ assert_se(text);
+
+ log_info("Capabilities:%s", text);
+ cap_free(caps);
+ cap_free(text);
+}
+
+static int setup_tests(void) {
+ struct passwd *nobody;
+
+ nobody = getpwnam("nobody");
+ if (!nobody) {
+ log_error("Could not find nobody user: %m");
+ return -EXIT_TEST_SKIP;
+ }
+ test_uid = nobody->pw_uid;
+ test_gid = nobody->pw_gid;
+
+ return 0;
+}
+
+static void test_drop_privileges_keep_net_raw(void) {
+ int sock;
+
+ sock = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
+ assert_se(sock >= 0);
+ safe_close(sock);
+
+ assert_se(drop_privileges(test_uid, test_gid, test_flags | (1ULL << CAP_NET_RAW)) >= 0);
+ assert_se(getuid() == test_uid);
+ assert_se(getgid() == test_gid);
+ show_capabilities();
+
+ sock = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
+ assert_se(sock >= 0);
+ safe_close(sock);
+}
+
+static void test_drop_privileges_dontkeep_net_raw(void) {
+ int sock;
+
+ sock = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
+ assert_se(sock >= 0);
+ safe_close(sock);
+
+ assert_se(drop_privileges(test_uid, test_gid, test_flags) >= 0);
+ assert_se(getuid() == test_uid);
+ assert_se(getgid() == test_gid);
+ show_capabilities();
+
+ sock = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
+ assert_se(sock < 0);
+}
+
+static void test_drop_privileges_fail(void) {
+ assert_se(drop_privileges(test_uid, test_gid, test_flags) >= 0);
+ assert_se(getuid() == test_uid);
+ assert_se(getgid() == test_gid);
+
+ assert_se(drop_privileges(test_uid, test_gid, test_flags) < 0);
+ assert_se(drop_privileges(0, 0, test_flags) < 0);
+}
+
+static void test_drop_privileges(void) {
+ fork_test(test_drop_privileges_keep_net_raw);
+ fork_test(test_drop_privileges_dontkeep_net_raw);
+ fork_test(test_drop_privileges_fail);
+}
+
+static void test_have_effective_cap(void) {
+ assert_se(have_effective_cap(CAP_KILL));
+ assert_se(have_effective_cap(CAP_CHOWN));
+
+ assert_se(drop_privileges(test_uid, test_gid, test_flags | (1ULL << CAP_KILL)) >= 0);
+ assert_se(getuid() == test_uid);
+ assert_se(getgid() == test_gid);
+
+ assert_se(have_effective_cap(CAP_KILL));
+ assert_se(!have_effective_cap(CAP_CHOWN));
+}
+
+int main(int argc, char *argv[]) {
+ int r;
+
+ log_parse_environment();
+ log_open();
+
+ if (getuid() != 0)
+ return EXIT_TEST_SKIP;
+
+ r = setup_tests();
+ if (r < 0)
+ return -r;
+
+ show_capabilities();
+
+ test_drop_privileges();
+ fork_test(test_have_effective_cap);
+
+ return 0;
+}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Michael Marineau
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "conf-files.h"
+#include "macro.h"
+#include "strv.h"
+#include "util.h"
+
+
+static void setup_test_dir(char *tmp_dir, const char *files, ...) {
+ va_list ap;
+
+ assert_se(mkdtemp(tmp_dir) != NULL);
+
+ va_start(ap, files);
+ while (files != NULL) {
+ _cleanup_free_ char *path = strappend(tmp_dir, files);
+ assert_se(touch_file(path, true, (usec_t) -1, (uid_t) -1, (gid_t) -1, 0) == 0);
+ files = va_arg(ap, const char *);
+ }
+ va_end(ap);
+}
+
+static void test_conf_files_list(bool use_root) {
+ char tmp_dir[] = "/tmp/test-conf-files-XXXXXX";
+ _cleanup_strv_free_ char **found_files = NULL;
+ const char *root_dir, *search_1, *search_2, *expect_a, *expect_b;
+
+ setup_test_dir(tmp_dir,
+ "/dir1/a.conf",
+ "/dir2/a.conf",
+ "/dir2/b.conf",
+ NULL);
+
+ if (use_root) {
+ root_dir = tmp_dir;
+ search_1 = "/dir1";
+ search_2 = "/dir2";
+ } else {
+ root_dir = NULL;
+ search_1 = strappenda(tmp_dir, "/dir1");
+ search_2 = strappenda(tmp_dir, "/dir2");
+ }
+
+ expect_a = strappenda(tmp_dir, "/dir1/a.conf");
+ expect_b = strappenda(tmp_dir, "/dir2/b.conf");
+
+ assert_se(conf_files_list(&found_files, ".conf", root_dir, search_1, search_2, NULL) == 0);
+ strv_print(found_files);
+
+ assert_se(found_files);
+ assert_se(streq_ptr(found_files[0], expect_a));
+ assert_se(streq_ptr(found_files[1], expect_b));
+ assert_se(found_files[2] == NULL);
+
+ assert_se(rm_rf_dangerous(tmp_dir, false, true, false) == 0);
+}
+
+int main(int argc, char **argv) {
+ test_conf_files_list(false);
+ test_conf_files_list(true);
+ return 0;
+}
--- /dev/null
+/***
+ This file is part of systemd
+
+ Copyright 2014 Ronny Chevalier
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "fdset.h"
+#include "util.h"
+#include "macro.h"
+
+static void test_fdset_new_fill(void) {
+ int fd = -1;
+ _cleanup_fdset_free_ FDSet *fdset = NULL;
+ char name[] = "/tmp/test-fdset_new_fill.XXXXXX";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+ assert_se(fdset_new_fill(&fdset) >= 0);
+ assert_se(fdset_contains(fdset, fd));
+
+ unlink(name);
+}
+
+static void test_fdset_put_dup(void) {
+ _cleanup_close_ int fd = -1;
+ int copyfd = -1;
+ _cleanup_fdset_free_ FDSet *fdset = NULL;
+ char name[] = "/tmp/test-fdset_put_dup.XXXXXX";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+
+ fdset = fdset_new();
+ assert_se(fdset);
+ copyfd = fdset_put_dup(fdset, fd);
+ assert_se(copyfd >= 0 && copyfd != fd);
+ assert_se(fdset_contains(fdset, copyfd));
+ assert_se(!fdset_contains(fdset, fd));
+
+ unlink(name);
+}
+
+static void test_fdset_cloexec(void) {
+ int fd = -1;
+ _cleanup_fdset_free_ FDSet *fdset = NULL;
+ int flags = -1;
+ char name[] = "/tmp/test-fdset_cloexec.XXXXXX";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+
+ fdset = fdset_new();
+ assert_se(fdset);
+ assert_se(fdset_put(fdset, fd));
+
+ assert_se(fdset_cloexec(fdset, false) >= 0);
+ flags = fcntl(fd, F_GETFD);
+ assert_se(flags >= 0);
+ assert_se(!(flags & FD_CLOEXEC));
+
+ assert_se(fdset_cloexec(fdset, true) >= 0);
+ flags = fcntl(fd, F_GETFD);
+ assert_se(flags >= 0);
+ assert_se(flags & FD_CLOEXEC);
+
+ unlink(name);
+}
+
+static void test_fdset_close_others(void) {
+ int fd = -1;
+ int copyfd = -1;
+ _cleanup_fdset_free_ FDSet *fdset = NULL;
+ int flags = -1;
+ char name[] = "/tmp/test-fdset_close_others.XXXXXX";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+
+ fdset = fdset_new();
+ assert_se(fdset);
+ copyfd = fdset_put_dup(fdset, fd);
+ assert_se(copyfd >= 0);
+
+ assert_se(fdset_close_others(fdset) >= 0);
+ flags = fcntl(fd, F_GETFD);
+ assert_se(flags < 0);
+ flags = fcntl(copyfd, F_GETFD);
+ assert_se(flags >= 0);
+
+ unlink(name);
+}
+
+static void test_fdset_remove(void) {
+ _cleanup_close_ int fd = -1;
+ FDSet *fdset = NULL;
+ char name[] = "/tmp/test-fdset_remove.XXXXXX";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+
+ fdset = fdset_new();
+ assert_se(fdset);
+ assert_se(fdset_put(fdset, fd) >= 0);
+ assert_se(fdset_remove(fdset, fd) >= 0);
+ assert_se(!fdset_contains(fdset, fd));
+ fdset_free(fdset);
+
+ assert_se(fcntl(fd, F_GETFD) >= 0);
+
+ unlink(name);
+}
+
+int main(int argc, char *argv[]) {
+ test_fdset_new_fill();
+ test_fdset_put_dup();
+ test_fdset_cloexec();
+ test_fdset_close_others();
+ test_fdset_remove();
+
+ return 0;
+}
fflush(f);
fclose(f);
- r = load_env_file(t, NULL, &a);
+ r = load_env_file(NULL, t, NULL, &a);
assert_se(r >= 0);
STRV_FOREACH(i, a)
r = write_env_file(p, a);
assert_se(r >= 0);
- r = load_env_file(p, NULL, &b);
+ r = load_env_file(NULL, p, NULL, &b);
assert_se(r >= 0);
unlink(t);
fflush(f);
fclose(f);
- r = load_env_file(t, NULL, &a);
+ r = load_env_file(NULL, t, NULL, &a);
assert_se(r >= 0);
STRV_FOREACH(i, a)
r = write_env_file(p, a);
assert_se(r >= 0);
- r = load_env_file(p, NULL, &b);
+ r = load_env_file(NULL, p, NULL, &b);
assert_se(r >= 0);
unlink(t);
hashmap_free(m);
}
+static void test_hashmap_remove_and_put(void) {
+ _cleanup_hashmap_free_ Hashmap *m = NULL;
+ int valid;
+ char *r;
+
+ m = hashmap_new(string_hash_func, string_compare_func);
+ assert_se(m);
+
+ valid = hashmap_remove_and_put(m, "unvalid key", "new key", NULL);
+ assert_se(valid < 0);
+
+ valid = hashmap_put(m, "key 1", (void*) (const char *) "val 1");
+ assert_se(valid == 1);
+ valid = hashmap_remove_and_put(m, "key 1", "key 2", (void*) (const char *) "val 2");
+ assert_se(valid == 0);
+
+ r = hashmap_get(m, "key 2");
+ assert_se(streq(r, "val 2"));
+ assert_se(!hashmap_get(m, "key 1"));
+
+ valid = hashmap_put(m, "key 3", (void*) (const char *) "val 3");
+ assert_se(valid == 1);
+ valid = hashmap_remove_and_put(m, "key 3", "key 2", (void*) (const char *) "val 2");
+ assert_se(valid < 0);
+}
+
static void test_hashmap_ensure_allocated(void) {
Hashmap *m;
int valid_hashmap;
hashmap_free(h);
}
+static void test_hashmap_first_key(void) {
+ _cleanup_hashmap_free_ Hashmap *m = NULL;
+
+ m = hashmap_new(string_hash_func, string_compare_func);
+ assert_se(m);
+
+ assert_se(!hashmap_first_key(m));
+ assert_se(hashmap_put(m, "key 1", NULL) == 1);
+ assert_se(streq(hashmap_first_key(m), "key 1"));
+ assert_se(hashmap_put(m, "key 2", NULL) == 1);
+ assert_se(streq(hashmap_first_key(m), "key 1"));
+ assert_se(hashmap_remove(m, "key 1") == NULL);
+ assert_se(streq(hashmap_first_key(m), "key 2"));
+}
+
+static void test_hashmap_last(void) {
+ _cleanup_hashmap_free_ Hashmap *m = NULL;
+
+ m = hashmap_new(string_hash_func, string_compare_func);
+ assert_se(m);
+
+ assert_se(!hashmap_last(m));
+ assert_se(hashmap_put(m, "key 1", (void *) (const char *) "val 1") == 1);
+ assert_se(streq(hashmap_last(m), "val 1"));
+ assert_se(hashmap_put(m, "key 2", (void *) (const char *) "bar") == 1);
+ assert_se(streq(hashmap_last(m), "bar"));
+ assert_se(hashmap_remove(m, "key 2"));
+ assert_se(streq(hashmap_last(m), "val 1"));
+}
+
+static void test_hashmap_steal_first_key(void) {
+ _cleanup_hashmap_free_ Hashmap *m = NULL;
+
+ m = hashmap_new(string_hash_func, string_compare_func);
+ assert_se(m);
+
+ assert_se(!hashmap_steal_first_key(m));
+ assert_se(hashmap_put(m, "key 1", NULL) == 1);
+ assert_se(streq(hashmap_steal_first_key(m), "key 1"));
+
+ assert_se(hashmap_isempty(m));
+}
+
+static void test_hashmap_clear_free_free(void) {
+ _cleanup_hashmap_free_ Hashmap *m = NULL;
+
+ m = hashmap_new(string_hash_func, string_compare_func);
+ assert_se(m);
+
+ assert_se(hashmap_put(m, strdup("key 1"), NULL) == 1);
+ assert_se(hashmap_put(m, strdup("key 2"), NULL) == 1);
+ assert_se(hashmap_put(m, strdup("key 3"), NULL) == 1);
+
+ hashmap_clear_free_free(m);
+ assert_se(hashmap_isempty(m));
+}
+
static void test_uint64_compare_func(void) {
const uint64_t a = 0x100, b = 0x101;
test_hashmap_replace();
test_hashmap_update();
test_hashmap_put();
+ test_hashmap_remove_and_put();
test_hashmap_ensure_allocated();
test_hashmap_foreach();
test_hashmap_foreach_backwards();
test_hashmap_get();
test_hashmap_size();
test_hashmap_many();
+ test_hashmap_first_key();
+ test_hashmap_last();
+ test_hashmap_steal_first_key();
+ test_hashmap_clear_free_free();
test_uint64_compare_func();
test_trivial_compare_func();
test_string_compare_func();
changes = NULL;
n_changes = 0;
- r = unit_file_preset(UNIT_FILE_SYSTEM, false, NULL, (char**) files, false, &changes, &n_changes);
+ r = unit_file_preset(UNIT_FILE_SYSTEM, false, NULL, (char**) files, UNIT_FILE_PRESET_FULL, false, &changes, &n_changes);
assert_se(r >= 0);
dump_changes(changes, n_changes);
***/
#include <stdio.h>
+#include <unistd.h>
#include "path-util.h"
#include "util.h"
#include "macro.h"
+#include "strv.h"
static void test_path(void) {
assert_se(streq(basename("file.../"), ""));
#define test_parent(x, y) { \
- char _cleanup_free_ *z = NULL; \
+ _cleanup_free_ char *z = NULL; \
int r = path_get_parent(x, &z); \
printf("expected: %s\n", y ? y : "error"); \
printf("actual: %s\n", r<0 ? "error" : z); \
test("//extra/////slashes///won't////fool///anybody//", "////extra///slashes////are/just///fine///", "../../../are/just/fine");
}
+static void test_strv_resolve(void) {
+ char tmp_dir[] = "/tmp/test-path-util-XXXXXX";
+ _cleanup_strv_free_ char **search_dirs = NULL;
+ _cleanup_strv_free_ char **absolute_dirs = NULL;
+ char **d;
+
+ assert_se(mkdtemp(tmp_dir) != NULL);
+
+ search_dirs = strv_new("/dir1", "/dir2", "/dir3", NULL);
+ assert_se(search_dirs);
+ STRV_FOREACH(d, search_dirs) {
+ char *p = strappend(tmp_dir, *d);
+ assert_se(p);
+ assert_se(strv_push(&absolute_dirs, p) == 0);
+ }
+
+ assert_se(mkdir(absolute_dirs[0], 0700) == 0);
+ assert_se(mkdir(absolute_dirs[1], 0700) == 0);
+ assert_se(symlink("dir2", absolute_dirs[2]) == 0);
+
+ path_strv_resolve(search_dirs, tmp_dir);
+ assert_se(streq(search_dirs[0], "/dir1"));
+ assert_se(streq(search_dirs[1], "/dir2"));
+ assert_se(streq(search_dirs[2], "/dir2"));
+
+ assert_se(rm_rf_dangerous(tmp_dir, false, true, false) == 0);
+}
+
int main(int argc, char **argv) {
test_path();
test_find_binary(argv[0]);
test_prefixes();
test_fsck_exists();
test_make_relative();
+ test_strv_resolve();
return 0;
}
--- /dev/null
+/***
+ This file is part of systemd
+
+ Copyright 2014 Ronny Chevalier
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include <unistd.h>
+
+#include "ratelimit.h"
+#include "time-util.h"
+#include "macro.h"
+
+static void test_ratelimit_test(void) {
+ int i;
+ RATELIMIT_DEFINE(ratelimit, 1 * USEC_PER_SEC, 10);
+
+ for (i = 0; i < 10; i++) {
+ assert_se(ratelimit_test(&ratelimit));
+ }
+ assert_se(!ratelimit_test(&ratelimit));
+ sleep(1);
+ for (i = 0; i < 10; i++) {
+ assert_se(ratelimit_test(&ratelimit));
+ }
+
+ RATELIMIT_INIT(ratelimit, 0, 10);
+ for (i = 0; i < 10000; i++) {
+ assert_se(ratelimit_test(&ratelimit));
+ }
+}
+
+int main(int argc, char *argv[]) {
+ test_ratelimit_test();
+
+ return 0;
+}
--- /dev/null
+/***
+ This file is part of systemd
+
+ Copyright 2014 Ronny Chevalier
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "socket-util.h"
+#include "util.h"
+#include "macro.h"
+#include "log.h"
+
+static void test_socket_address_parse(void) {
+ SocketAddress a;
+
+ assert_se(socket_address_parse(&a, "junk") < 0);
+ assert_se(socket_address_parse(&a, "192.168.1.1") < 0);
+ assert_se(socket_address_parse(&a, ".168.1.1") < 0);
+ assert_se(socket_address_parse(&a, "989.168.1.1") < 0);
+ assert_se(socket_address_parse(&a, "192.168.1.1:65536") < 0);
+ assert_se(socket_address_parse(&a, "192.168.1.1:0") < 0);
+ assert_se(socket_address_parse(&a, "0") < 0);
+ assert_se(socket_address_parse(&a, "65536") < 0);
+
+ assert_se(socket_address_parse(&a, "65535") >= 0);
+
+ if (socket_ipv6_is_supported()) {
+ assert_se(socket_address_parse(&a, "[::1]") < 0);
+ assert_se(socket_address_parse(&a, "[::1]8888") < 0);
+ assert_se(socket_address_parse(&a, "::1") < 0);
+ assert_se(socket_address_parse(&a, "[::1]:0") < 0);
+ assert_se(socket_address_parse(&a, "[::1]:65536") < 0);
+ assert_se(socket_address_parse(&a, "[a:b:1]:8888") < 0);
+
+ assert_se(socket_address_parse(&a, "8888") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_INET6);
+
+ assert_se(socket_address_parse(&a, "[2001:0db8:0000:85a3:0000:0000:ac1f:8001]:8888") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_INET6);
+
+ assert_se(socket_address_parse(&a, "[::1]:8888") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_INET6);
+ } else {
+ assert_se(socket_address_parse(&a, "[::1]:8888") < 0);
+
+ assert_se(socket_address_parse(&a, "8888") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_INET);
+ }
+
+ assert_se(socket_address_parse(&a, "192.168.1.254:8888") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_INET);
+
+ assert_se(socket_address_parse(&a, "/foo/bar") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_UNIX);
+
+ assert_se(socket_address_parse(&a, "@abstract") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_UNIX);
+}
+
+static void test_socket_address_parse_netlink(void) {
+ SocketAddress a;
+
+ assert_se(socket_address_parse_netlink(&a, "junk") < 0);
+ assert_se(socket_address_parse_netlink(&a, "") < 0);
+
+ assert_se(socket_address_parse_netlink(&a, "route") >= 0);
+ assert_se(socket_address_parse_netlink(&a, "route 10") >= 0);
+ assert_se(a.sockaddr.sa.sa_family == AF_NETLINK);
+ assert_se(a.protocol == NETLINK_ROUTE);
+}
+
+static void test_socket_address_equal(void) {
+ SocketAddress a;
+ SocketAddress b;
+
+ assert_se(socket_address_parse(&a, "192.168.1.1:8888") >= 0);
+ assert_se(socket_address_parse(&b, "192.168.1.1:888") >= 0);
+ assert_se(!socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "192.168.1.1:8888") >= 0);
+ assert_se(socket_address_parse(&b, "192.16.1.1:8888") >= 0);
+ assert_se(!socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "192.168.1.1:8888") >= 0);
+ assert_se(socket_address_parse(&b, "8888") >= 0);
+ assert_se(!socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "192.168.1.1:8888") >= 0);
+ assert_se(socket_address_parse(&b, "/foo/bar/") >= 0);
+ assert_se(!socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "192.168.1.1:8888") >= 0);
+ assert_se(socket_address_parse(&b, "192.168.1.1:8888") >= 0);
+ assert_se(socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "/foo/bar") >= 0);
+ assert_se(socket_address_parse(&b, "/foo/bar") >= 0);
+ assert_se(socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "[::1]:8888") >= 0);
+ assert_se(socket_address_parse(&b, "[::1]:8888") >= 0);
+ assert_se(socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse(&a, "@abstract") >= 0);
+ assert_se(socket_address_parse(&b, "@abstract") >= 0);
+ assert_se(socket_address_equal(&a, &b));
+
+ assert_se(socket_address_parse_netlink(&a, "firewall") >= 0);
+ assert_se(socket_address_parse_netlink(&b, "firewall") >= 0);
+ assert_se(socket_address_equal(&a, &b));
+}
+
+static void test_socket_address_get_path(void) {
+ SocketAddress a;
+
+ assert_se(socket_address_parse(&a, "192.168.1.1:8888") >= 0);
+ assert_se(!socket_address_get_path(&a));
+
+ assert_se(socket_address_parse(&a, "@abstract") >= 0);
+ assert_se(!socket_address_get_path(&a));
+
+ assert_se(socket_address_parse(&a, "[::1]:8888") >= 0);
+ assert_se(!socket_address_get_path(&a));
+
+ assert_se(socket_address_parse(&a, "/foo/bar") >= 0);
+ assert_se(streq(socket_address_get_path(&a), "/foo/bar"));
+}
+
+static void test_in_addr_prefix_intersect_one(unsigned f, const char *a, unsigned apl, const char *b, unsigned bpl, int result) {
+ union in_addr_union ua, ub;
+
+ assert_se(in_addr_from_string(f, a, &ua) >= 0);
+ assert_se(in_addr_from_string(f, b, &ub) >= 0);
+
+ assert_se(in_addr_prefix_intersect(f, &ua, apl, &ub, bpl) == result);
+}
+
+static void test_in_addr_prefix_intersect(void) {
+
+ test_in_addr_prefix_intersect_one(AF_INET, "255.255.255.255", 32, "255.255.255.254", 32, 0);
+ test_in_addr_prefix_intersect_one(AF_INET, "255.255.255.255", 0, "255.255.255.255", 32, 1);
+ test_in_addr_prefix_intersect_one(AF_INET, "0.0.0.0", 0, "47.11.8.15", 32, 1);
+
+ test_in_addr_prefix_intersect_one(AF_INET, "1.1.1.1", 24, "1.1.1.1", 24, 1);
+ test_in_addr_prefix_intersect_one(AF_INET, "2.2.2.2", 24, "1.1.1.1", 24, 0);
+
+ test_in_addr_prefix_intersect_one(AF_INET, "1.1.1.1", 24, "1.1.1.127", 25, 1);
+ test_in_addr_prefix_intersect_one(AF_INET, "1.1.1.1", 24, "1.1.1.127", 26, 1);
+ test_in_addr_prefix_intersect_one(AF_INET, "1.1.1.1", 25, "1.1.1.127", 25, 1);
+ test_in_addr_prefix_intersect_one(AF_INET, "1.1.1.1", 25, "1.1.1.255", 25, 0);
+
+ test_in_addr_prefix_intersect_one(AF_INET6, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", 128, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe", 128, 0);
+ test_in_addr_prefix_intersect_one(AF_INET6, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", 0, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", 128, 1);
+ test_in_addr_prefix_intersect_one(AF_INET6, "::", 0, "beef:beef:beef:beef:beef:beef:beef:beef", 128, 1);
+
+ test_in_addr_prefix_intersect_one(AF_INET6, "1::2", 64, "1::2", 64, 1);
+ test_in_addr_prefix_intersect_one(AF_INET6, "2::2", 64, "1::2", 64, 0);
+
+ test_in_addr_prefix_intersect_one(AF_INET6, "1::1", 120, "1::007f", 121, 1);
+ test_in_addr_prefix_intersect_one(AF_INET6, "1::1", 120, "1::007f", 122, 1);
+ test_in_addr_prefix_intersect_one(AF_INET6, "1::1", 121, "1::007f", 121, 1);
+ test_in_addr_prefix_intersect_one(AF_INET6, "1::1", 121, "1::00ff", 121, 0);
+}
+
+static void test_in_addr_prefix_next_one(unsigned f, const char *before, unsigned pl, const char *after) {
+ union in_addr_union ubefore, uafter, t;
+
+ assert_se(in_addr_from_string(f, before, &ubefore) >= 0);
+
+ t = ubefore;
+ assert_se((in_addr_prefix_next(f, &t, pl) > 0) == !!after);
+
+ if (after) {
+ assert_se(in_addr_from_string(f, after, &uafter) >= 0);
+ assert_se(in_addr_equal(f, &t, &uafter) > 0);
+ }
+}
+
+static void test_in_addr_prefix_next(void) {
+
+ test_in_addr_prefix_next_one(AF_INET, "192.168.0.0", 24, "192.168.1.0");
+ test_in_addr_prefix_next_one(AF_INET, "192.168.0.0", 16, "192.169.0.0");
+ test_in_addr_prefix_next_one(AF_INET, "192.168.0.0", 20, "192.168.16.0");
+
+ test_in_addr_prefix_next_one(AF_INET, "0.0.0.0", 32, "0.0.0.1");
+ test_in_addr_prefix_next_one(AF_INET, "255.255.255.255", 32, NULL);
+ test_in_addr_prefix_next_one(AF_INET, "255.255.255.0", 24, NULL);
+
+ test_in_addr_prefix_next_one(AF_INET6, "4400::", 128, "4400::0001");
+ test_in_addr_prefix_next_one(AF_INET6, "4400::", 120, "4400::0100");
+ test_in_addr_prefix_next_one(AF_INET6, "4400::", 127, "4400::0002");
+ test_in_addr_prefix_next_one(AF_INET6, "4400::", 8, "4500::");
+ test_in_addr_prefix_next_one(AF_INET6, "4400::", 7, "4600::");
+
+ test_in_addr_prefix_next_one(AF_INET6, "::", 128, "::1");
+
+ test_in_addr_prefix_next_one(AF_INET6, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", 128, NULL);
+ test_in_addr_prefix_next_one(AF_INET6, "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00", 120, NULL);
+
+}
+
+int main(int argc, char *argv[]) {
+
+ log_set_max_level(LOG_DEBUG);
+
+ test_socket_address_parse();
+ test_socket_address_parse_netlink();
+ test_socket_address_equal();
+ test_socket_address_get_path();
+
+ test_in_addr_prefix_intersect();
+ test_in_addr_prefix_next();
+
+ return 0;
+}
assert_se(streq(b[0], "test3"));
}
+static void test_strv_extendf(void) {
+ _cleanup_strv_free_ char **a = NULL, **b = NULL;
+
+ a = strv_new("test", "test1", NULL);
+ assert_se(a);
+ assert_se(strv_extendf(&a, "test2 %s %d %s", "foo", 128, "bar") >= 0);
+ assert_se(strv_extendf(&b, "test3 %s %s %d", "bar", "foo", 128) >= 0);
+
+ assert_se(streq(a[0], "test"));
+ assert_se(streq(a[1], "test1"));
+ assert_se(streq(a[2], "test2 foo 128 bar"));
+ assert_se(streq(b[0], "test3 bar foo 128"));
+}
+
static void test_strv_foreach(void) {
_cleanup_strv_free_ char **a;
unsigned i = 0;
test_strv_extend_strv();
test_strv_extend_strv_concat();
test_strv_extend();
+ test_strv_extendf();
test_strv_from_stdarg_alloca();
return 0;
assert(fd >= 0);
assert_se(write(fd, env_file_1, sizeof(env_file_1)) == sizeof(env_file_1));
- r = load_env_file(name, NULL, &data);
+ r = load_env_file(NULL, name, NULL, &data);
assert(r == 0);
assert(streq(data[0], "a=a"));
assert(streq(data[1], "b=bc"));
assert(fd >= 0);
assert_se(write(fd, env_file_2, sizeof(env_file_2)) == sizeof(env_file_2));
- r = load_env_file(name, NULL, &data);
+ r = load_env_file(NULL, name, NULL, &data);
assert(r == 0);
assert(streq(data[0], "a=a"));
assert(data[1] == NULL);
assert(fd >= 0);
assert_se(write(fd, env_file_3, sizeof(env_file_3)) == sizeof(env_file_3));
- r = load_env_file(name, NULL, &data);
+ r = load_env_file(NULL, name, NULL, &data);
assert(r == 0);
assert(data == NULL);
unlink(name);
assert(fd >= 0);
assert_se(write(fd, env_file_4, sizeof(env_file_4)) == sizeof(env_file_4));
- r = load_env_file(name, NULL, &data);
+ r = load_env_file(NULL, name, NULL, &data);
assert(r == 0);
assert(streq(data[0], "HWMON_MODULES=coretemp f71882fg"));
assert(streq(data[1], "MODULE_0=coretemp"));
Copyright 2012 Lennart Poettering
Copyright 2013 Zbigniew Jędrzejewski-Szmek
+ Copyright 2014 Ronny Chevalier
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
assert_se(setenv("USER", "root", 1) == 0);
assert_se(setenv("HOME", "/root", 1) == 0);
+ assert_se(setenv("XDG_RUNTIME_DIR", "/run/user/1/", 1) == 0);
assert_se(u = unit_new(m, sizeof(Service)));
assert_se(unit_add_name(u, "blah.service") == 0);
return 0;
}
+static void test_unit_instance_is_valid(void) {
+ assert_se(unit_instance_is_valid("fooBar"));
+ assert_se(unit_instance_is_valid("foo-bar"));
+ assert_se(unit_instance_is_valid("foo.stUff"));
+ assert_se(unit_instance_is_valid("fOo123.stuff"));
+ assert_se(unit_instance_is_valid("@f_oo123.Stuff"));
+
+ assert_se(!unit_instance_is_valid("$¢£"));
+ assert_se(!unit_instance_is_valid(""));
+ assert_se(!unit_instance_is_valid("foo bar"));
+ assert_se(!unit_instance_is_valid("foo/bar"));
+}
+
+static void test_unit_prefix_is_valid(void) {
+ assert_se(unit_prefix_is_valid("fooBar"));
+ assert_se(unit_prefix_is_valid("foo-bar"));
+ assert_se(unit_prefix_is_valid("foo.stUff"));
+ assert_se(unit_prefix_is_valid("fOo123.stuff"));
+ assert_se(unit_prefix_is_valid("foo123.Stuff"));
+
+ assert_se(!unit_prefix_is_valid("$¢£"));
+ assert_se(!unit_prefix_is_valid(""));
+ assert_se(!unit_prefix_is_valid("foo bar"));
+ assert_se(!unit_prefix_is_valid("foo/bar"));
+ assert_se(!unit_prefix_is_valid("@foo-bar"));
+}
+
+static void test_unit_name_change_suffix(void) {
+ char *r;
+
+ r = unit_name_change_suffix("foo.bar", ".service");
+ assert_se(r);
+ assert_se(streq(r, "foo.service"));
+ free(r);
+
+ r = unit_name_change_suffix("foo@stuff.bar", ".boo");
+ assert_se(r);
+ assert_se(streq(r, "foo@stuff.boo"));
+ free(r);
+}
+
+static void test_unit_name_build(void) {
+ char *r;
+
+ r = unit_name_build("foo", "bar", ".service");
+ assert_se(r);
+ assert_se(streq(r, "foo@bar.service"));
+ free(r);
+
+ r = unit_name_build("fo0-stUff_b", "bar", ".mount");
+ assert_se(r);
+ assert_se(streq(r, "fo0-stUff_b@bar.mount"));
+ free(r);
+
+ r = unit_name_build("foo", NULL, ".service");
+ assert_se(r);
+ assert_se(streq(r, "foo.service"));
+ free(r);
+}
+
+static void test_unit_name_is_instance(void) {
+ assert_se(unit_name_is_instance("a@b.service"));
+ assert_se(unit_name_is_instance("a-c_c01Aj@b05Dii_-oioi.service"));
+
+ assert_se(!unit_name_is_instance("a.service"));
+ assert_se(!unit_name_is_instance("junk"));
+ assert_se(!unit_name_is_instance(""));
+}
+
+static void test_build_subslice(void) {
+ char *a;
+ char *b;
+
+ assert_se(build_subslice("-.slice", "foo", &a) >= 0);
+ assert_se(build_subslice(a, "bar", &b) >= 0);
+ free(a);
+ assert_se(build_subslice(b, "barfoo", &a) >= 0);
+ free(b);
+ assert_se(build_subslice(a, "foobar", &b) >= 0);
+ free(a);
+ assert_se(streq(b, "foo-bar-barfoo-foobar.slice"));
+ free(b);
+
+ assert_se(build_subslice("foo.service", "bar", &a) < 0);
+ assert_se(build_subslice("foo", "bar", &a) < 0);
+}
+
+static void test_unit_name_to_instance(void) {
+ char *instance;
+ int r;
+
+ r = unit_name_to_instance("foo@bar.service", &instance);
+ assert_se(r >= 0);
+ assert_se(streq(instance, "bar"));
+ free(instance);
+
+ r = unit_name_to_instance("fo0-stUff_b@b.e", &instance);
+ assert_se(r >= 0);
+ assert_se(streq(instance, "b"));
+ free(instance);
+
+ r = unit_name_to_instance("foo.bar", &instance);
+ assert_se(r >= 0);
+ assert_se(!instance);
+
+ r = unit_name_to_instance("fooj@unk", &instance);
+ assert_se(r < 0);
+}
+
+static void test_unit_name_escape(void) {
+ _cleanup_free_ char *r;
+
+ r = unit_name_escape("ab+-c.a/bc@foo.service");
+ assert_se(r);
+ assert_se(streq(r, "ab\\x2b\\x2dc.a-bc\\x40foo.service"));
+}
+
int main(int argc, char* argv[]) {
int rc = 0;
test_replacements();
TEST_REQ_RUNNING_SYSTEMD(rc = test_unit_printf());
+ test_unit_instance_is_valid();
+ test_unit_prefix_is_valid();
+ test_unit_name_change_suffix();
+ test_unit_name_build();
+ test_unit_name_is_instance();
+ test_build_subslice();
+ test_unit_name_to_instance();
+ test_unit_name_escape();
+
return rc;
}
#include <fcntl.h>
#include <locale.h>
#include <errno.h>
+#include <signal.h>
#include "util.h"
+#include "mkdir.h"
#include "strv.h"
#include "def.h"
#include "fileio.h"
static void test_cescape(void) {
_cleanup_free_ char *escaped;
- escaped = cescape("abc\\\"\b\f\n\r\t\v\003\177\234\313");
- assert_se(streq(escaped, "abc\\\\\\\"\\b\\f\\n\\r\\t\\v\\003\\177\\234\\313"));
+
+ assert_se(escaped = cescape("abc\\\"\b\f\n\r\t\v\a\003\177\234\313"));
+ assert_se(streq(escaped, "abc\\\\\\\"\\b\\f\\n\\r\\t\\v\\a\\003\\177\\234\\313"));
}
static void test_cunescape(void) {
_cleanup_free_ char *unescaped;
- unescaped = cunescape("abc\\\\\\\"\\b\\f\\n\\r\\t\\v\\003\\177\\234\\313");
- assert_se(streq(unescaped, "abc\\\"\b\f\n\r\t\v\003\177\234\313"));
+
+ assert_se(unescaped = cunescape("abc\\\\\\\"\\b\\f\\a\\n\\r\\t\\v\\003\\177\\234\\313\\000\\x00"));
+ assert_se(streq(unescaped, "abc\\\"\b\f\a\n\r\t\v\003\177\234\313\\000\\x00"));
}
static void test_foreach_word(void) {
assert(r == 0);
printf("contents: %s", contents);
assert(streq(contents, "abc\n" ALPHANUMERICAL "\n"));
+
+ unlink(name);
}
static void test_hexdump(void) {
assert_se(streq(x, "zzz"));
}
+static void test_filename_is_safe(void) {
+ char foo[FILENAME_MAX+2];
+ int i;
+
+ assert_se(!filename_is_safe(""));
+ assert_se(!filename_is_safe("/bar/foo"));
+ assert_se(!filename_is_safe("/"));
+ assert_se(!filename_is_safe("."));
+ assert_se(!filename_is_safe(".."));
+
+ for (i=0; i<FILENAME_MAX+1; i++)
+ foo[i] = 'a';
+ foo[FILENAME_MAX+1] = '\0';
+
+ assert_se(!filename_is_safe(foo));
+
+ assert_se(filename_is_safe("foo_bar-333"));
+ assert_se(filename_is_safe("o.o"));
+}
+
+static void test_ascii_strlower(void) {
+ char a[] = "AabBcC Jk Ii Od LKJJJ kkd LK";
+ assert_se(streq(ascii_strlower(a), "aabbcc jk ii od lkjjj kkd lk"));
+}
+
+static void test_files_same(void) {
+ _cleanup_close_ int fd = -1;
+ char name[] = "/tmp/test-files_same.XXXXXX";
+ char name_alias[] = "/tmp/test-files_same.alias";
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+ assert_se(symlink(name, name_alias) >= 0);
+
+ assert_se(files_same(name, name));
+ assert_se(files_same(name, name_alias));
+
+ unlink(name);
+ unlink(name_alias);
+}
+
+static void test_is_valid_documentation_url(void) {
+ assert_se(is_valid_documentation_url("http://www.freedesktop.org/wiki/Software/systemd"));
+ assert_se(is_valid_documentation_url("https://www.kernel.org/doc/Documentation/binfmt_misc.txt"));
+ assert_se(is_valid_documentation_url("file:foo"));
+ assert_se(is_valid_documentation_url("man:systemd.special(7)"));
+ assert_se(is_valid_documentation_url("info:bar"));
+
+ assert_se(!is_valid_documentation_url("foo:"));
+ assert_se(!is_valid_documentation_url("info:"));
+ assert_se(!is_valid_documentation_url(""));
+}
+
+static void test_file_in_same_dir(void) {
+ assert_se(streq(file_in_same_dir("/", "a"), "/a"));
+ assert_se(streq(file_in_same_dir("/", "/a"), "/a"));
+ assert_se(streq(file_in_same_dir("", "a"), "a"));
+ assert_se(streq(file_in_same_dir("a/", "a"), "a/a"));
+ assert_se(streq(file_in_same_dir("bar/foo", "bar"), "bar/bar"));
+}
+
+static void test_endswith(void) {
+ assert_se(endswith("foobar", "bar"));
+ assert_se(endswith("foobar", ""));
+ assert_se(endswith("foobar", "foobar"));
+ assert_se(endswith("", ""));
+
+ assert_se(!endswith("foobar", "foo"));
+ assert_se(!endswith("foobar", "foobarfoofoo"));
+}
+
+static void test_close_nointr(void) {
+ char name[] = "/tmp/test-test-close_nointr.XXXXXX";
+ int fd;
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+ assert_se(close_nointr(fd) >= 0);
+ assert_se(close_nointr(fd) < 0);
+
+ unlink(name);
+}
+
+
+static void test_unlink_noerrno(void) {
+ char name[] = "/tmp/test-close_nointr.XXXXXX";
+ int fd;
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+ assert_se(close_nointr(fd) >= 0);
+
+ {
+ PROTECT_ERRNO;
+ errno = -42;
+ assert_se(unlink_noerrno(name) >= 0);
+ assert_se(errno == -42);
+ assert_se(unlink_noerrno(name) < 0);
+ assert_se(errno == -42);
+ }
+}
+
+static void test_readlink_and_make_absolute(void) {
+ char tempdir[] = "/tmp/test-readlink_and_make_absolute";
+ char name[] = "/tmp/test-readlink_and_make_absolute/original";
+ char name2[] = "test-readlink_and_make_absolute/original";
+ char name_alias[] = "/tmp/test-readlink_and_make_absolute-alias";
+ char *r = NULL;
+
+ assert(mkdir_safe(tempdir, 0755, getuid(), getgid()) >= 0);
+ assert_se(touch(name) >= 0);
+
+ assert_se(symlink(name, name_alias) >= 0);
+ assert_se(readlink_and_make_absolute(name_alias, &r) >= 0);
+ assert_se(streq(r, name));
+ free(r);
+ assert_se(unlink(name_alias) >= 0);
+
+ assert_se(chdir(tempdir) >= 0);
+ assert_se(symlink(name2, name_alias) >= 0);
+ assert_se(readlink_and_make_absolute(name_alias, &r) >= 0);
+ assert_se(streq(r, name));
+ free(r);
+ assert_se(unlink(name_alias) >= 0);
+
+ assert_se(rm_rf_dangerous(tempdir, false, true, false) >= 0);
+}
+
+static void test_read_one_char(void) {
+ char r;
+ bool need_nl;
+ char name[] = "/tmp/test-read_one_char.XXXXXX";
+ _cleanup_close_ int fd = -1;
+ FILE *file;
+
+ fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC);
+ assert_se(fd >= 0);
+ file = fdopen(fd, "r+");
+ assert_se(file);
+ assert_se(fputs("c\n", file) >= 0);
+ rewind(file);
+
+ assert_se(read_one_char(file, &r, 1000000, &need_nl) >= 0);
+ assert_se(!need_nl);
+ assert_se(r == 'c');
+ assert_se(read_one_char(file, &r, 1000000, &need_nl) < 0);
+
+ rewind(file);
+ assert_se(fputs("foobar\n", file) >= 0);
+ rewind(file);
+ assert_se(read_one_char(file, &r, 1000000, &need_nl) < 0);
+
+ rewind(file);
+ assert_se(fputs("\n", file) >= 0);
+ rewind(file);
+ assert_se(read_one_char(file, &r, 1000000, &need_nl) < 0);
+
+ unlink(name);
+}
+
+static void test_ignore_signals(void) {
+ assert_se(ignore_signals(SIGINT, -1) >= 0);
+ assert_se(kill(getpid(), SIGINT) >= 0);
+ assert_se(ignore_signals(SIGUSR1, SIGUSR2, SIGTERM, SIGPIPE, -1) >= 0);
+ assert_se(kill(getpid(), SIGUSR1) >= 0);
+ assert_se(kill(getpid(), SIGUSR2) >= 0);
+ assert_se(kill(getpid(), SIGTERM) >= 0);
+ assert_se(kill(getpid(), SIGPIPE) >= 0);
+ assert_se(default_signals(SIGINT, SIGUSR1, SIGUSR2, SIGTERM, SIGPIPE, -1) >= 0);
+}
+
+static void test_strshorten(void) {
+ char s[] = "foobar";
+
+ assert_se(strlen(strshorten(s, 6)) == 6);
+ assert_se(strlen(strshorten(s, 12)) == 6);
+ assert_se(strlen(strshorten(s, 2)) == 2);
+ assert_se(strlen(strshorten(s, 0)) == 0);
+}
+
int main(int argc, char *argv[]) {
log_parse_environment();
log_open();
test_hexdump();
test_log2i();
test_foreach_string();
+ test_filename_is_safe();
+ test_ascii_strlower();
+ test_files_same();
+ test_is_valid_documentation_url();
+ test_file_in_same_dir();
+ test_endswith();
+ test_close_nointr();
+ test_unlink_noerrno();
+ test_readlink_and_make_absolute();
+ test_read_one_char();
+ test_ignore_signals();
+ test_strshorten();
return 0;
}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <vendor>The systemd Project</vendor>
+ <vendor_url>http://www.freedesktop.org/wiki/Software/systemd</vendor_url>
+
+ <action id="org.freedesktop.timedate1.set-time">
+ <description>Set system time</description>
+ <description xml:lang="de">Die Systemzeit festlegen</description>
+ <description xml:lang="el">Ορισμός ώρας συστήματος</description>
+ <description xml:lang="fr">Définir l'heure du système</description>
+ <description xml:lang="it">Configura l'orario di sistema</description>
+ <description xml:lang="pl">Ustawienie czasu systemu</description>
+ <description xml:lang="ru">Настроить системное время</description>
+ <message>Authentication is required to set the system time.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen der Systemzeit notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε την ώρα του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour définir l'heure du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare l'orario di sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić czas systemu.</message>
+ <message xml:lang="ru">Чтобы настроить системное время, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.timedate1.set-timezone org.freedesktop.timedate1.set-ntp</annotate>
+ </action>
+
+ <action id="org.freedesktop.timedate1.set-timezone">
+ <description>Set system timezone</description>
+ <description xml:lang="de">Die Systemzeitzone festlegen</description>
+ <description xml:lang="el">Ορισμός ζώνης ώρας συστήματος</description>
+ <description xml:lang="fr">Définir le fuseau horaire du système</description>
+ <description xml:lang="it">Configura il fuso orario di sistema</description>
+ <description xml:lang="pl">Ustawienie strefy czasowej systemu</description>
+ <description xml:lang="ru">Настроить часовой пояс</description>
+ <message>Authentication is required to set the system timezone.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen der Systemzeitzone notwendig.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ορίσετε την ώρα ζώνης του συστήματος.</message>
+ <message xml:lang="fr">Authentification requise pour définir le fuseau horaire du système.</message>
+ <message xml:lang="it">Autenticazione richiesta per configurare il fuso orario di sistema.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby ustawić strefę czasową systemu.</message>
+ <message xml:lang="ru">Чтобы настроить часовой пояс, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.timedate1.set-local-rtc">
+ <description>Set RTC to local timezone or UTC</description>
+ <description xml:lang="de">Echtzeituhr auf lokale Zeitzone oder UTC setzen</description>
+ <description xml:lang="el">Ορισμός RTC στην τοπική ζώνη ώρας ή UTC</description>
+ <description xml:lang="fr">Positionner l'horloge matérielle à l'heure locale ou sur le temps universel coordonné (UTC)</description>
+ <description xml:lang="it">Configura l'orologio di sistema (RTC) al fuso orario locale o al tempo civile (UTC)</description>
+ <description xml:lang="pl">Ustawienie RTC na lokalną strefę czasową lub strefę UTC</description>
+ <description xml:lang="ru">Установить аппаратные часы по местному времени или по Гринвичу</description>
+ <message>Authentication is required to control whether the RTC stores the local or UTC time.</message>
+ <message xml:lang="de">Legitimierung ist notwendig zum Festlegen, ob die Echtzeituhr auf lokale Zeitzone oder UTC eingestellt ist.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ελέγξετε αν το RTC αποθηκεύει την τοπική ή την ώρα UTC.</message>
+ <message xml:lang="fr">Authentification requise pour positionner l'horloge matérielle à l'heure locale ou sur le temps universel coordonné (UTC).</message>
+ <message xml:lang="it">Autenticazione richiesta per verificare se l'orologio di sistema (RTC) è configurato all'orario locale o al tempo civile (UTC).</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby kontrolować, czy RTC przechowuje czas lokalny lub czas UTC.</message>
+ <message xml:lang="ru">Чтобы контролировать, установлены аппаратные часы по местному времени или по Гринвичу, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+ <action id="org.freedesktop.timedate1.set-ntp">
+ <description>Turn network time synchronization on or off</description>
+ <description xml:lang="de">Netzwerkzeitabgeich ein- oder ausschalten</description>
+ <description xml:lang="el">Ενεργοποίηση/Απενεργοποίηση συγχρονισμού ώρας δικτύου</description>
+ <description xml:lang="fr">Activer ou désactiver la synchronisation de l'heure avec le réseau</description>
+ <description xml:lang="it">Abilita o meno la sincronizzazione dell'orario in rete</description>
+ <description xml:lang="pl">Włączenie lub wyłączenie synchronizacji czasu przez sieć</description>
+ <description xml:lang="ru">Включить или выключить синхронизацию времени по сети</description>
+ <message>Authentication is required to control whether network time synchronization shall be enabled.</message>
+ <message xml:lang="de">Legitimierung ist zum Festlegen, ob Netzwerkzeitabgeich eingeschaltet sein soll, erforderlich.</message>
+ <message xml:lang="el">Απαιτείται πιστοποίηση για να ελέγξετε αν ο συγχρονισμός ώρας δικτύου θα ενεργοποιηθεί.</message>
+ <message xml:lang="fr">Authentification requise pour activer ou désactiver la synchronisation de l'heure avec le réseau.</message>
+ <message xml:lang="it">Autenticazione richiesta per verificare se la sincronizzazione dell'orario in rete debba essere attivata.</message>
+ <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby kontrolować, czy włączyć synchronizację czasu przez sieć.</message>
+ <message xml:lang="ru">Чтобы включить или выключить синхронизацию времени по сети, необходимо пройти аутентификацию.</message>
+ <defaults>
+ <allow_any>auth_admin_keep</allow_any>
+ <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+</policyconfig>
\ No newline at end of file
bool keep_first_level:1;
+ bool force:1;
+
bool done:1;
} Item;
}
static int write_one_file(Item *i, const char *path) {
- int flags;
- int fd = -1;
+ _cleanup_close_ int fd = -1;
+ int flags, r = 0;
struct stat st;
- int r = 0;
assert(i);
assert(path);
- flags = i->type == CREATE_FILE ? O_CREAT|O_APPEND :
- i->type == TRUNCATE_FILE ? O_CREAT|O_TRUNC : 0;
+ flags = i->type == CREATE_FILE ? O_CREAT|O_APPEND|O_NOFOLLOW :
+ i->type == TRUNCATE_FILE ? O_CREAT|O_TRUNC|O_NOFOLLOW : 0;
- RUN_WITH_UMASK(0) {
+ RUN_WITH_UMASK(0000) {
label_context_set(path, S_IFREG);
- fd = open(path, flags|O_NDELAY|O_CLOEXEC|O_WRONLY|O_NOCTTY|O_NOFOLLOW, i->mode);
+ fd = open(path, flags|O_NDELAY|O_CLOEXEC|O_WRONLY|O_NOCTTY, i->mode);
label_context_clear();
}
size_t l;
unescaped = cunescape(i->argument);
- if (unescaped == NULL) {
- safe_close(fd);
+ if (!unescaped)
return log_oom();
- }
l = strlen(unescaped);
n = write(fd, unescaped, l);
if (n < 0 || (size_t) n < l) {
log_error("Failed to write file %s: %s", path, n < 0 ? strerror(-n) : "Short write");
- safe_close(fd);
return n < 0 ? n : -EIO;
}
}
- safe_close(fd);
+ fd = safe_close(fd);
if (stat(path, &st) < 0) {
log_error("stat(%s) failed: %m", path);
break;
case COPY_FILES:
- r = copy_tree(i->argument, i->path);
+ r = copy_tree(i->argument, i->path, false);
if (r < 0) {
- log_error("Failed to copy files: %s", strerror(-r));
- return r;
+ struct stat a, b;
+
+ if (r != -EEXIST) {
+ log_error("Failed to copy files to %s: %s", i->path, strerror(-r));
+ return -r;
+ }
+
+ if (stat(i->argument, &a) < 0) {
+ log_error("stat(%s) failed: %m", i->argument);
+ return -errno;
+ }
+
+ if (stat(i->path, &b) < 0) {
+ log_error("stat(%s) failed: %m", i->path);
+ return -errno;
+ }
+
+ if ((a.st_mode ^ b.st_mode) & S_IFMT) {
+ log_debug("Can't copy to %s, file exists already and is of different type", i->path);
+ return 0;
+ }
}
r = item_set_perms(i, i->path);
RUN_WITH_UMASK(0000) {
mkdir_parents_label(i->path, 0755);
- r = mkdir(i->path, i->mode);
+ r = mkdir_label(i->path, i->mode);
}
- if (r < 0 && errno != EEXIST) {
- log_error("Failed to create directory %s: %m", i->path);
- return -errno;
- }
+ if (r < 0) {
+ if (r != -EEXIST) {
+ log_error("Failed to create directory %s: %s", i->path, strerror(-r));
+ return r;
+ }
- if (stat(i->path, &st) < 0) {
- log_error("stat(%s) failed: %m", i->path);
- return -errno;
- }
+ if (stat(i->path, &st) < 0) {
+ log_error("stat(%s) failed: %m", i->path);
+ return -errno;
+ }
- if (!S_ISDIR(st.st_mode)) {
- log_error("%s is not a directory.", i->path);
- return -EEXIST;
+ if (!S_ISDIR(st.st_mode)) {
+ log_debug("%s already exists and is not a directory.", i->path);
+ return 0;
+ }
}
r = item_set_perms(i, i->path);
case CREATE_FIFO:
RUN_WITH_UMASK(0000) {
+ label_context_set(i->path, S_IFIFO);
r = mkfifo(i->path, i->mode);
+ label_context_clear();
}
- if (r < 0 && errno != EEXIST) {
- log_error("Failed to create fifo %s: %m", i->path);
- return -errno;
- }
+ if (r < 0) {
+ if (errno != EEXIST) {
+ log_error("Failed to create fifo %s: %m", i->path);
+ return -errno;
+ }
- if (stat(i->path, &st) < 0) {
- log_error("stat(%s) failed: %m", i->path);
- return -errno;
- }
+ if (stat(i->path, &st) < 0) {
+ log_error("stat(%s) failed: %m", i->path);
+ return -errno;
+ }
+
+ if (!S_ISFIFO(st.st_mode)) {
+
+ if (i->force) {
+
+ RUN_WITH_UMASK(0000) {
+ label_context_set(i->path, S_IFIFO);
+ r = mkfifo_atomic(i->path, i->mode);
+ label_context_clear();
+ }
- if (!S_ISFIFO(st.st_mode)) {
- log_error("%s is not a fifo.", i->path);
- return -EEXIST;
+ if (r < 0) {
+ log_error("Failed to create fifo %s: %s", i->path, strerror(-r));
+ return r;
+ }
+ } else {
+ log_debug("%s is not a fifo.", i->path);
+ return 0;
+ }
+ }
}
r = item_set_perms(i, i->path);
break;
- case CREATE_SYMLINK: {
- _cleanup_free_ char *x = NULL;
+ case CREATE_SYMLINK:
label_context_set(i->path, S_IFLNK);
r = symlink(i->argument, i->path);
label_context_clear();
- if (r < 0 && errno != EEXIST) {
- log_error("symlink(%s, %s) failed: %m", i->argument, i->path);
- return -errno;
- }
-
- r = readlink_malloc(i->path, &x);
if (r < 0) {
- log_error("readlink(%s) failed: %s", i->path, strerror(-r));
- return -errno;
- }
+ _cleanup_free_ char *x = NULL;
+
+ if (errno != EEXIST) {
+ log_error("symlink(%s, %s) failed: %m", i->argument, i->path);
+ return -errno;
+ }
+
+ r = readlink_malloc(i->path, &x);
+ if (r < 0 || !streq(i->argument, x)) {
+
+ if (i->force) {
+ label_context_set(i->path, S_IFLNK);
+ r = symlink_atomic(i->argument, i->path);
+ label_context_clear();
- if (!streq(i->argument, x)) {
- log_error("%s is not the right symlink.", i->path);
- return -EEXIST;
+ if (r < 0) {
+ log_error("symlink(%s, %s) failed: %s", i->argument, i->path, strerror(-r));
+ return r;
+ }
+ } else {
+ log_debug("%s is not a symlink or does not point to the correct path.", i->path);
+ return 0;
+ }
+ }
}
break;
- }
case CREATE_BLOCK_DEVICE:
case CREATE_CHAR_DEVICE: {
return 0;
}
- file_type = (i->type == CREATE_BLOCK_DEVICE ? S_IFBLK : S_IFCHR);
+ file_type = i->type == CREATE_BLOCK_DEVICE ? S_IFBLK : S_IFCHR;
RUN_WITH_UMASK(0000) {
label_context_set(i->path, file_type);
label_context_clear();
}
- if (r < 0 && errno != EEXIST) {
- log_error("Failed to create device node %s: %m", i->path);
- return -errno;
- }
+ if (r < 0) {
+ if (errno == EPERM) {
+ log_debug("We lack permissions, possibly because of cgroup configuration; "
+ "skipping creation of device node %s.", i->path);
+ return 0;
+ }
- if (stat(i->path, &st) < 0) {
- log_error("stat(%s) failed: %m", i->path);
- return -errno;
- }
+ if (errno != EEXIST) {
+ log_error("Failed to create device node %s: %m", i->path);
+ return -errno;
+ }
+
+ if (stat(i->path, &st) < 0) {
+ log_error("stat(%s) failed: %m", i->path);
+ return -errno;
+ }
- if ((st.st_mode & S_IFMT) != file_type) {
- log_error("%s is not a device node.", i->path);
- return -EEXIST;
+ if ((st.st_mode & S_IFMT) != file_type) {
+
+ if (i->force) {
+
+ RUN_WITH_UMASK(0000) {
+ label_context_set(i->path, file_type);
+ r = mknod_atomic(i->path, i->mode | file_type, i->major_minor);
+ label_context_clear();
+ }
+
+ if (r < 0) {
+ log_error("Failed to create device node %s: %s", i->path, strerror(-r));
+ return r;
+ }
+ } else {
+ log_debug("%s is not a device node.", i->path);
+ return 0;
+ }
+ }
}
r = item_set_perms(i, i->path);
}
static void item_free(Item *i) {
- assert(i);
+
+ if (!i)
+ return;
free(i->path);
free(i->argument);
return -EIO;
}
- if (strlen(action) > 2 || (strlen(action) > 1 && action[1] != '!')) {
- log_error("[%s:%u] Unknown modifier '%s'", fname, line, action);
+ if (isempty(action)) {
+ log_error("[%s:%u] Command too short '%s'.", fname, line, action);
return -EINVAL;
- } else if (strlen(action) > 1 && !arg_boot)
+ }
+
+ if (strlen(action) > 1 && !in_charset(action+1, "!+")) {
+ log_error("[%s:%u] Unknown modifiers in command '%s'", fname, line, action);
+ return -EINVAL;
+ }
+
+ if (strchr(action+1, '!') && !arg_boot)
return 0;
type = action[0];
if (!i)
return log_oom();
+ i->force = !!strchr(action+1, '+');
+
r = specifier_printf(path, specifier_table, NULL, &i->path);
if (r < 0) {
log_error("[%s:%u] Failed to replace specifiers: %s", fname, line, path);
}
}
- switch(type) {
+ switch (type) {
case CREATE_FILE:
case TRUNCATE_FILE:
case CREATE_SYMLINK:
if (!i->argument) {
- log_error("[%s:%u] Symlink file requires argument.", fname, line);
- return -EBADMSG;
+ i->argument = strappend("/usr/share/factory", i->path);
+ if (!i->argument)
+ return log_oom();
}
-
break;
case WRITE_FILE:
case COPY_FILES:
if (!i->argument) {
- log_error("[%s:%u] Copy files requires argument.", fname, line);
- return -EBADMSG;
+ i->argument = strappend("/usr/share/factory", i->path);
+ if (!i->argument)
+ return log_oom();
}
if (!path_is_absolute(i->argument)) {
}
default:
- log_error("[%s:%u] Unknown file type '%c'.", fname, line, type);
+ log_error("[%s:%u] Unknown command type '%c'.", fname, line, type);
return -EBADMSG;
}
break;
case ARG_ROOT:
+ free(arg_root);
arg_root = path_make_absolute_cwd(optarg);
if (!arg_root)
return log_oom();
+
path_kill_slashes(arg_root);
break;
r = parse_argv(argc, argv);
if (r <= 0)
- return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+ goto finish;
log_set_target(LOG_TARGET_AUTO);
log_parse_environment();
if (ctx->ethtool_fd == -1) {
r = ethtool_connect(&ctx->ethtool_fd);
- if (r < 0)
+ if (r < 0) {
+ log_warning("link_config: could not connect to ethtool: %s",
+ strerror(-r));
return r;
+ }
}
if (!ctx->rtnl) {
r = sd_rtnl_open(&ctx->rtnl, 0);
- if (r < 0)
+ if (r < 0) {
+ log_warning("link_config: could not connect to rtnl: %s",
+ strerror(-r));
return r;
+ }
}
return 0;
}
static bool enable_name_policy(void) {
- _cleanup_free_ char *line;
+ _cleanup_free_ char *line = NULL;
char *w, *state;
int r;
size_t l;
* b<number> -- BCMA bus core number
* ccw<name> -- CCW bus group name
* o<index> -- on-board device index number
- * s<slot>[f<function>][d<dev_id>] -- hotplug slot index number
+ * s<slot>[f<function>][d<dev_port>] -- hotplug slot index number
* x<MAC> -- MAC address
- * [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]
+ * [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
* -- PCI geographical location
* [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
* -- USB port number chain
static int dev_pci_slot(struct udev_device *dev, struct netnames *names) {
struct udev *udev = udev_device_get_udev(names->pcidev);
- unsigned domain, bus, slot, func, dev_id = 0;
+ unsigned domain, bus, slot, func, dev_port = 0;
size_t l;
char *s;
const char *attr;
return -ENOENT;
/* kernel provided multi-device index */
- attr = udev_device_get_sysattr_value(dev, "dev_id");
+ attr = udev_device_get_sysattr_value(dev, "dev_port");
if (attr)
- dev_id = strtol(attr, NULL, 16);
+ dev_port = strtol(attr, NULL, 10);
/* compose a name based on the raw kernel's PCI bus, slot numbers */
s = names->pci_path;
l = strpcpyf(&s, l, "p%ds%d", bus, slot);
if (func > 0 || is_pci_multifunction(names->pcidev))
l = strpcpyf(&s, l, "f%d", func);
- if (dev_id > 0)
- l = strpcpyf(&s, l, "d%d", dev_id);
+ if (dev_port > 0)
+ l = strpcpyf(&s, l, "d%d", dev_port);
if (l == 0)
names->pci_path[0] = '\0';
l = strpcpyf(&s, l, "s%d", hotplug_slot);
if (func > 0 || is_pci_multifunction(names->pcidev))
l = strpcpyf(&s, l, "f%d", func);
- if (dev_id > 0)
- l = strpcpyf(&s, l, "d%d", dev_id);
+ if (dev_port > 0)
+ l = strpcpyf(&s, l, "d%d", dev_port);
if (l == 0)
names->pci_path[0] = '\0';
}
r = link_config_get(ctx, dev, &link);
if (r < 0) {
if (r == -ENOENT) {
- log_debug("No matching link configuration found");
+ log_debug("No matching link configuration found.");
return EXIT_SUCCESS;
} else {
- log_error("Could not get link config");
+ log_error("Could not get link config: %s", strerror(-r));
return EXIT_FAILURE;
}
}
r = link_config_apply(ctx, link, dev, &name);
if (r < 0) {
- log_error("Could not apply link config to %s", udev_device_get_sysname(dev));
+ log_error("Could not apply link config to %s: %s", udev_device_get_sysname(dev), strerror(-r));
return EXIT_FAILURE;
}
if (r < 0)
return r;
- log_debug("Created link configuration context");
+ log_debug("Created link configuration context.");
return 0;
}
static void builtin_net_setup_link_exit(struct udev *udev) {
link_config_ctx_free(ctx);
ctx = NULL;
- log_debug("Unloaded link configuration context");
+ log_debug("Unloaded link configuration context.");
}
static bool builtin_net_setup_link_validate(struct udev *udev) {
- log_debug("Check if link configuration needs reloading");
+ log_debug("Check if link configuration needs reloading.");
if (!ctx)
return false;
#include <getopt.h>
#include <signal.h>
#include <time.h>
-#include <sys/inotify.h>
#include <sys/poll.h>
#include <sys/stat.h>
#include <sys/types.h>
const char *exists = NULL;
unsigned int timeout = 120;
struct pollfd pfd[1] = { {.fd = -1}, };
- int rc = EXIT_FAILURE, c;
+ int c;
+ struct udev_queue *queue;
+ int rc = EXIT_FAILURE;
while ((c = getopt_long(argc, argv, "s:e:t:E:qh", options, NULL)) >= 0) {
switch (c) {
break;
case 'h':
help();
- exit(EXIT_SUCCESS);
+ return EXIT_SUCCESS;
case '?':
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
default:
assert_not_reached("Unknown argument");
}
if (optind < argc) {
fprintf(stderr, "Extraneous argument: '%s'\n", argv[optind]);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
/* guarantee that the udev daemon isn't pre-processing */
if (udev_ctrl_send_ping(uctrl, timeout) < 0) {
log_debug("no connection to daemon");
udev_ctrl_unref(uctrl);
- rc = EXIT_SUCCESS;
- goto out;
+ return EXIT_SUCCESS;
}
udev_ctrl_unref(uctrl);
}
}
- pfd[0].events = POLLIN;
- pfd[0].fd = inotify_init1(IN_CLOEXEC);
- if (pfd[0].fd < 0) {
- log_error("inotify_init failed: %m");
- goto out;
+ queue = udev_queue_new(udev);
+ if (!queue) {
+ log_error("unable to get udev queue");
+ return EXIT_FAILURE;
}
- if (inotify_add_watch(pfd[0].fd, "/run/udev/queue" , IN_DELETE) < 0) {
- /* If it does not exist, we don't have to wait */
- if (errno == ENOENT)
- rc = EXIT_SUCCESS;
- else
- log_debug("watching /run/udev/queue failed");
+ pfd[0].events = POLLIN;
+ pfd[0].fd = udev_queue_get_fd(queue);
+ if (pfd[0].fd < 0) {
+ log_debug("queue is empty, nothing to watch");
+ rc = EXIT_SUCCESS;
goto out;
}
}
/* exit if queue is empty */
- if (access("/run/udev/queue", F_OK) < 0) {
+ if (udev_queue_get_queue_is_empty(queue)) {
rc = EXIT_SUCCESS;
break;
}
- /* wake up when "queue" file is deleted */
- if (poll(pfd, 1, 100) > 0 && pfd[0].revents & POLLIN) {
- char buf[sizeof(struct inotify_event) + PATH_MAX];
-
- read(pfd[0].fd, buf, sizeof(buf));
- }
+ /* wake up when queue is empty */
+ if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN)
+ udev_queue_flush(queue);
}
out:
- if (pfd[0].fd >= 0)
- close(pfd[0].fd);
+ udev_queue_unref(queue);
return rc;
}
--- /dev/null
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2014 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1 of the License, or
+ (at your option) any later version.
+
+ systemd is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "util.h"
+
+static int apply_timestamp(const char *path, struct timespec *ts) {
+ struct timespec twice[2];
+ struct stat st;
+
+ assert(path);
+ assert(ts);
+
+ if (stat(path, &st) >= 0) {
+ /* Is the timestamp file already newer than the OS? If so, there's nothing to do. */
+ if (st.st_mtim.tv_sec > ts->tv_sec ||
+ (st.st_mtim.tv_sec == ts->tv_sec && st.st_mtim.tv_nsec >= ts->tv_nsec))
+ return 0;
+
+ /* It is older? Then let's update it */
+ twice[0] = *ts;
+ twice[1] = *ts;
+
+ if (utimensat(AT_FDCWD, path, twice, AT_SYMLINK_NOFOLLOW) < 0) {
+
+ if (errno == EROFS) {
+ log_debug("Can't update timestamp file %s, file system is read-only.", path);
+ return 0;
+ }
+
+ log_error("Failed to update timestamp on %s: %m", path);
+ return -errno;
+ }
+
+ } else if (errno == ENOENT) {
+ _cleanup_close_ int fd = -1;
+
+ /* The timestamp file doesn't exist yet? Then let's create it. */
+
+ fd = open(path, O_CREAT|O_EXCL|O_WRONLY|O_TRUNC|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0644);
+ if (fd < 0) {
+
+ if (errno == EROFS) {
+ log_debug("Can't create timestamp file %s, file system is read-only.", path);
+ return 0;
+ }
+
+ log_error("Failed to create timestamp file %s: %m", path);
+ return -errno;
+ }
+
+ twice[0] = *ts;
+ twice[1] = *ts;
+
+ if (futimens(fd, twice) < 0) {
+ log_error("Failed to update timestamp on %s: %m", path);
+ return -errno;
+ }
+ } else {
+ log_error("Failed to stat() timestamp file %s: %m", path);
+ return -errno;
+ }
+
+ return 0;
+}
+
+int main(int argc, char *argv[]) {
+ struct stat st;
+ int r, q;
+
+ log_set_target(LOG_TARGET_AUTO);
+ log_parse_environment();
+ log_open();
+
+ if (stat("/usr", &st) < 0) {
+ log_error("Failed to stat /usr: %m");
+ return EXIT_FAILURE;
+ }
+
+ r = apply_timestamp("/etc/.updated", &st.st_mtim);
+
+ q = apply_timestamp("/var/.updated", &st.st_mtim);
+ if (q < 0 && r == 0)
+ r = q;
+
+ return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+}
*/
static void font_copy_to_all_vcs(int fd) {
struct vt_stat vcs = {};
+ unsigned char map8[E_TABSZ];
+ unsigned short map16[E_TABSZ];
+ struct unimapdesc unimapd;
+ struct unipair unipairs[USHRT_MAX];
int i, r;
/* get active, and 16 bit mask of used VT numbers */
cfo.op = KD_FONT_OP_COPY;
cfo.height = vcs.v_active-1; /* tty1 == index 0 */
ioctl(vcfd, KDFONTOP, &cfo);
+
+ /* copy map of 8bit chars */
+ if (ioctl(fd, GIO_SCRNMAP, map8) >= 0)
+ ioctl(vcfd, PIO_SCRNMAP, map8);
+
+ /* copy map of 8bit chars -> 16bit Unicode values */
+ if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0)
+ ioctl(vcfd, PIO_UNISCRNMAP, map16);
+
+ /* copy unicode translation table */
+ /* unimapd is a ushort count and a pointer to an
+ array of struct unipair { ushort, ushort } */
+ unimapd.entries = unipairs;
+ unimapd.entry_ct = USHRT_MAX;
+ if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) {
+ struct unimapinit adv = { 0, 0, 0 };
+
+ ioctl(vcfd, PIO_UNIMAPCLR, &adv);
+ ioctl(vcfd, PIO_UNIMAP, &unimapd);
+ }
}
}
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+# These ones should be enabled by default, even if distributions
+# generally follow a default-off policy.
+
+enable remote-fs.target
+enable getty@.service
+enable systemd-readahead-*
+enable systemd-timesyncd.service
+enable systemd-networkd.service
+enable systemd-resolved.service
+
+disable console-getty.service
+disable console-shell.service
+disable debug-shell.service
+
+disable halt.target
+disable kexec.target
+disable poweroff.target
+disable reboot.target
+disable rescue.target
+
+disable syslog.socket
+
+disable systemd-journal-gatewayd.*
+disable systemd-networkd-wait-online.service
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+# The superuser
+u root 0 "Super User"
+
+# The nobody user for NFS file systems
+u nobody 65534 "Nobody"
+
+# Administrator group: can *see* more than normal users
+g adm - -
+
+# Administrator group: can *do* more than normal users
+g wheel - -
+
+# Access to certain kernel and userspace facilities
+g kmem - -
+g lock - -
+g tty @TTY_GID@ -
+g utmp - -
+
+# Hardware access groups
+g audio - -
+g cdrom - -
+g dialout - -
+g disk - -
+g input - -
+g lp - -
+g tape - -
+g video - -
+
+# Default group for normal users
+g users - -
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+g systemd-journal - -
+u systemd-journal-gateway - "systemd Journal Gateway"
+u systemd-bus-proxy - "systemd Bus Proxy"
+u systemd-network - "systemd Network Management"
+u systemd-resolve - "systemd Resolver"
+u systemd-timesync - "systemd Time Synchronization"
udev_queue_get_udev,
udev_queue_get_udev_is_active,
udev_queue_get_udev_seqnum,
+udev_queue_get_fd,
+udev_queue_flush,
udev_queue_new,
udev_queue_ref,
udev_queue_unref,
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+# See tmpfiles.d(5) for details
+
+L /etc/os-release - - - - ../usr/lib/os-release
+L /etc/localtime - - - - ../usr/share/zoneinfo/UTC
+L+ /etc/mtab - - - - ../proc/self/mounts
+L /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf
# See tmpfiles.d(5) for details
-d /run/user 0755 root root ~10d
+d /run/user 0755 root root -
F! /run/utmp 0664 root utmp -
d /run/systemd/ask-password 0755 root root -
d /run/systemd/netif/links 0755 systemd-network systemd-network -
d /run/systemd/netif/leases 0755 systemd-network systemd-network -
+d /run/log 0755 root root -
+
z /run/log/journal 2755 root systemd-journal - -
Z /run/log/journal/%m ~2750 root systemd-journal - -
z /var/log/journal 2755 root systemd-journal - -
z /var/log/journal/%m 2755 root systemd-journal - -
+
+d /var/lib/systemd 0755 root root -
+d /var/lib/systemd/coredump 0755 root root 3d
f /var/log/btmp 0600 root utmp -
d /var/cache 0755 - - -
-d /var/cache/man - - - 30d
d /var/lib 0755 - - -
d /var/spool 0755 - - -
</refsect1>
<refsect1>
- <title>crypttab options</title>
+ <title><filename>/etc/crypttab</filename> and
+ <filename>/etc/fstab</filename> options</title>
<para>Options which influence mounted filesystems and
encrypted volumes.</para>
- <variablelist id='crypttab-options' />
+ <variablelist id='fstab-options' />
</refsect1>
<refsect1>
# Really, do not edit this file.
EXTRA_DIST += \\
- {files}
+ {files}
'''
def man(page, number):
Requires=sysinit.target
Wants=sockets.target timers.target paths.target slices.target
After=sysinit.target sockets.target timers.target paths.target slices.target
-RefuseManualStart=yes
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Encrypted Volumes (Pre)
+Documentation=man:systemd.special(7)
+RefuseManualStart=yes
Documentation=man:sushell(8)
DefaultDependencies=no
IgnoreOnIsolate=yes
+ConditionPathExists=@DEBUGTTY@
[Service]
Environment=TERM=linux
[Install]
WantedBy=getty.target
+DefaultInstance=tty1
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Rebuild Dynamic Linker Cache
+Documentation=man:ldconfig(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service
+Before=sysinit.target shutdown.target systemd-update-done.service
+ConditionNeedsUpdate=/etc
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/sbin/ldconfig -X
[Unit]
Description=Local File Systems
Documentation=man:systemd.special(7)
+DefaultDependencies=no
+Conflicts=shutdown.target
After=local-fs-pre.target
OnFailure=emergency.target
OnFailureJobMode=replace-irreversibly
Conflicts=emergency.service emergency.target
Wants=local-fs.target swap.target
After=local-fs.target swap.target emergency.service emergency.target
-RefuseManualStart=yes
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Rebuild Journal Catalog
+Documentation=man:systemd-journald.service(8) man:journald.conf(5)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target
+Before=sysinit.target shutdown.target systemd-update-done.service
+ConditionNeedsUpdate=/etc
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@rootbindir@/journalctl --update-catalog
[Service]
ExecStart=@rootlibexecdir@/systemd-machined
BusName=org.freedesktop.machine1
-CapabilityBoundingSet=CAP_KILL
+CapabilityBoundingSet=CAP_KILL CAP_SYS_PTRACE CAP_SYS_ADMIN CAP_SETGID CAP_SYS_CHROOT
WatchdogSec=1min
PrivateTmp=yes
PrivateDevices=yes
Conflicts=shutdown.target
Requisite=systemd-networkd.service
After=systemd-networkd.service
-Before=network.target network-online.target
+Before=network-online.target
[Service]
Type=oneshot
[Unit]
Description=Network Service
Documentation=man:systemd-networkd.service(8)
+ConditionCapability=CAP_NET_ADMIN
DefaultDependencies=no
-After=dbus.service network-pre.target
-Before=network.target
+After=dbus.service network-pre.target systemd-sysusers.service
+Before=network.target multi-user.target shutdown.target
+Conflicts=shutdown.target
Wants=network.target
-ConditionCapability=CAP_NET_ADMIN
[Service]
Type=notify
WatchdogSec=1min
[Install]
-Also=systemd-networkd-wait-online.service
WantedBy=multi-user.target
ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i
KillMode=mixed
Type=notify
+RestartForceExitStatus=133
+SuccessExitStatus=133
[Install]
WantedBy=multi-user.target
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-readahead-collect.service systemd-readahead-replay.service
+After=systemd-modules-load.service
Before=sysinit.target shutdown.target
ConditionPathIsReadWrite=/proc/sys/
-ConditionDirectoryNotEmpty=|/lib/sysctl.d
-ConditionDirectoryNotEmpty=|/usr/lib/sysctl.d
-ConditionDirectoryNotEmpty=|/usr/local/lib/sysctl.d
-ConditionDirectoryNotEmpty=|/etc/sysctl.d
-ConditionDirectoryNotEmpty=|/run/sysctl.d
[Service]
Type=oneshot
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Create System Users
+Documentation=man:sysusers.d(5) man:systemd-sysusers.service(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service
+Before=sysinit.target shutdown.target systemd-update-done.service
+ConditionNeedsUpdate=/etc
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@rootbindir@/systemd-sysusers
Description=Network Time Synchronization
Documentation=man:systemd-timesyncd.service(8)
ConditionCapability=CAP_SYS_TIME
-DefaultDependencies=off
+ConditionVirtualization=no
+DefaultDependencies=no
RequiresMountsFor=/var/lib/systemd/clock
-After=systemd-remount-fs.service systemd-tmpfiles-setup.service
-Before=sysinit.target shutdown.target
+After=systemd-remount-fs.service systemd-tmpfiles-setup.service systemd-sysusers.service
+Before=time-sync.target sysinit.target shutdown.target
Conflicts=shutdown.target
Wants=time-sync.target
-Before=time-sync.target
[Service]
Type=notify
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
-Wants=local-fs.target
-After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target
-Before=sysinit.target shutdown.target
-ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d
-ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d
-ConditionDirectoryNotEmpty=|/etc/tmpfiles.d
-ConditionDirectoryNotEmpty=|/run/tmpfiles.d
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target
+Before=shutdown.target
[Service]
Type=oneshot
Description=Create Static Device Nodes in /dev
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
-Before=sysinit.target local-fs-pre.target systemd-udevd.service
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-sysusers.service
+Before=sysinit.target local-fs-pre.target systemd-udevd.service shutdown.target
ConditionCapability=CAP_MKNOD
[Service]
Description=Create Volatile Files and Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
-Wants=local-fs.target
Conflicts=shutdown.target
-After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target systemd-sysusers.service
Before=sysinit.target shutdown.target
-ConditionDirectoryNotEmpty=|/usr/lib/tmpfiles.d
-ConditionDirectoryNotEmpty=|/lib/tmpfiles.d
-ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d
-ConditionDirectoryNotEmpty=|/etc/tmpfiles.d
-ConditionDirectoryNotEmpty=|/run/tmpfiles.d
-RefuseManualStart=yes
RefuseManualStop=yes
[Service]
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Rebuild Hardware Database
+Documentation=man:udev(7) man:systemd-udevd.service(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service systemd-remount-fs.service
+Before=sysinit.target shutdown.target systemd-update-done.service
+ConditionNeedsUpdate=/etc
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@rootbindir@/udevadm hwdb --update
Documentation=man:systemd-udevd.service(8) man:udev(7)
DefaultDependencies=no
Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket
-After=systemd-udevd-control.socket systemd-udevd-kernel.socket
+After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udev-hwdb-update.service systemd-sysusers.service
Before=sysinit.target
ConditionPathIsReadWrite=/sys
--- /dev/null
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Update is Completed
+Documentation=man:systemd-update-done.service(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target
+Before=sysinit.target shutdown.target
+ConditionNeedsUpdate=|/etc
+ConditionNeedsUpdate=|/var
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@rootlibexecdir@/systemd-update-done
Description=Temporary Directory
Documentation=man:hier(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
+ConditionPathIsSymbolicLink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
Documentation=man:systemd.special(7)
Wants=sockets.target timers.target paths.target
After=sockets.target timers.target paths.target
-RefuseManualStart=yes