Imported Upstream version 232

This commit is contained in:
Martin Pitt 2016-11-03 20:50:01 +02:00
parent 5a920b42ce
commit 8a584da277
581 changed files with 30237 additions and 9661 deletions

5
.gitignore vendored
View File

@ -1,5 +1,6 @@
*.a
*.cache
*.gch
*.la
*.lo
*.log
@ -36,6 +37,7 @@
/exported
/exported-*
/hostnamectl
/image.raw
/install-tree
/journalctl
/libtool
@ -89,6 +91,7 @@
/systemd-machine-id-setup
/systemd-machined
/systemd-modules-load
/systemd-mount
/systemd-networkd
/systemd-networkd-wait-online
/systemd-notify
@ -151,6 +154,7 @@
/test-bus-policy
/test-bus-server
/test-bus-signature
/test-bus-track
/test-bus-zero-copy
/test-calendarspec
/test-cap-list
@ -258,6 +262,7 @@
/test-ring
/test-rlimit-util
/test-sched-prio
/test-seccomp
/test-selinux
/test-set
/test-sizeof

View File

@ -74,3 +74,18 @@ Thomas H. P. Andersen <phomes@gmail.com>
Michael Olbrich <m.olbrich@pengutronix.de>
Douglas Christman <DouglasChristman@gmail.com>
Alexander Kuleshov <kuleshovmail@gmail.com> <0xAX@users.noreply.github.com>
Andreas Henriksson <andreas@fatal.se>
Daniel Rusek <mail@asciiwolf.com>
Dennis Wassenberg <dennis.wassenberg@secunet.com>
Reid Price <reid.price@gmail.com>
Stefan Schweter <stefan@schweter.it>
Seraphime Kirkovski <kirkseraph@gmail.com>
Bart Rulon <barron@lexmark.com>
Richard W.M. Jones <rjones@redhat.com>
Roman Stingler <coolx67@gmx.at>
Michael Hoy <rimmington@gmail.com>
Tiago Levit <liamgliam@gmail.com>
Eric Cook <llua@users.noreply.github.com>
Lukáš Nykrýn <lnykryn@redhat.com>
Heikki Kemppainen <heikki.kemppainen@nokia.com>
Hendrik Brueckner <hbrueckner@users.noreply.github.com>

67
.mkosi/mkosi.arch Normal file
View File

@ -0,0 +1,67 @@
# This file is part of systemd.
#
# Copyright 2016 Zeal Jagannatha
#
# 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/>.
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Simply invoke "mkosi" in the project directory to build an OS image.
[Distribution]
Distribution=arch
[Output]
Format=raw_btrfs
Bootable=yes
[Partitions]
RootSize=2G
[Packages]
Cache=/var/cache/pacman/pkg/
BuildPackages=
acl
autoconf
automake
bzip2
cryptsetup
curl
dbus
docbook-xsl
elfutils
gcc
git
gnu-efi-libs
gnutls
gperf
intltool
iptables
kmod
libcap
libgcrypt
libidn
libmicrohttpd
libseccomp
libtool
libutil-linux
libxkbcommon
libxslt
lz4
make
pam
pkgconfig
python
python-lxml
qrencode
xz

71
.mkosi/mkosi.fedora Normal file
View File

@ -0,0 +1,71 @@
# This file is part of systemd.
#
# Copyright 2016 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/>.
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Simply invoke "mkosi" in the project directory to build an OS image.
[Distribution]
Distribution=fedora
Release=25
[Output]
Format=raw_btrfs
Bootable=yes
[Partitions]
RootSize=2G
[Packages]
BuildPackages=
audit-libs-devel
autoconf
automake
bzip2-devel
cryptsetup-devel
dbus-devel
docbook-style-xsl
elfutils-devel
gcc
git
gnu-efi
gnu-efi-devel
gnutls-devel
gperf
intltool
iptables-devel
kmod-devel
libacl-devel
libblkid-devel
libcap-devel
libcurl-devel
libgcrypt-devel
libidn-devel
libmicrohttpd-devel
libmount-devel
libseccomp-devel
libselinux-devel
libtool
libxkbcommon-devel
libxslt
lz4-devel
make
pam-devel
pkgconfig
python3-devel
python3-lxml
qrencode-devel
xz-devel

View File

@ -15,6 +15,7 @@ HOWTO:
--with-kbd-setfont=
--with-tty-gid=
--with-ntp-servers=
--with-support-url=
2) Try it out. Play around (as an ordinary user) with
'/usr/lib/systemd/systemd --test --system' for a test run
@ -40,6 +41,16 @@ NTP POOL:
NTP servers, then you will get served wrong time, and will
rely on services that might not be supported for long.
PAM:
The default PAM config shipped by systemd is really bare bones.
It does not include many modules your distro might want to enable
to provide a more seamless experience. For example, limits set in
/etc/security/limits.conf will not be read unless you load pam_limits.
Make sure you add modules your distro expects from user services.
Pass --with-pamconfdir=no to ./configure to avoid installing this file
and instead install your own.
CONTRIBUTING UPSTREAM:
We generally do no longer accept distribution-specific

View File

@ -23,6 +23,7 @@ MANPAGES += \
man/localtime.5 \
man/machine-id.5 \
man/machine-info.5 \
man/nss-systemd.8 \
man/os-release.5 \
man/sd-bus-errors.3 \
man/sd-bus.3 \
@ -51,6 +52,8 @@ MANPAGES += \
man/sd_bus_path_encode.3 \
man/sd_bus_process.3 \
man/sd_bus_request_name.3 \
man/sd_bus_track_add_name.3 \
man/sd_bus_track_new.3 \
man/sd_event_add_child.3 \
man/sd_event_add_defer.3 \
man/sd_event_add_io.3 \
@ -120,6 +123,7 @@ MANPAGES += \
man/systemd-journald.service.8 \
man/systemd-machine-id-commit.service.8 \
man/systemd-machine-id-setup.1 \
man/systemd-mount.1 \
man/systemd-notify.1 \
man/systemd-nspawn.1 \
man/systemd-path.1 \
@ -235,6 +239,7 @@ MANPAGES_ALIAS += \
man/SD_ID128_FORMAT_STR.3 \
man/SD_ID128_FORMAT_VAL.3 \
man/SD_ID128_MAKE.3 \
man/SD_ID128_NULL.3 \
man/SD_INFO.3 \
man/SD_JOURNAL_APPEND.3 \
man/SD_JOURNAL_CURRENT_USER.3 \
@ -255,6 +260,7 @@ MANPAGES_ALIAS += \
man/SD_WARNING.3 \
man/init.1 \
man/journald.conf.d.5 \
man/libnss_systemd.so.2.8 \
man/poweroff.8 \
man/reboot.8 \
man/sd_bus_creds_get_audit_login_uid.3 \
@ -329,6 +335,23 @@ MANPAGES_ALIAS += \
man/sd_bus_path_encode_many.3 \
man/sd_bus_ref.3 \
man/sd_bus_release_name.3 \
man/sd_bus_track_add_sender.3 \
man/sd_bus_track_contains.3 \
man/sd_bus_track_count.3 \
man/sd_bus_track_count_name.3 \
man/sd_bus_track_count_sender.3 \
man/sd_bus_track_first.3 \
man/sd_bus_track_get_bus.3 \
man/sd_bus_track_get_recursive.3 \
man/sd_bus_track_get_userdata.3 \
man/sd_bus_track_next.3 \
man/sd_bus_track_ref.3 \
man/sd_bus_track_remove_name.3 \
man/sd_bus_track_remove_sender.3 \
man/sd_bus_track_set_recursive.3 \
man/sd_bus_track_set_userdata.3 \
man/sd_bus_track_unref.3 \
man/sd_bus_track_unrefp.3 \
man/sd_bus_unref.3 \
man/sd_bus_unrefp.3 \
man/sd_event.3 \
@ -373,6 +396,8 @@ MANPAGES_ALIAS += \
man/sd_id128_equal.3 \
man/sd_id128_from_string.3 \
man/sd_id128_get_boot.3 \
man/sd_id128_get_invocation.3 \
man/sd_id128_is_null.3 \
man/sd_id128_t.3 \
man/sd_is_mq.3 \
man/sd_is_socket.3 \
@ -567,6 +592,7 @@ man/SD_ID128_CONST_STR.3: man/sd-id128.3
man/SD_ID128_FORMAT_STR.3: man/sd-id128.3
man/SD_ID128_FORMAT_VAL.3: man/sd-id128.3
man/SD_ID128_MAKE.3: man/sd-id128.3
man/SD_ID128_NULL.3: man/sd-id128.3
man/SD_INFO.3: man/sd-daemon.3
man/SD_JOURNAL_APPEND.3: man/sd_journal_get_fd.3
man/SD_JOURNAL_CURRENT_USER.3: man/sd_journal_open.3
@ -587,6 +613,7 @@ man/SD_NOTICE.3: man/sd-daemon.3
man/SD_WARNING.3: man/sd-daemon.3
man/init.1: man/systemd.1
man/journald.conf.d.5: man/journald.conf.5
man/libnss_systemd.so.2.8: man/nss-systemd.8
man/poweroff.8: man/halt.8
man/reboot.8: man/halt.8
man/sd_bus_creds_get_audit_login_uid.3: man/sd_bus_creds_get_pid.3
@ -661,6 +688,23 @@ man/sd_bus_path_decode_many.3: man/sd_bus_path_encode.3
man/sd_bus_path_encode_many.3: man/sd_bus_path_encode.3
man/sd_bus_ref.3: man/sd_bus_new.3
man/sd_bus_release_name.3: man/sd_bus_request_name.3
man/sd_bus_track_add_sender.3: man/sd_bus_track_add_name.3
man/sd_bus_track_contains.3: man/sd_bus_track_add_name.3
man/sd_bus_track_count.3: man/sd_bus_track_add_name.3
man/sd_bus_track_count_name.3: man/sd_bus_track_add_name.3
man/sd_bus_track_count_sender.3: man/sd_bus_track_add_name.3
man/sd_bus_track_first.3: man/sd_bus_track_add_name.3
man/sd_bus_track_get_bus.3: man/sd_bus_track_new.3
man/sd_bus_track_get_recursive.3: man/sd_bus_track_new.3
man/sd_bus_track_get_userdata.3: man/sd_bus_track_new.3
man/sd_bus_track_next.3: man/sd_bus_track_add_name.3
man/sd_bus_track_ref.3: man/sd_bus_track_new.3
man/sd_bus_track_remove_name.3: man/sd_bus_track_add_name.3
man/sd_bus_track_remove_sender.3: man/sd_bus_track_add_name.3
man/sd_bus_track_set_recursive.3: man/sd_bus_track_new.3
man/sd_bus_track_set_userdata.3: man/sd_bus_track_new.3
man/sd_bus_track_unref.3: man/sd_bus_track_new.3
man/sd_bus_track_unrefp.3: man/sd_bus_track_new.3
man/sd_bus_unref.3: man/sd_bus_new.3
man/sd_bus_unrefp.3: man/sd_bus_new.3
man/sd_event.3: man/sd_event_new.3
@ -705,6 +749,8 @@ man/sd_event_unrefp.3: man/sd_event_new.3
man/sd_id128_equal.3: man/sd-id128.3
man/sd_id128_from_string.3: man/sd_id128_to_string.3
man/sd_id128_get_boot.3: man/sd_id128_get_machine.3
man/sd_id128_get_invocation.3: man/sd_id128_get_machine.3
man/sd_id128_is_null.3: man/sd-id128.3
man/sd_id128_t.3: man/sd-id128.3
man/sd_is_mq.3: man/sd_is_fifo.3
man/sd_is_socket.3: man/sd_is_fifo.3
@ -1011,6 +1057,9 @@ man/SD_ID128_FORMAT_VAL.html: man/sd-id128.html
man/SD_ID128_MAKE.html: man/sd-id128.html
$(html-alias)
man/SD_ID128_NULL.html: man/sd-id128.html
$(html-alias)
man/SD_INFO.html: man/sd-daemon.html
$(html-alias)
@ -1071,6 +1120,9 @@ man/init.html: man/systemd.html
man/journald.conf.d.html: man/journald.conf.html
$(html-alias)
man/libnss_systemd.so.2.html: man/nss-systemd.html
$(html-alias)
man/poweroff.html: man/halt.html
$(html-alias)
@ -1293,6 +1345,57 @@ man/sd_bus_ref.html: man/sd_bus_new.html
man/sd_bus_release_name.html: man/sd_bus_request_name.html
$(html-alias)
man/sd_bus_track_add_sender.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_contains.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_count.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_count_name.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_count_sender.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_first.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_get_bus.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_get_recursive.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_get_userdata.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_next.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_ref.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_remove_name.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_remove_sender.html: man/sd_bus_track_add_name.html
$(html-alias)
man/sd_bus_track_set_recursive.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_set_userdata.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_unref.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_track_unrefp.html: man/sd_bus_track_new.html
$(html-alias)
man/sd_bus_unref.html: man/sd_bus_new.html
$(html-alias)
@ -1425,6 +1528,12 @@ man/sd_id128_from_string.html: man/sd_id128_to_string.html
man/sd_id128_get_boot.html: man/sd_id128_get_machine.html
$(html-alias)
man/sd_id128_get_invocation.html: man/sd_id128_get_machine.html
$(html-alias)
man/sd_id128_is_null.html: man/sd-id128.html
$(html-alias)
man/sd_id128_t.html: man/sd-id128.html
$(html-alias)
@ -2163,19 +2272,25 @@ endif
if HAVE_MICROHTTPD
MANPAGES += \
man/journal-remote.conf.5 \
man/journal-upload.conf.5 \
man/systemd-journal-gatewayd.service.8 \
man/systemd-journal-remote.8 \
man/systemd-journal-upload.8
MANPAGES_ALIAS += \
man/journal-remote.conf.d.5 \
man/journal-upload.conf.d.5 \
man/systemd-journal-gatewayd.8 \
man/systemd-journal-gatewayd.socket.8
man/journal-remote.conf.d.5: man/journal-remote.conf.5
man/journal-upload.conf.d.5: man/journal-upload.conf.5
man/systemd-journal-gatewayd.8: man/systemd-journal-gatewayd.service.8
man/systemd-journal-gatewayd.socket.8: man/systemd-journal-gatewayd.service.8
man/journal-remote.conf.d.html: man/journal-remote.conf.html
$(html-alias)
man/journal-upload.conf.d.html: man/journal-upload.conf.html
$(html-alias)
man/systemd-journal-gatewayd.html: man/systemd-journal-gatewayd.service.html
$(html-alias)
@ -2498,6 +2613,7 @@ EXTRA_DIST += \
man/hostnamectl.xml \
man/hwdb.xml \
man/journal-remote.conf.xml \
man/journal-upload.conf.xml \
man/journalctl.xml \
man/journald.conf.xml \
man/kernel-command-line.xml \
@ -2519,6 +2635,7 @@ EXTRA_DIST += \
man/nss-myhostname.xml \
man/nss-mymachines.xml \
man/nss-resolve.xml \
man/nss-systemd.xml \
man/os-release.xml \
man/pam_systemd.xml \
man/resolved.conf.xml \
@ -2551,6 +2668,8 @@ EXTRA_DIST += \
man/sd_bus_path_encode.xml \
man/sd_bus_process.xml \
man/sd_bus_request_name.xml \
man/sd_bus_track_add_name.xml \
man/sd_bus_track_new.xml \
man/sd_event_add_child.xml \
man/sd_event_add_defer.xml \
man/sd_event_add_io.xml \
@ -2644,6 +2763,7 @@ EXTRA_DIST += \
man/systemd-machine-id-setup.xml \
man/systemd-machined.service.xml \
man/systemd-modules-load.service.xml \
man/systemd-mount.xml \
man/systemd-networkd-wait-online.service.xml \
man/systemd-networkd.service.xml \
man/systemd-notify.xml \

View File

@ -42,9 +42,9 @@ LIBUDEV_CURRENT=7
LIBUDEV_REVISION=5
LIBUDEV_AGE=6
LIBSYSTEMD_CURRENT=16
LIBSYSTEMD_CURRENT=17
LIBSYSTEMD_REVISION=0
LIBSYSTEMD_AGE=16
LIBSYSTEMD_AGE=17
# Dirs of external packages
dbuspolicydir=@dbuspolicydir@
@ -157,6 +157,7 @@ nodist_zshcompletion_DATA = $(nodist_zshcompletion_data)
endif
udevlibexec_PROGRAMS =
gperf_gperf_sources =
rootlib_LTLIBRARIES =
in_files = $(filter %.in,$(EXTRA_DIST))
in_in_files = $(filter %.in.in, $(in_files))
@ -250,16 +251,6 @@ AM_CFLAGS = $(OUR_CFLAGS)
AM_LDFLAGS = $(OUR_LDFLAGS)
# ------------------------------------------------------------------------------
define move-to-rootlibdir
if test "$(libdir)" != "$(rootlibdir)"; then \
$(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/$$libname) && \
rm -f $(DESTDIR)$(libdir)/$$libname && \
$(LN_S) --relative -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
mv $(DESTDIR)$(libdir)/$$libname.* $(DESTDIR)$(rootlibdir); \
fi
endef
INSTALL_DIRS =
SHUTDOWN_TARGET_WANTS =
@ -384,6 +375,7 @@ bin_PROGRAMS = \
systemd-delta \
systemd-analyze \
systemd-run \
systemd-mount \
systemd-stdio-bridge \
systemd-path
@ -501,7 +493,6 @@ dist_systemunit_DATA = \
units/swap.target \
units/slices.target \
units/system.slice \
units/x-.slice \
units/systemd-initctl.socket \
units/syslog.socket \
units/dev-hugepages.mount \
@ -532,7 +523,6 @@ dist_systemunit_DATA_busnames += \
nodist_systemunit_DATA = \
units/getty@.service \
units/serial-getty@.service \
units/console-shell.service \
units/console-getty.service \
units/container-getty@.service \
units/systemd-initctl.service \
@ -573,7 +563,18 @@ endif
dist_userunit_DATA = \
units/user/basic.target \
units/user/default.target \
units/user/exit.target
units/user/exit.target \
units/user/graphical-session.target \
units/user/graphical-session-pre.target \
units/user/bluetooth.target \
units/user/busnames.target \
units/user/paths.target \
units/user/printer.target \
units/user/shutdown.target \
units/user/smartcard.target \
units/user/sockets.target \
units/user/sound.target \
units/user/timers.target
nodist_userunit_DATA = \
units/user/systemd-exit.service
@ -584,7 +585,6 @@ dist_systempreset_DATA = \
EXTRA_DIST += \
units/getty@.service.m4 \
units/serial-getty@.service.m4 \
units/console-shell.service.m4.in \
units/console-getty.service.m4.in \
units/container-getty@.service.m4.in \
units/rescue.service.in \
@ -632,16 +632,9 @@ EXTRA_DIST += \
units/rc-local.service.in \
units/halt-local.service.in
# 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:
mv $(DESTDIR)$(systemunitdir)/x-.slice $(DESTDIR)/$(systemunitdir)/-.slice
units-uninstall-hook:
rm -f $(DESTDIR)/$(systemunitdir)/-.slice
INSTALL_DATA_HOOKS += units-install-hook
UNINSTALL_DATA_HOOKS += units-uninstall-hook
GENERAL_ALIASES += \
$(systemunitdir)/reboot.target $(pkgsysconfdir)/system/ctrl-alt-del.target \
$(systemunitdir)/machines.target $(pkgsysconfdir)/system/multi-user.target.wants/machines.target
dist_doc_DATA = \
README \
@ -1198,6 +1191,8 @@ libcore_la_SOURCES = \
src/core/load-dropin.h \
src/core/execute.c \
src/core/execute.h \
src/core/dynamic-user.c \
src/core/dynamic-user.h \
src/core/kill.c \
src/core/kill.h \
src/core/dbus.c \
@ -1268,8 +1263,8 @@ libcore_la_SOURCES = \
src/core/audit-fd.h \
src/core/show-status.c \
src/core/show-status.h \
src/core/failure-action.c \
src/core/failure-action.h
src/core/emergency-action.c \
src/core/emergency-action.h
nodist_libcore_la_SOURCES = \
src/core/load-fragment-gperf.c \
@ -1563,6 +1558,11 @@ tests += \
test-acl-util
endif
if HAVE_SECCOMP
tests += \
test-seccomp
endif
EXTRA_DIST += \
test/a.service \
test/basic.target \
@ -1620,15 +1620,36 @@ EXTRA_DIST += \
test/test-execute/exec-passenvironment.service \
test/test-execute/exec-group.service \
test/test-execute/exec-group-nfsnobody.service \
test/test-execute/exec-supplementarygroups.service \
test/test-execute/exec-supplementarygroups-single-group.service \
test/test-execute/exec-supplementarygroups-single-group-user.service \
test/test-execute/exec-supplementarygroups-multiple-groups-default-group-user.service \
test/test-execute/exec-supplementarygroups-multiple-groups-withgid.service \
test/test-execute/exec-supplementarygroups-multiple-groups-withuid.service \
test/test-execute/exec-dynamicuser-fixeduser.service \
test/test-execute/exec-dynamicuser-fixeduser-one-supplementarygroup.service \
test/test-execute/exec-dynamicuser-supplementarygroups.service \
test/test-execute/exec-ignoresigpipe-no.service \
test/test-execute/exec-ignoresigpipe-yes.service \
test/test-execute/exec-personality-x86-64.service \
test/test-execute/exec-personality-x86.service \
test/test-execute/exec-personality-s390.service \
test/test-execute/exec-personality-ppc64.service \
test/test-execute/exec-personality-ppc64le.service \
test/test-execute/exec-personality-aarch64.service \
test/test-execute/exec-privatedevices-no.service \
test/test-execute/exec-privatedevices-yes.service \
test/test-execute/exec-privatedevices-no-capability-mknod.service \
test/test-execute/exec-privatedevices-yes-capability-mknod.service \
test/test-execute/exec-protectkernelmodules-no-capabilities.service \
test/test-execute/exec-protectkernelmodules-yes-capabilities.service \
test/test-execute/exec-protectkernelmodules-yes-mount-propagation.service \
test/test-execute/exec-privatetmp-no.service \
test/test-execute/exec-privatetmp-yes.service \
test/test-execute/exec-readonlypaths.service \
test/test-execute/exec-readonlypaths-mount-propagation.service \
test/test-execute/exec-readwritepaths-mount-propagation.service \
test/test-execute/exec-inaccessiblepaths-mount-propagation.service \
test/test-execute/exec-spec-interpolation.service \
test/test-execute/exec-systemcallerrornumber.service \
test/test-execute/exec-systemcallfilter-failing2.service \
@ -2013,6 +2034,12 @@ test_acl_util_SOURCES = \
test_acl_util_LDADD = \
libsystemd-shared.la
test_seccomp_SOURCES = \
src/test/test-seccomp.c
test_seccomp_LDADD = \
libsystemd-shared.la
test_namespace_LDADD = \
libcore.la
@ -3125,6 +3152,13 @@ systemd_run_SOURCES = \
systemd_run_LDADD = \
libsystemd-shared.la
# ------------------------------------------------------------------------------
systemd_mount_SOURCES = \
src/mount/mount-tool.c
systemd_mount_LDADD = \
libsystemd-shared.la
# ------------------------------------------------------------------------------
systemd_stdio_bridge_SOURCES = \
src/stdio-bridge/stdio-bridge.c
@ -3255,15 +3289,6 @@ libsystemd_la_LIBADD = \
libbasic.la \
libsystemd-journal-internal.la
libsystemd-install-hook:
libname=libsystemd.so && $(move-to-rootlibdir)
libsystemd-uninstall-hook:
rm -f $(DESTDIR)$(rootlibdir)/libsystemd.so*
INSTALL_EXEC_HOOKS += libsystemd-install-hook
UNINSTALL_EXEC_HOOKS += libsystemd-uninstall-hook
pkgconfiglib_DATA += \
src/libsystemd/libsystemd.pc
@ -3276,7 +3301,7 @@ pkginclude_HEADERS += \
src/systemd/sd-id128.h \
src/systemd/sd-daemon.h
lib_LTLIBRARIES += \
rootlib_LTLIBRARIES += \
libsystemd.la
tests += \
@ -3295,6 +3320,7 @@ tests += \
test-bus-error \
test-bus-creds \
test-bus-gvariant \
test-bus-track \
test-event \
test-netlink \
test-local-addresses \
@ -3338,6 +3364,16 @@ test_bus_cleanup_CFLAGS = \
test_bus_cleanup_LDADD = \
libsystemd-shared.la
test_bus_track_SOURCES = \
src/libsystemd/sd-bus/test-bus-track.c
test_bus_track_CFLAGS = \
$(AM_CFLAGS) \
$(SECCOMP_CFLAGS)
test_bus_track_LDADD = \
libsystemd-shared.la
test_bus_server_SOURCES = \
src/libsystemd/sd-bus/test-bus-server.c
@ -3597,7 +3633,7 @@ tests += \
include_HEADERS += \
src/libudev/libudev.h
lib_LTLIBRARIES += \
rootlib_LTLIBRARIES += \
libudev.la
libudev_la_SOURCES =\
@ -3629,16 +3665,6 @@ pkgconfiglib_DATA += \
EXTRA_DIST += \
src/libudev/libudev.pc.in
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libudev-install-hook:
libname=libudev.so && $(move-to-rootlibdir)
libudev-uninstall-hook:
rm -f $(DESTDIR)$(rootlibdir)/libudev.so*
INSTALL_EXEC_HOOKS += libudev-install-hook
UNINSTALL_EXEC_HOOKS += libudev-uninstall-hook
# ------------------------------------------------------------------------------
noinst_LTLIBRARIES += \
libudev-internal.la
@ -3865,7 +3891,8 @@ TESTS += \
if HAVE_PYTHON
TESTS += \
test/rule-syntax-check.py
test/rule-syntax-check.py \
hwdb/parse_hwdb.py
if HAVE_SYSV_COMPAT
TESTS += \
@ -3917,7 +3944,8 @@ EXTRA_DIST += \
test/udev-test.pl \
test/rule-syntax-check.py \
test/sysv-generator-test.py \
test/mocks/fsck
test/mocks/fsck \
hwdb/parse_hwdb.py
# ------------------------------------------------------------------------------
ata_id_SOURCES = \
@ -4629,9 +4657,6 @@ nodist_udevrules_DATA += \
nodist_systemunit_DATA += \
units/systemd-vconsole-setup.service
SYSINIT_TARGET_WANTS += \
systemd-vconsole-setup.service
endif
EXTRA_DIST += \
@ -5000,6 +5025,27 @@ test_nss_LDADD = \
manual_tests += \
test-nss
# ------------------------------------------------------------------------------
libnss_systemd_la_SOURCES = \
src/nss-systemd/nss-systemd.sym \
src/nss-systemd/nss-systemd.c
libnss_systemd_la_LDFLAGS = \
$(AM_LDFLAGS) \
-module \
-export-dynamic \
-avoid-version \
-shared \
-shrext .so.2 \
-Wl,--version-script=$(top_srcdir)/src/nss-systemd/nss-systemd.sym
libnss_systemd_la_LIBADD = \
libsystemd-internal.la \
libbasic.la
rootlib_LTLIBRARIES += \
libnss_systemd.la
# ------------------------------------------------------------------------------
if HAVE_MYHOSTNAME
libnss_myhostname_la_SOURCES = \
@ -5019,7 +5065,7 @@ libnss_myhostname_la_LIBADD = \
libsystemd-internal.la \
libbasic.la
lib_LTLIBRARIES += \
rootlib_LTLIBRARIES += \
libnss_myhostname.la
endif
@ -5118,7 +5164,7 @@ libnss_mymachines_la_LIBADD = \
libsystemd-internal.la \
libbasic.la
lib_LTLIBRARIES += \
rootlib_LTLIBRARIES += \
libnss_mymachines.la
endif
@ -5417,7 +5463,7 @@ libnss_resolve_la_LIBADD = \
libbasic.la \
-ldl
lib_LTLIBRARIES += \
rootlib_LTLIBRARIES += \
libnss_resolve.la
systemd_resolve_SOURCES = \
@ -5591,6 +5637,8 @@ libnetworkd_core_la_SOURCES = \
src/network/networkd-netdev-bond.c \
src/network/networkd-netdev-bridge.h \
src/network/networkd-netdev-bridge.c \
src/network/networkd-netdev-vcan.h \
src/network/networkd-netdev-vcan.c \
src/network/networkd-link-bus.c \
src/network/networkd-ipv4ll.c \
src/network/networkd-dhcp4.c \
@ -5865,8 +5913,10 @@ pam_systemd_la_LIBADD = \
pamlib_LTLIBRARIES = \
pam_systemd.la
if ENABLE_PAM_CONFIG
dist_pamconf_DATA = \
src/login/systemd-user
endif
EXTRA_DIST += \
src/login/systemd-user.m4
@ -5988,6 +6038,9 @@ EXTRA_DIST += \
test/TEST-11-ISSUE-3166/test.sh \
test/TEST-12-ISSUE-3171/Makefile \
test/TEST-12-ISSUE-3171/test.sh \
test/TEST-13-NSPAWN-SMOKE/Makefile \
test/TEST-13-NSPAWN-SMOKE/create-busybox-container \
test/TEST-13-NSPAWN-SMOKE/test.sh \
test/test-functions
EXTRA_DIST += \
@ -6265,19 +6318,6 @@ SYSTEM_UNIT_ALIASES += \
reboot.target ctrl-alt-del.target \
getty@.service autovt@.service
USER_UNIT_ALIASES += \
$(systemunitdir)/shutdown.target shutdown.target \
$(systemunitdir)/sockets.target sockets.target \
$(systemunitdir)/timers.target timers.target \
$(systemunitdir)/paths.target paths.target \
$(systemunitdir)/bluetooth.target bluetooth.target \
$(systemunitdir)/printer.target printer.target \
$(systemunitdir)/sound.target sound.target \
$(systemunitdir)/smartcard.target smartcard.target
USER_UNIT_ALIASES += \
$(systemunitdir)/busnames.target busnames.target
GENERAL_ALIASES += \
$(systemunitdir)/remote-fs.target $(pkgsysconfdir)/system/multi-user.target.wants/remote-fs.target \
$(systemunitdir)/getty@.service $(pkgsysconfdir)/system/getty.target.wants/getty@tty1.service \
@ -6530,7 +6570,7 @@ print-%:
@echo $($*)
git-contrib:
@git shortlog -s `git describe --abbrev=0`.. | cut -c8- | awk '{ print $$0 "," }' | sort -u
@git shortlog -s `git describe --abbrev=0`.. | cut -c8- | sed 's/ / /g' | awk '{ print $$0 "," }' | sort -u
EXTRA_DIST += \
tools/gdb-sd_dump_hashmaps.py

396
NEWS
View File

@ -1,5 +1,354 @@
systemd System and Service Manager
CHANGES WITH 232:
* The new RemoveIPC= option can be used to remove IPC objects owned by
the user or group of a service when that service exits.
* The new ProtectKernelModules= option can be used to disable explicit
load and unload operations of kernel modules by a service. In
addition access to /usr/lib/modules is removed if this option is set.
* ProtectSystem= option gained a new value "strict", which causes the
whole file system tree with the exception of /dev, /proc, and /sys,
to be remounted read-only for a service.
* The new ProtectKernelTunables= option can be used to disable
modification of configuration files in /sys and /proc by a service.
Various directories and files are remounted read-only, so access is
restricted even if the file permissions would allow it.
* The new ProtectControlGroups= option can be used to disable write
access by a service to /sys/fs/cgroup.
* Various systemd services have been hardened with
ProtectKernelTunables=yes, ProtectControlGroups=yes,
RestrictAddressFamilies=.
* Support for dynamically creating users for the lifetime of a service
has been added. If DynamicUser=yes is specified, user and group IDs
will be allocated from the range 61184..65519 for the lifetime of the
service. They can be resolved using the new nss-systemd.so NSS
module. The module must be enabled in /etc/nsswitch.conf. Services
started in this way have PrivateTmp= and RemoveIPC= enabled, so that
any resources allocated by the service will be cleaned up when the
service exits. They also have ProtectHome=read-only and
ProtectSystem=strict enabled, so they are not able to make any
permanent modifications to the system.
* The nss-systemd module also always resolves root and nobody, making
it possible to have no /etc/passwd or /etc/group files in minimal
container or chroot environments.
* Services may be started with their own user namespace using the new
boolean PrivateUsers= option. Only root, nobody, and the uid/gid
under which the service is running are mapped. All other users are
mapped to nobody.
* Support for the cgroup namespace has been added to systemd-nspawn. If
supported by kernel, the container system started by systemd-nspawn
will have its own view of the cgroup hierarchy. This new behaviour
can be disabled using $SYSTEMD_NSPAWN_USE_CGNS environment variable.
* The new MemorySwapMax= option can be used to limit the maximum swap
usage under the unified cgroup hierarchy.
* Support for the CPU controller in the unified cgroup hierarchy has
been added, via the CPUWeight=, CPUStartupWeight=, CPUAccounting=
options. This controller requires out-of-tree patches for the kernel
and the support is provisional.
* Mount and automount units may now be created transiently
(i.e. dynamically at runtime via the bus API, instead of requiring
unit files in the file system).
* systemd-mount is a new tool which may mount file systems much like
mount(8), optionally pulling in additional dependencies through
transient .mount and .automount units. For example, this tool
automatically runs fsck on a backing block device before mounting,
and allows the automount logic to be used dynamically from the
command line for establishing mount points. This tool is particularly
useful when dealing with removable media, as it will ensure fsck is
run if necessary before the first access and that the file system
is quickly unmounted after each access by utilizing the automount
logic. This maximizes the chance that the file system on the
removable media stays in a clean state, and if it isn't in a clean
state is fixed automatically.
* LazyUnmount=yes option for mount units has been added to expose the
umount --lazy option. Similarly, ForceUnmount=yes exposes the --force
option.
* /efi will be used as the mount point of the EFI boot partition, if
the directory is present, and the mount point was not configured
through other means (e.g. fstab). If /efi directory does not exist,
/boot will be used as before. This makes it easier to automatically
mount the EFI partition on systems where /boot is used for something
else.
* When operating on GPT disk images for containers, systemd-nspawn will
now mount the ESP to /boot or /efi according to the same rules as PID
1 running on a host. This allows tools like "bootctl" to operate
correctly within such containers, in order to make container images
bootable on physical systems.
* disk/by-id and disk/by-path symlinks are now created for NVMe drives.
* Two new user session targets have been added to support running
graphical sessions under the systemd --user instance:
graphical-session.target and graphical-session-pre.target. See
systemd.special(7) for a description of how those targets should be
used.
* The vconsole initialization code has been significantly reworked to
use KD_FONT_OP_GET/SET ioctls instead of KD_FONT_OP_COPY and better
support unicode keymaps. Font and keymap configuration will now be
copied to all allocated virtual consoles.
* FreeBSD's bhyve virtualization is now detected.
* Information recorded in the journal for core dumps now includes the
contents of /proc/mountinfo and the command line of the process at
the top of the process hierarchy (which is usually the init process
of the container).
* systemd-journal-gatewayd learned the --directory= option to serve
files from the specified location.
* journalctl --root=… can be used to peruse the journal in the
/var/log/ directories inside of a container tree. This is similar to
the existing --machine= option, but does not require the container to
be active.
* The hardware database has been extended to support
ID_INPUT_TRACKBALL, used in addition to ID_INPUT_MOUSE to identify
trackball devices.
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL hwdb property has been added to
specify the click rate for mice which include a horizontal wheel with
a click rate that is different than the one for the vertical wheel.
* systemd-run gained a new --wait option that makes service execution
synchronous. (Specifically, the command will not return until the
specified service binary exited.)
* systemctl gained a new --wait option that causes the start command to
wait until the units being started have terminated again.
* A new journal output mode "short-full" has been added which displays
timestamps with abbreviated English day names and adds a timezone
suffix. Those timestamps include more information than the default
"short" output mode, and can be passed directly to journalctl's
--since= and --until= options.
* /etc/resolv.conf will be bind-mounted into containers started by
systemd-nspawn, if possible, so any changes to resolv.conf contents
are automatically propagated to the container.
* The number of instances for socket-activated services originating
from a single IP address can be limited with
MaxConnectionsPerSource=, extending the existing setting of
MaxConnections=.
* systemd-networkd gained support for vcan ("Virtual CAN") interface
configuration.
* .netdev and .network configuration can now be extended through
drop-ins.
* UDP Segmentation Offload, TCP Segmentation Offload, Generic
Segmentation Offload, Generic Receive Offload, Large Receive Offload
can be enabled and disabled using the new UDPSegmentationOffload=,
TCPSegmentationOffload=, GenericSegmentationOffload=,
GenericReceiveOffload=, LargeReceiveOffload= options in the
[Link] section of .link files.
* The Spanning Tree Protocol, Priority, Aging Time, and the Default
Port VLAN ID can be configured for bridge devices using the new STP=,
Priority=, AgeingTimeSec=, and DefaultPVID= settings in the [Bridge]
section of .netdev files.
* The route table to which routes received over DHCP or RA should be
added can be configured with the new RouteTable= option in the [DHCP]
and [IPv6AcceptRA] sections of .network files.
* The Address Resolution Protocol can be disabled on links managed by
systemd-networkd using the ARP=no setting in the [Link] section of
.network files.
* New environment variables $SERVICE_RESULT, $EXIT_CODE and
$EXIT_STATUS are set for ExecStop= and ExecStopPost= commands, and
encode information about the result and exit codes of the current
service runtime cycle.
* systemd-sysctl will now configure kernel parameters in the order
they occur in the configuration files. This matches what sysctl
has been traditionally doing.
* kernel-install "plugins" that are executed to perform various
tasks after a new kernel is added and before an old one is removed
can now return a special value to terminate the procedure and
prevent any later plugins from running.
* Journald's SplitMode=login setting has been deprecated. It has been
removed from documentation, and its use is discouraged. In a future
release it will be completely removed, and made equivalent to current
default of SplitMode=uid.
* Storage=both option setting in /etc/systemd/coredump.conf has been
removed. With fast LZ4 compression storing the core dump twice is not
useful.
* The --share-system systemd-nspawn option has been replaced with an
(undocumented) variable $SYSTEMD_NSPAWN_SHARE_SYSTEM, but the use of
this functionality is discouraged. In addition the variables
$SYSTEMD_NSPAWN_SHARE_NS_IPC, $SYSTEMD_NSPAWN_SHARE_NS_PID,
$SYSTEMD_NSPAWN_SHARE_NS_UTS may be used to control the unsharing of
individual namespaces.
* "machinectl list" now shows the IP address of running containers in
the output, as well as OS release information.
* "loginctl list" now shows the TTY of each session in the output.
* sd-bus gained new API calls sd_bus_track_set_recursive(),
sd_bus_track_get_recursive(), sd_bus_track_count_name(),
sd_bus_track_count_sender(). They permit usage of sd_bus_track peer
tracking objects in a "recursive" mode, where a single client can be
counted multiple times, if it takes multiple references.
* sd-bus gained new API calls sd_bus_set_exit_on_disconnect() and
sd_bus_get_exit_on_disconnect(). They may be used to to make a
process using sd-bus automatically exit if the bus connection is
severed.
* Bus clients of the service manager may now "pin" loaded units into
memory, by taking an explicit reference on them. This is useful to
ensure the client can retrieve runtime data about the service even
after the service completed execution. Taking such a reference is
available only for privileged clients and should be helpful to watch
running services in a race-free manner, and in particular collect
information about exit statuses and results.
* The nss-resolve module has been changed to strictly return UNAVAIL
when communication via D-Bus with resolved failed, and NOTFOUND when
a lookup completed but was negative. This means it is now possible to
neatly configure fallbacks using nsswitch.conf result checking
expressions. Taking benefit of this, the new recommended
configuration line for the "hosts" entry in /etc/nsswitch.conf is:
hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname
* A new setting CtrlAltDelBurstAction= has been added to
/etc/systemd/system.conf which may be used to configure the precise
behaviour if the user on the console presses Ctrl-Alt-Del more often
than 7 times in 2s. Previously this would unconditionally result in
an expedited, immediate reboot. With this new setting the precise
operation may be configured in more detail, and also turned off
entirely.
* In .netdev files two new settings RemoteChecksumTx= and
RemoteChecksumRx= are now understood that permit configuring the
remote checksumming logic for VXLAN networks.
* The service manager learnt a new "invocation ID" concept for invoked
services. Each runtime cycle of a service will get a new invocation
ID (a 128bit random UUID) assigned that identifies the current
run of the service uniquely and globally. A new invocation ID
is generated each time a service starts up. The journal will store
the invocation ID of a service along with any logged messages, thus
making the invocation ID useful for matching the online runtime of a
service with the offline log data it generated in a safe way without
relying on synchronized timestamps. In many ways this new service
invocation ID concept is similar to the kernel's boot ID concept that
uniquely and globally identifies the runtime of each boot. The
invocation ID of a service is passed to the service itself via an
environment variable ($INVOCATION_ID). A new bus call
GetUnitByInvocationID() has been added that is similar to GetUnit()
but instead of retrieving the bus path for a unit by its name
retrieves it by its invocation ID. The returned path is valid only as
long as the passed invocation ID is current.
* systemd-resolved gained a new "DNSStubListener" setting in
resolved.conf. It either takes a boolean value or the special values
"udp" and "tcp", and configures whether to enable the stub DNS
listener on 127.0.0.53:53.
* IP addresses configured via networkd may now carry additional
configuration settings supported by the kernel. New options include:
HomeAddress=, DuplicateAddressDetection=, ManageTemporaryAddress=,
PrefixRoute=, AutoJoin=.
* The PAM configuration fragment file for "user@.service" shipped with
systemd (i.e. the --user instance of systemd) has been stripped to
the minimum necessary to make the system boot. Previously, it
contained Fedora-specific stanzas that did not apply to other
distributions. It is expected that downstream distributions add
additional configuration lines, matching their needs to this file,
using it only as rough template of what systemd itself needs. Note
that this reduced fragment does not even include an invocation of
pam_limits which most distributions probably want to add, even though
systemd itself does not need it. (There's also the new build time
option --with-pamconfdir=no to disable installation of the PAM
fragment entirely.)
* If PrivateDevices=yes is set for a service the CAP_SYS_RAWIO
capability is now also dropped from its set (in addition to
CAP_SYS_MKNOD as before).
* In service unit files it is now possible to connect a specific named
file descriptor with stdin/stdout/stdout of an executed service. The
name may be specified in matching .socket units using the
FileDescriptorName= setting.
* A number of journal settings may now be configured on the kernel
command line. Specifically, the following options are now understood:
systemd.journald.max_level_console=,
systemd.journald.max_level_store=,
systemd.journald.max_level_syslog=, systemd.journald.max_level_kmsg=,
systemd.journald.max_level_wall=.
* "systemctl is-enabled --full" will now show by which symlinks a unit
file is enabled in the unit dependency tree.
* Support for VeraCrypt encrypted partitions has been added to the
"cryptsetup" logic and /etc/crypttab.
* systemd-detect-virt gained support for a new --private-users switch
that checks whether the invoking processes are running inside a user
namespace. Similar, a new special value "private-users" for the
existing ConditionVirtualization= setting has been added, permitting
skipping of specific units in user namespace environments.
Contributions from: Alban Crequy, Alexander Kuleshov, Alfie John,
Andreas Henriksson, Andrew Jeddeloh, Balázs Úr, Bart Rulon, Benjamin
Richter, Ben Gamari, Ben Harris, Brian J. Murrell, Christian Brauner,
Christian Rebischke, Clinton Roy, Colin Walters, Cristian Rodríguez,
Daniel Hahler, Daniel Mack, Daniel Maixner, Daniel Rusek, Dan Dedrick,
Davide Cavalca, David Herrmann, David Michael, Dennis Wassenberg,
Djalal Harouni, Dongsu Park, Douglas Christman, Elias Probst, Eric
Cook, Erik Karlsson, Evgeny Vereshchagin, Felipe Sateler, Felix Zhang,
Franck Bui, George Hilliard, Giuseppe Scrivano, HATAYAMA Daisuke,
Heikki Kemppainen, Hendrik Brueckner, hi117, Ismo Puustinen, Ivan
Shapovalov, Jakub Filak, Jakub Wilk, Jan Synacek, Jason Kölker,
Jean-Sébastien Bour, Jiří Pírko, Jonathan Boulle, Jorge Niedbalski,
Keith Busch, kristbaum, Kyle Russell, Lans Zhang, Lennart Poettering,
Leonardo Brondani Schenkel, Lucas Werkmeister, Luca Bruno, Lukáš
Nykrýn, Maciek Borzecki, Mantas Mikulėnas, Marc-Antoine Perennou,
Marcel Holtmann, Marcos Mello, Martin Ejdestig, Martin Pitt, Matej
Habrnal, Maxime de Roucy, Michael Biebl, Michael Chapman, Michael Hoy,
Michael Olbrich, Michael Pope, Michal Sekletar, Michal Soltys, Mike
Gilbert, Nick Owens, Patrik Flykt, Paweł Szewczyk, Peter Hutterer,
Piotr Drąg, Reid Price, Richard W.M. Jones, Roman Stingler, Ronny
Chevalier, Seraphime Kirkovski, Stefan Schweter, Steve Muir, Susant
Sahani, Tejun Heo, Thomas Blume, Thomas H. P. Andersen, Tiago Levit,
Tobias Jungel, Tomáš Janoušek, Topi Miettinen, Torstein Husebø, Umut
Tezduyar Lindskog, Vito Caputo, WaLyong Cho, Wilhelm Schuster, Yann
E. MORIN, Yi EungJun, Yuki Inoguchi, Yu Watanabe, Zbigniew
Jędrzejewski-Szmek, Zeal Jagannatha
— Santa Fe, 2016-11-03
CHANGES WITH 231:
* In service units the various ExecXYZ= settings have been extended
@ -176,7 +525,7 @@ CHANGES WITH 231:
file. It can be used in lieu of %systemd_requires in packages which
don't use any systemd functionality and are intended to be installed
in minimal containers without systemd present. This macro provides
ordering dependecies to ensure that if the package is installed in
ordering dependencies to ensure that if the package is installed in
the same rpm transaction as systemd, systemd will be installed before
the scriptlets for the package are executed, allowing unit presets
to be handled.
@ -211,11 +560,14 @@ CHANGES WITH 231:
"mkosi" is invoked in the build tree a new raw OS image is generated
incorporating the systemd sources currently being worked on and a
clean, fresh distribution installation. The generated OS image may be
booted up with "systemd-nspawn -b -i", qemu-kvm or on any physcial
booted up with "systemd-nspawn -b -i", qemu-kvm or on any physical
UEFI PC. This functionality is particularly useful to easily test
local changes made to systemd in a pristine, defined environment. See
HACKING for details.
* configure learned the --with-support-url= option to specify the
distribution's bugtracker.
Contributions from: Alban Crequy, Alessandro Puccetti, Alessio Igor
Bogani, Alexander Kuleshov, Alexander Kurtz, Alex Gaynor, Andika
Triwidada, Andreas Pokorny, Andreas Rammhold, Andrew Jeddeloh, Ansgar
@ -385,13 +737,13 @@ CHANGES WITH 230:
of the owners and the ACLs of all files and directories in a
container tree to match the UID/GID user namespacing range selected
for the container invocation. This mode is enabled via the new
--private-user-chown switch. It also gained support for automatically
choosing a free, previously unused UID/GID range when starting a
container, via the new --private-users=pick setting (which implies
--private-user-chown). Together, these options for the first time
make user namespacing for nspawn containers fully automatic and thus
deployable. The systemd-nspawn@.service template unit file has been
changed to use this functionality by default.
--private-users-chown switch. It also gained support for
automatically choosing a free, previously unused UID/GID range when
starting a container, via the new --private-users=pick setting (which
implies --private-users-chown). Together, these options for the first
time make user namespacing for nspawn containers fully automatic and
thus deployable. The systemd-nspawn@.service template unit file has
been changed to use this functionality by default.
* systemd-nspawn gained a new --network-zone= switch, that allows
creating ad-hoc virtual Ethernet links between multiple containers,
@ -871,7 +1223,7 @@ CHANGES WITH 228:
--user instance of systemd these specifiers where correctly
resolved, but hardly made any sense, since the user instance
lacks privileges to do user switches anyway, and User= is
hence useless. Morever, even in the --user instance of
hence useless. Moreover, even in the --user instance of
systemd behaviour was awkward as it would only take settings
from User= assignment placed before the specifier into
account. In order to unify and simplify the logic around
@ -1007,7 +1359,7 @@ CHANGES WITH 227:
* The RuntimeDirectory= setting now understands unit
specifiers like %i or %f.
* A new (still internal) libary API sd-ipv4acd has been added,
* A new (still internal) library API sd-ipv4acd has been added,
that implements address conflict detection for IPv4. It's
based on code from sd-ipv4ll, and will be useful for
detecting DHCP address conflicts.
@ -1576,7 +1928,7 @@ CHANGES WITH 220:
* systemd-nspawn gained a new --property= setting to set unit
properties for the container scope. This is useful for
setting resource parameters (e.g "CPUShares=500") on
setting resource parameters (e.g. "CPUShares=500") on
containers started from the command line.
* systemd-nspawn gained a new --private-users= switch to make
@ -1874,7 +2226,7 @@ CHANGES WITH 219:
files.
* systemd now provides a way to store file descriptors
per-service in PID 1.This is useful for daemons to ensure
per-service in PID 1. This is useful for daemons to ensure
that fds they require are not lost during a daemon
restart. The fds are passed to the daemon on the next
invocation in the same way socket activation fds are
@ -2922,7 +3274,7 @@ CHANGES WITH 214:
time, the extended attribute calls have moved to glibc, and
libattr is thus unnecessary.
* Virtualization detection works without priviliges now. This
* Virtualization detection works without privileges now. This
means the systemd-detect-virt binary no longer requires
CAP_SYS_PTRACE file capabilities, and our daemons can run
with fewer privileges.
@ -3646,7 +3998,7 @@ CHANGES WITH 209:
/usr/lib/net/links/99-default.link. Old
80-net-name-slot.rules udev configuration file has been
removed, so local configuration overriding this file should
be adapated to override 99-default.link instead.
be adapted to override 99-default.link instead.
* When the User= switch is used in a unit file, also
initialize $SHELL= based on the user database entry.
@ -4289,7 +4641,7 @@ CHANGES WITH 206:
* logind's device ACLs may now be applied to these "dead"
devices nodes too, thus finally allowing managed access to
devices such as /dev/snd/sequencer whithout loading the
devices such as /dev/snd/sequencer without loading the
backing module right-away.
* A new RPM macro has been added that may be used to apply
@ -4780,7 +5132,7 @@ CHANGES WITH 199:
processes executed in parallel based on the number of available
CPUs instead of the amount of available RAM. This is supposed
to provide a more reliable default and limit a too aggressive
paralellism for setups with 1000s of devices connected.
parallelism for setups with 1000s of devices connected.
Contributions from: Auke Kok, Colin Walters, Cristian
Rodríguez, Daniel Buch, Dave Reisner, Frederic Crozat, Hannes
@ -5118,7 +5470,7 @@ CHANGES WITH 197:
presenting log data.
* systemctl will no longer show control group information for
a unit if a the control group is empty anyway.
a unit if the control group is empty anyway.
* logind can now automatically suspend/hibernate/shutdown the
system on idle.
@ -5909,7 +6261,7 @@ CHANGES WITH 186:
* The SysV search path is no longer exported on the D-Bus
Manager object.
* The Names= option is been removed from unit file parsing.
* The Names= option has been removed from unit file parsing.
* There's a new man page bootup(7) detailing the boot process.
@ -6054,7 +6406,7 @@ CHANGES WITH 183:
about this in more detail.
* var-run.mount and var-lock.mount are no longer provided
(which prevously bind mounted these directories to their new
(which previously bind mounted these directories to their new
places). Distributions which have not converted these
directories to symlinks should consider stealing these files
from git history and add them downstream.
@ -6195,7 +6547,7 @@ CHANGES WITH 44:
* Many bugfixes for the journal, including endianness fixes and
ensuring that disk space enforcement works
* sd-login.h is C++ comptaible again
* sd-login.h is C++ compatible again
* Extend the /etc/os-release format on request of the Debian
folks
@ -6423,7 +6775,7 @@ CHANGES WITH 38:
* New man pages for all APIs from libsystemd-login.
* The build tree got reorganized and a the build system is a
* The build tree got reorganized and the build system is a
lot more modular allowing embedded setups to specifically
select the components of systemd they are interested in.

31
README
View File

@ -79,6 +79,7 @@ REQUIREMENTS:
CONFIG_TMPFS_XATTR
CONFIG_{TMPFS,EXT4,XFS,BTRFS_FS,...}_POSIX_ACL
CONFIG_SECCOMP
CONFIG_SECCOMP_FILTER (required for seccomp support)
CONFIG_CHECKPOINT_RESTORE (for the kcmp() syscall)
Required for CPUShares= in resource control unit settings
@ -119,7 +120,7 @@ REQUIREMENTS:
libcap
libmount >= 2.27.1 (from util-linux)
(util-linux *must* be built with --enable-libmount-force-mountinfo)
libseccomp >= 1.0.0 (optional)
libseccomp >= 2.3.1 (optional)
libblkid >= 2.24 (from util-linux) (optional)
libkmod >= 15 (optional)
PAM >= 1.1.2 (optional)
@ -168,6 +169,13 @@ REQUIREMENTS:
under all circumstances. In fact, systemd-hostnamed will warn
if nss-myhostname is not installed.
Additional packages are necessary to run some tests:
- busybox (used by test/TEST-13-NSPAWN-SMOKE)
- nc (used by test/TEST-12-ISSUE-3171)
- python3-pyparsing
- python3-evdev (used by hwdb parsing tests)
- strace (used by test/test-functions)
USERS AND GROUPS:
Default udev rules use the following standard system group
names, which need to be resolvable by getgrnam() at any time,
@ -201,7 +209,7 @@ USERS AND GROUPS:
"systemd-coredump" system user and group to exist.
NSS:
systemd ships with three NSS modules:
systemd ships with four glibc NSS modules:
nss-myhostname resolves the local hostname to locally
configured IP addresses, as well as "localhost" to
@ -210,15 +218,22 @@ NSS:
nss-resolve enables DNS resolution via the systemd-resolved
DNS/LLMNR caching stub resolver "systemd-resolved".
nss-mymachines enables resolution of all local containers
registered with machined to their respective IP addresses.
nss-mymachines enables resolution of all local containers registered
with machined to their respective IP addresses. It also maps UID/GIDs
ranges used by containers to useful names.
To make use of these NSS modules, please add them to the
"hosts: " line in /etc/nsswitch.conf. The "resolve" module
should replace the glibc "dns" module in this file.
nss-systemd enables resolution of all dynamically allocated service
users. (See the DynamicUser= setting in unit files.)
The three modules should be used in the following order:
To make use of these NSS modules, please add them to the "hosts:",
"passwd:" and "group:" lines in /etc/nsswitch.conf. The "resolve"
module should replace the glibc "dns" module in this file (and don't
worry, it chain-loads the "dns" module if it can't talk to resolved).
The four modules should be used in the following order:
passwd: compat mymachines systemd
group: compat mymachines systemd
hosts: files mymachines resolve myhostname
SYSV INIT.D SCRIPTS:

105
TODO
View File

@ -23,54 +23,96 @@ External:
Janitorial Clean-ups:
* code cleanup: retire FOREACH_WORD_QUOTED, port to extract_first_word() loops instead
* code cleanup: retire FOREACH_WORD_QUOTED, port to extract_first_word() loops instead.
For example, most conf parsing callbacks should use it.
* replace manual readdir() loops with FOREACH_DIRENT or FOREACH_DIRENT_ALL
* Get rid of the last strerror() invocations in favour of %m and strerror_r()
* Rearrange tests so that the various test-xyz.c match a specific src/basic/xyz.c again
Features:
* drop nss-myhostname in favour of nss-resolve?
* drop internal dlopen() based nss-dns fallback in nss-resolve, and rely on the
external nsswitch.conf based one
* add a percentage syntax for TimeoutStopSec=, e.g. TimeoutStopSec=150%, and
then use that for the setting used in user@.service. It should be understood
relative to the configured default value.
* on cgroupsv2 add DelegateControllers=, to pick the precise cgroup controllers to delegate
* in networkd, when matching device types, fix up DEVTYPE rubbish the kernel passes to us
* enable LockMLOCK to take a percentage value relative to physical memory
* switch to ProtectSystem=strict for all our long-running services where that's possible
* If RootDirectory= is used, mount /proc, /sys, /dev into it, if not mounted yet
* Permit masking specific netlink APIs with RestrictAddressFamily=
* nspawn: start UID allocation loop from hash of container name
* nspawn: support that /proc, /sys/, /dev are pre-mounted
* define gpt header bits to select volatility mode
* nspawn: mount loopback filesystems with "discard"
* ProtectKernelLogs= (drops CAP_SYSLOG, add seccomp for syslog() syscall, and DeviceAllow to /dev/kmsg) in service files
* ProtectClock= (drops CAP_SYS_TIMES, adds seecomp filters for settimeofday, adjtimex), sets DeviceAllow o /dev/rtc
* ProtectMount= (drop mount/umount/pivot_root from seccomp, disallow fuse via DeviceAllow, imply Mountflags=slave)
* ProtectKernelModules= (drops CAP_SYS_MODULE and filters the kmod syscalls)
* ProtectDevices= should also take iopl/ioperm/pciaccess away
* ProtectTracing= (drops CAP_SYS_PTRACE, blocks ptrace syscall, makes /sys/kernel/tracing go away)
* ProtectMount= (drop mount/umount/pivot_root from seccomp, disallow fuse via DeviceAllow, imply Mountflags=slave)
* ProtectKeyRing= to take keyring calls away
* PrivateUsers= which maps the all user ids except root and the one specified
in User= to nobody
* RemoveKeyRing= to remove all keyring entries of the specified user
* Add AllocateUser= for allowing dynamic user ids per-service
* ProtectReboot= that masks reboot() and kexec_load() syscalls, prohibits kill
on PID 1 with the relevant signals, and makes relevant files in /sys and
/proc (such as the sysrq stuff) unavailable
* DeviceAllow= should also generate seccomp filters for mknod()
* Add DataDirectory=, CacheDirectory= and LogDirectory= to match
RuntimeDirectory=, and create it as necessary when starting a service, owned by the right user.
* Add BindDirectory= for allowing arbitrary, private bind mounts for services
* Beef up RootDirectory= to use namespacing/bind mounts as soon as fs
namespaces are enabled by the service
* Add RootImage= for mounting a disk image or file as root directory
* RestrictNamespaces= or so in services (taking away the ability to create namespaces, with setns, unshare, clone)
* nspawn: make /proc/sys/net writable?
* make sure the ratelimit object can deal with USEC_INFINITY as way to turn off things
* journalctl: make sure -f ends when the container indicated by -M terminates
* mount: automatically search for "main" partition of an image has multiple
partitions
* expose the "privileged" flag of ExecCommand on the bus, and open it up to
transient units
* in nss-systemd, if we run inside of RootDirectory= with PrivateUsers= set,
find a way to map the User=/Group= of the service to the right name. This way
a user/group for a service only has to exist on the host for the right
mapping to work.
* allow attaching additional journald log fields to cgroups
* add bus API for creating unit files in /etc, reusing the code for transient units
* add bus API to remove unit files from /etc
* add bus API to retrieve current unit file contents (i.e. implement "systemctl cat" on the bus only)
* rework fopen_temporary() to make use of open_tmpfile_linkable() (problem: the
kernel doesn't support linkat() that replaces existing files, currently)
@ -82,8 +124,6 @@ Features:
* journald: sigbus API via a signal-handler safe function that people may call
from the SIGBUS handler
* when using UTF8, ellipsize with "…" rather than "...", so that we can show more contents before truncating
* move specifier expansion from service_spawn() into load-fragment.c
* optionally, also require WATCHDOG=1 notifications during service start-up and shutdown
@ -97,8 +137,6 @@ Features:
* add systemctl stop --job-mode=triggering that follows TRIGGERED_BY deps and adds them to the same transaction
* Maybe add a way how users can "pin" units into memory, so that they are not subject to automatic GC?
* PID1: find a way how we can reload unit file configuration for
specific units only, without reloading the whole of systemd
@ -114,8 +152,6 @@ Features:
* PID 1 should send out sd_notify("WATCHDOG=1") messages (for usage in the --user mode, and when run via nspawn)
* consider throwing a warning if a service declares it wants to be "Before=" a .device unit.
* there's probably something wrong with having user mounts below /sys,
as we have for debugfs. for exmaple, src/core/mount.c handles mounts
prefixed with /sys generally special.
@ -153,7 +189,7 @@ Features:
* implement a per-service firewall based on net_cls
* Port various tools to make use of verbs.[ch], where applicable: busctl,
bootctl, coredumpctl, hostnamectl, localectl, systemd-analyze, timedatectl
coredumpctl, hostnamectl, localectl, systemd-analyze, timedatectl
* hostnamectl: show root image uuid
@ -170,7 +206,7 @@ Features:
* synchronize console access with BSD locks:
http://lists.freedesktop.org/archives/systemd-devel/2014-October/024582.html
* as soon as we have kdbus, and sender timestamps, revisit coalescing multiple parallel daemon reloads:
* as soon as we have sender timestamps, revisit coalescing multiple parallel daemon reloads:
http://lists.freedesktop.org/archives/systemd-devel/2014-December/025862.html
* in systemctl list-unit-files: show the install value the presets would suggest for a service in a third column
@ -210,10 +246,6 @@ Features:
* timesyncd: add ugly bus calls to set NTP servers per-interface, for usage by NM
* extract_many_words() should probably be used by a lot of code that
currently uses FOREACH_WORD and friends. For example, most conf
parsing callbacks should use it.
* merge ~/.local/share and ~/.local/lib into one similar /usr/lib and /usr/share....
* systemd.show_status= should probably have a mode where only failed
@ -270,9 +302,6 @@ Features:
* MessageQueueMessageSize= (and suchlike) should use parse_iec_size().
* "busctl status" works only as root on dbus1, since we cannot read
/proc/$PID/exe
* implement Distribute= in socket units to allow running multiple
service instances processing the listening socket, and open this up
for ReusePort=
@ -283,8 +312,6 @@ Features:
and passes this back to PID1 via SCM_RIGHTS. This also could be used
to allow Chown/chgrp on sockets without requiring NSS in PID 1.
* New service property: maximum CPU runtime for a service
* introduce bus call FreezeUnit(s, b), as well as "systemctl freeze
$UNIT" and "systemctl thaw $UNIT" as wrappers around this. The calls
should SIGSTOP all unit processes in a loop until all processes of
@ -321,12 +348,10 @@ Features:
error. Currently, we just ignore it and read the unit from the search
path anyway.
* refuse boot if /etc/os-release is missing or /etc/machine-id cannot be set up
* refuse boot if /usr/lib/os-release is missing or /etc/machine-id cannot be set up
* btrfs raid assembly: some .device jobs stay stuck in the queue
* make sure gdm does not use multi-user-x but the new default X configuration file, and then remove multi-user-x from systemd
* man: the documentation of Restart= currently is very misleading and suggests the tools from ExecStartPre= might get restarted.
* load .d/*.conf dropins for device units
@ -474,7 +499,6 @@ Features:
message that works, but alraedy after a short tiemout
- check if we can make journalctl by default use --follow mode inside of less if called without args?
- maybe add API to send pairs of iovecs via sd_journal_send
- journal: when writing journal auto-rotate if time jumps backwards
- journal: add a setgid "systemd-journal" utility to invoke from libsystemd-journal, which passes fds via STDOUT and does PK access
- journactl: support negative filtering, i.e. FOOBAR!="waldo",
and !FOOBAR for events without FOOBAR.
@ -583,9 +607,6 @@ Features:
* currently x-systemd.timeout is lost in the initrd, since crypttab is copied into dracut, but fstab is not
* nspawn:
- to allow "linking" of nspawn containers, extend --network-bridge= so
that it can dynamically create bridge interfaces that are refcounted
by the containers on them. For each group of containers to link together
- nspawn -x should support ephemeral instances of gpt images
- emulate /dev/kmsg using CUSE and turn off the syslog syscall
with seccomp. That should provide us with a useful log buffer that
@ -594,8 +615,6 @@ Features:
- as soon as networkd has a bus interface, hook up --network-interface=,
--network-bridge= with networkd, to trigger netdev creation should an
interface be missing
- don't copy /etc/resolv.conf from host into container unless we are in
shared-network mode
- a nice way to boot up without machine id set, so that it is set at boot
automatically for supporting --ephemeral. Maybe hash the host machine id
together with the machine name to generate the machine id for the container
@ -612,8 +631,6 @@ Features:
is used
* machined:
- "machinectl list" should probably show columns for OS version and IP
addresses
- add an API so that libvirt-lxc can inform us about network interfaces being
removed or added to an existing machine
- "machinectl migrate" or similar to copy a container from or to a
@ -663,7 +680,7 @@ Features:
* coredump:
- save coredump in Windows/Mozilla minidump format
- move PID 1 segfaults to /var/lib/systemd/coredump?
- when truncating coredumps, also log the full size that the process had, and make a metadata field so we can report truncated coredumps
* support crash reporting operation modes (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting)
@ -730,7 +747,6 @@ Features:
- GC unreferenced jobs (such as .device jobs)
- move PAM code into its own binary
- when we automatically restart a service, ensure we restart its rdeps, too.
- for services: do not set $HOME in services unless requested
- hide PAM options in fragment parser when compile time disabled
- Support --test based on current system state
- 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().
@ -780,7 +796,6 @@ Features:
- add reduced [Link] support to .network files
- add Scope= parsing option for [Network]
- properly handle routerless dhcp leases
- add more attribute support for SIT tunnel
- work with non-Ethernet devices
- add support for more bond options
- dhcp: do we allow configuring dhcp routes on interfaces that are not the one we got the dhcp info from?
@ -797,7 +812,6 @@ Features:
support Name=foo*|bar*|baz ?
- duplicate address check for static IPs (like ARPCHECK in network-scripts)
- allow DUID/IAID to be customized, see issue #394.
- support configuration option for TSO (tcp segmentation offload)
- whenever uplink info changes, make DHCP server send out FORCERENEW
* networkd-wait-online:
@ -819,6 +833,7 @@ Features:
or interface down
- some servers don't do rapid commit without a filled in IA_NA, verify
this behavior
- RouteTable= ?
External:

View File

@ -17,6 +17,14 @@
set -e
verb="$1"
case "$verb" in
"") ;;
[cgals]) shift ;;
*) echo "Unexpected argument: $verb" >&2; exit 1 ;;
esac
oldpwd=$(pwd)
topdir=$(dirname $0)
cd $topdir
@ -52,21 +60,27 @@ args="$args \
"
fi
args="$args $@"
cd $oldpwd
if [ "x$1" = "xc" ]; then
if [ "$verb" = "c" ]; then
set -x
$topdir/configure CFLAGS='-g -O0 -ftrapv' $args
make clean
elif [ "x$1" = "xg" ]; then
make clean >/dev/null
elif [ "$verb" = "g" ]; then
set -x
$topdir/configure CFLAGS='-g -Og -ftrapv' $args
make clean
elif [ "x$1" = "xa" ]; then
make clean >/dev/null
elif [ "$verb" = "a" ]; then
set -x
$topdir/configure CFLAGS='-g -O0 -Wsuggest-attribute=pure -Wsuggest-attribute=const -ftrapv' $args
make clean
elif [ "x$1" = "xl" ]; then
make clean >/dev/null
elif [ "$verb" = "l" ]; then
set -x
$topdir/configure CC=clang CFLAGS='-g -O0 -ftrapv' $args
make clean
elif [ "x$1" = "xs" ]; then
make clean >/dev/null
elif [ "$verb" = "s" ]; then
set -x
scan-build $topdir/configure CFLAGS='-std=gnu99 -g -O0 -ftrapv' $args
scan-build make
else

View File

@ -88,6 +88,17 @@ Process @COREDUMP_PID@ (@COREDUMP_COMM@) crashed and dumped core.
This usually indicates a programming error in the crashing program and
should be reported to its vendor as a bug.
-- 5aadd8e954dc4b1a8c954d63fd9e1137
Subject: Core file was truncated to @SIZE_LIMIT@ bytes.
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:coredump.conf(5)
The process had more memory mapped than the configured maximum for processing
and storage by systemd-coredump(8). Only the first @SIZE_LIMIT@ bytes were
saved. This core might still be usable, but various tools like gdb(1) will warn
about the file being truncated.
-- fc2e22bc6ee647b6b90729ab34a250b1 de
Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM) generiert
Defined-By: systemd

View File

@ -25,6 +25,7 @@
#
# Translator :
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2015.
# Dongsu Park <dpark@posteo.net>, 2016.
-- f77379a8490b408bbe5f6940505a777b
Subject: 저널 시작
@ -42,6 +43,24 @@ Support: %SUPPORT_URL%
시스템 저널 프로세스를 껐고 현재 활성화 중인 저널 파일을 모두
닫았습니다.
-- ec387f577b844b8fa948f33cad9a75e6
Subject: 저널이 디스크 공간을 점유중
Defined-By: systemd
Support: %SUPPORT_URL%
저널 @JOURNAL_NAME@ (@JOURNAL_PATH@)이 현재 @CURRENT_USE_PRETTY@
만큼의 용량을 사용하고 있습니다. 최대 허용 용량은
@MAX_USE_PRETTY@입니다. 최소한 @DISK_KEEP_FREE_PRETTY@의 빈공간을
남겨둡니다. (현재 디스크 전체 용량은 @DISK_AVAILABLE_PRETTY@)
따라서 실제 사용 최대 한도는 @LIMIT_PRETTY@으로 설정되며,
@AVAILABLE_PRETTY@ 만큼의 용량이 계속 비어있습니다.
저널이 차지하는 디스크 공간을 제어하기 위해서는
/etc/systemd/journald.conf 의 SystemMaxUse=, SystemKeepFree=,
SystemMaxFileSize=, RuntimeMaxUse=, RuntimeKeepFree=,
RuntimeMaxFileSize= 변수를 설정합니다. 자세한 내용은
journald.conf(5)을 살펴보십시오.
-- a596d6fe7bfa4994828e72309e95d61e
Subject: 서비스의 메시지를 거절함
Defined-By: systemd
@ -56,7 +75,7 @@ Documentation: man:journald.conf(5)
메시지 거절 제어 제한 값은 /etc/systemd/journald.conf 의
RateLimitIntervalSec= 변수와 RateLimitBurst= 변수로 설정합니다.
자세한 내용은 ournald.conf(5)를 살펴보십시오.
자세한 내용은 journald.conf(5)를 살펴보십시오.
-- e9bf28e6e834481bb6f48f548ad13606
Subject: 저널 메시지 놓침
@ -246,7 +265,7 @@ Support: %SUPPORT_URL%
두번째 필드 또는 systemd 유닛 파일의 Where= 필드) 비어있지 않습니다.
마운트 과정에 방해가 되진 않지만 이전에 이 디렉터리에 존재하는 파일에
접근할 수 없게 됩니다. 중복으로 마운트한 파일을 보려면, 근본 파일
시스템의 다음 위치에 직접 마운트하십시오.
시스템을 별도 위치에 직접 마운트하십시오.
-- 24d8d4452573402496068381a6312df2
Subject: 가상 머신 또는 컨테이너 시작
@ -262,3 +281,41 @@ Defined-By: systemd
Support: %SUPPORT_URL%
@LEADER@ 프로세스 ID로 동작하는 @NAME@ 가상 머신을 껐습니다.
-- 36db2dfa5a9045e1bd4af5f93e1cf057
Subject: 서버 미지원으로 인하여 DNSSEC 모드 종료
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8) resolved.conf(5)
해당 DNS 서버가 DNSSEC을 지원하지 않는다는 것을 리졸버 서비스
(systemd-resolved.service)가 인식했습니다. 따라서 DNSSEC 검증 기능도
꺼집니다.
이 이벤트는 resolved.conf 파일에 DNSSEC=allow-downgrade가 설정되었고, 해당
DNS 서버가 DNSSEC과 비호환일 경우에만 발생합니다. 이 모드를 켤 경우에는
DNSSEC 다운그레이드 공격을 허용할수 있다는 점에 주의하세요. 이는 공격자
역시 다운그레이드가 발생한 통신 채널에 DNS 응답 메시지를 끼워넣는 방식으로
DNSSEC 검증 기능을 꺼버릴수 있기 때문입니다.
이 이벤트가 의미하는 것은, DNS 서버가 실제로 DNSSEC과 비호환이거나, 또는
공격자가 위와 같은 다운그레이드 공격을 수행하는데 성공했다는 뜻입니다.
-- 1675d7f172174098b1108bf8c7dc8f5d
Subject: DNSSEC 검증 실패
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8)
DNS 요청 또는 리소스 레코드가 DNSSEC 검증에 실패했습니다. 이것은 보통
해당 통신 채널이 조작되었다는 뜻입니다.
-- 4d4408cfd0d144859184d1e65d7c8a65
Subject: DNSSEC 신뢰성 시작점 취소
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8)
DNSSEC 신뢰성 시작점이 취소되었습니다. 새로운 신뢰성 시작점이 설정되거나,
또는 업데이트된 DNSSEC 신뢰성 시작점을 제공하기 위해서 운영체제를 업데이트
해야 합니다.

View File

@ -1,7 +1,7 @@
# This file is part of systemd.
#
# Copyright 2012 Lennart Poettering
# Copyright 2014, 2015, 2016 Piotr Drąg
# Copyright 2014-2016 Piotr Drąg
#
# 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
@ -29,15 +29,15 @@ Subject: Uruchomiono dziennik
Defined-By: systemd
Support: %SUPPORT_URL%
Systemowy proces dziennika został uruchomiony, otworzył pliki dziennika do
zapisu i jest gotowy do przetwarzania żądań.
Systemowy proces dziennika został uruchomiony, otworzył pliki dziennika
do zapisu i jest gotowy do przetwarzania żądań.
-- d93fb3c9c24d451a97cea615ce59c00b
Subject: Zatrzymano dziennik
Defined-By: systemd
Support: %SUPPORT_URL%
Systemowy proces dziennika został wyłączony i zamknął wszystkie obecnie
Systemowy proces dziennika został wyłączony i zamknął wszystkie obecnie
aktywne pliki dziennika.
-- ec387f577b844b8fa948f33cad9a75e6
@ -48,28 +48,28 @@ Support: %SUPPORT_URL%
@JOURNAL_NAME@ (@JOURNAL_PATH@) obecnie używa @CURRENT_USE_PRETTY@.
Maksymalnie może używać @MAX_USE_PRETTY@.
Zostawianie co najmniej @DISK_KEEP_FREE_PRETTY@ wolnego (z obecnie dostępnego @DISK_AVAILABLE_PRETTY@ miejsca na dysku).
Wymuszone ograniczenie użycia wynosi więc @LIMIT_PRETTY@, z czego @AVAILABLE_PRETTY@ jest nadal dostępne.
Wymuszone ograniczenie użycia wynosi więc @LIMIT_PRETTY@, z czego @AVAILABLE_PRETTY@ jest nadal dostępne.
Ograniczenia kontrolujące ilość miejsca na dysku używanego przez dziennik
można konfigurować za pomocą ustawień SystemMaxUse=, SystemKeepFree=,
SystemMaxFileSize=, RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize=
w pliku /etc/systemd/journald.conf. Strona journald.conf(5) zawiera więcej
w pliku /etc/systemd/journald.conf. Strona journald.conf(5) zawiera więcej
informacji.
-- a596d6fe7bfa4994828e72309e95d61e
Subject: Ograniczono komunikaty z usługi
Subject: Ograniczono komunikaty z usługi
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:journald.conf(5)
Usługa zapisała za dużo komunikatów w określonym czasie. Komunikaty z usługi
zostały pominięte.
Usługa zapisała za dużo komunikatów w określonym czasie.
Komunikaty z usługi zostały pominięte.
Proszę zauważyć, że tylko komunikaty z danej usługi zostały pominięte. Nie ma
to wpływu na komunikaty innych usług.
Proszę zauważyć, że tylko komunikaty z danej usługi zostały pominięte.
Nie ma to wpływu na komunikaty innych usług.
Ograniczenia kontrolujące pomijanie komunikatów mogą być konfigurowane
za pomocą opcji RateLimitIntervalSec= i RateLimitBurst= w pliku
za pomocą opcji RateLimitIntervalSec= i RateLimitBurst= w pliku
/etc/systemd/journald.conf. Strona journald.conf(5) zawiera więcej informacji.
-- e9bf28e6e834481bb6f48f548ad13606
@ -86,18 +86,29 @@ Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:core(5)
Proces @COREDUMP_PID@ (@COREDUMP_COMM@) uległ awarii i zrzucił plik core.
Proces @COREDUMP_PID@ (@COREDUMP_COMM@) uległ awarii i zrzucił plik core.
Zwykle wskazuje to na błąd programistyczny w danym programie i powinno zostać
Zwykle wskazuje to na błąd programistyczny w danym programie i powinno zostać
zgłoszone jego producentowi jako błąd.
-- 5aadd8e954dc4b1a8c954d63fd9e1137
Subject: Plik core został skrócony do @SIZE_LIMIT@ B.
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:coredump.conf(5)
Proces miał więcej zmapowanej pamięci niż maksimum dla przetwarzania i miejsca
skonfigurowane przez systemd-coredump(8). Tylko pierwsze @SIZE_LIMIT@ B
zostało zapisanych. Ten plik core może nadal być używalny, ale narzędzia typu
gdb(1) będą ostrzegały o skróceniu pliku.
-- 8d45620c1a4348dbb17410da57c60c66
Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat
Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika
Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika
@USER_ID@.
Proces prowadzący sesji: @LEADER@.
@ -108,7 +119,7 @@ Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat
Sesja o identyfikatorze @SESSION_ID@ została zakończona.
Sesja o identyfikatorze @SESSION_ID@ została zakończona.
-- fcbefc5da23d428093f97c82a9290f7b
Subject: Dostępne jest nowe stanowisko @SEAT_ID@
@ -116,7 +127,7 @@ Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat
Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
-- e7852bfe46784ed0accde04bc864c2d5
Subject: Usunięto stanowisko @SEAT_ID@
@ -124,7 +135,7 @@ Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat
Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne.
Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne.
-- c7a787079b354eaaa9e77b371893cd27
Subject: Zmiana czasu
@ -175,8 +186,8 @@ Subject: Zainicjowano wyłączenie systemu
Defined-By: systemd
Support: %SUPPORT_URL%
Zainicjowano wyłączenie systemd. Wyłączenie zostało rozpoczęte i wszystkie
usługi systemowe zostały zakończone, a wszystkie systemy plików odmontowane.
Zainicjowano wyłączenie systemd. Wyłączenie zostało rozpoczęte i wszystkie
usługi systemowe zostały zakończone, a wszystkie systemy plików odmontowane.
-- 7d4958e842da4a758f6c1cdc7b36dcc5
Subject: Rozpoczęto uruchamianie jednostki @UNIT@
@ -238,7 +249,7 @@ Subject: Nie można wykonać procesu @EXECUTABLE@
Defined-By: systemd
Support: %SUPPORT_URL%
Proces @EXECUTABLE@ nie mógł zostać wykonany i się nie powiódł.
Proces @EXECUTABLE@ nie mógł zostać wykonany i się nie powiódł.
Numer błędu zwrócony przez ten proces: @ERRNO@.
@ -249,25 +260,25 @@ Support: %SUPPORT_URL%
Jeden lub więcej komunikatów nie może zostać przekazanych do usługi syslog
uruchomionej obok journald. Zwykle oznacza to, że implementacja syslog nie
jest w stanie nadążyć za prędkością kolejki komunikatów.
jest w stanie nadążyć za prędkością kolejki komunikatów.
-- 1dee0369c7fc4736b7099b38ecb46ee7
Subject: Punkt montowania nie jest pusty
Defined-By: systemd
Support: %SUPPORT_URL%
Katalog @WHERE@ został podany jako punkt montowania (drugie pole w pliku
/etc/fstab lub pole Where= w pliku jednostki systemd) i nie jest pusty. Nie
wpływa to na montowanie, ale wcześniej istniejące pliki w tym katalogu stają
Katalog @WHERE@ został podany jako punkt montowania (drugie pole w pliku
/etc/fstab lub pole Where= w pliku jednostki systemd) i nie jest pusty. Nie
wpływa to na montowanie, ale wcześniej istniejące pliki w tym katalogu stają
się niedostępne. Aby zobaczyć te pliki, proszę ręcznie zamontować system
plików w innym położeniu.
plików w innym położeniu.
-- 24d8d4452573402496068381a6312df2
Subject: Uruchomiono maszynę wirtualną lub kontener
Defined-By: systemd
Support: %SUPPORT_URL%
Maszyna wirtualna @NAME@ (PID prowadzący @LEADER@) została uruchomiona i jest
Maszyna wirtualna @NAME@ (PID prowadzący @LEADER@) została uruchomiona i jest
gotowa do użycia.
-- 58432bd3bace477cb514b56381b8a758
@ -284,15 +295,15 @@ Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8) resolved.conf(5)
Usługa resolver (systemd-resolved.service) wykryła, że skonfigurowany serwer
DNS nie obsługuje DNSSEC, w wyniku czego walidacja DNSSEC została wyłączona.
DNS nie obsługuje DNSSEC, w wyniku czego walidacja DNSSEC została wyłączona.
To zdarzenie będzie miało miejsce, jeśli skonfigurowano DNSSEC=allow-downgrade
w pliku resolved.conf, a skonfigurowany serwer DNS jest niezgodny z DNSSEC.
w pliku resolved.conf, a skonfigurowany serwer DNS jest niezgodny z DNSSEC.
Proszę zauważyć, że używanie tego trybu umożliwia ataki wyłączające DNSSEC,
ponieważ atakujący będzie mógł wyłączyć walidację DNSSEC na komputerze przez
umieszczenie odpowiednich odpowiedzi DNS w kanale komunikacji.
umieszczenie odpowiednich odpowiedzi DNS w kanale komunikacji.
To zdarzenie może wskazywać, że serwer DNS jest faktycznie niezgodny z DNSSEC,
To zdarzenie może wskazywać, że serwer DNS jest faktycznie niezgodny z DNSSEC,
albo że atakującemu udało się upozorować atak tego typu.
-- 1675d7f172174098b1108bf8c7dc8f5d

View File

@ -0,0 +1,15 @@
@@
expression p, q;
@@
- free(p);
- p = q;
- q = NULL;
- return 0;
+ return free_and_replace(p, q);
@@
expression p, q;
@@
- free(p);
- p = q;
- q = NULL;
+ free_and_replace(p, q);

View File

@ -0,0 +1,6 @@
@@
expression p;
@@
- free(p);
- return NULL;
+ return mfree(p);

View File

@ -20,7 +20,7 @@
AC_PREREQ([2.64])
AC_INIT([systemd],
[231],
[232],
[http://github.com/systemd/systemd/issues],
[systemd],
[http://www.freedesktop.org/wiki/Software/systemd])
@ -211,9 +211,12 @@ AS_CASE([$CC], [*clang*],
-Wno-gnu-variable-sized-type-not-at-end \
])])
AC_ARG_ENABLE([lto], [AS_HELP_STRING([--disable-lto], [disable -flto])],
[], [enable_lto=yes])
AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
[CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
-flto])],
[AS_IF([test "x$enable_lto" = "xyes"],
[CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-flto])],
[AC_MSG_RESULT([disabling -flto as requested])])],
[AC_MSG_RESULT([skipping -flto, optimization not enabled])])
AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
@ -456,7 +459,7 @@ AM_CONDITIONAL(HAVE_LIBMOUNT, [test "$have_libmount" = "yes"])
have_seccomp=no
AC_ARG_ENABLE(seccomp, AS_HELP_STRING([--disable-seccomp], [Disable optional SECCOMP support]))
if test "x$enable_seccomp" != "xno"; then
PKG_CHECK_MODULES(SECCOMP, [libseccomp >= 1.0.0],
PKG_CHECK_MODULES(SECCOMP, [libseccomp >= 2.3.1],
[AC_DEFINE(HAVE_SECCOMP, 1, [Define if seccomp is available])
have_seccomp=yes
M4_DEFINES="$M4_DEFINES -DHAVE_SECCOMP"],
@ -553,12 +556,30 @@ AC_SUBST(CERTIFICATEROOT)
AC_ARG_WITH([support-url],
AS_HELP_STRING([--with-support-url=URL],
[Specify the supoport URL to show in catalog entries included in systemd]),
[Specify the support URL to show in catalog entries included in systemd]),
[SUPPORT_URL="$withval"],
[SUPPORT_URL=http://lists.freedesktop.org/mailman/listinfo/systemd-devel])
AC_SUBST(SUPPORT_URL)
AC_ARG_WITH([nobody-user],
AS_HELP_STRING([--with-nobody-user=NAME],
[Specify the name of the nobody user (the one with UID 65534)]),
[NOBODY_USER_NAME="$withval"],
[NOBODY_USER_NAME=nobody])
AC_SUBST(NOBODY_USER_NAME)
AC_DEFINE_UNQUOTED(NOBODY_USER_NAME, ["$NOBODY_USER_NAME"], [The name of the nobody user (the one with UID 65534)])
AC_ARG_WITH([nobody-group],
AS_HELP_STRING([--with-nobody-group=NAME],
[Specify the name of the nobody group (the one with GID 65534)]),
[NOBODY_GROUP_NAME="$withval"],
[NOBODY_GROUP_NAME=nobody])
AC_SUBST(NOBODY_GROUP_NAME)
AC_DEFINE_UNQUOTED(NOBODY_GROUP_NAME, ["$NOBODY_GROUP_NAME"], [The name of the nobody group (the one with GID 65534)])
# ------------------------------------------------------------------------------
have_xz=no
AC_ARG_ENABLE(xz, AS_HELP_STRING([--disable-xz], [Disable optional XZ support]))
@ -1199,9 +1220,9 @@ AM_CONDITIONAL(ENABLE_NETWORKD, [test "x$have_networkd" = "xyes"])
# ------------------------------------------------------------------------------
have_efi=no
AC_ARG_ENABLE(efi, AS_HELP_STRING([--disable-efi], [disable EFI support]))
AC_ARG_ENABLE(efi, AS_HELP_STRING([--disable-efi], [disable systemd-boot and bootctl (EFI support)]))
if test "x$enable_efi" != "xno"; then
AC_DEFINE(ENABLE_EFI, 1, [Define if EFI support is to be enabled])
AC_DEFINE(ENABLE_EFI, 1, [Define if systemd-boot and bootctl are to be enabled])
have_efi=yes
fi
AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"])
@ -1486,9 +1507,10 @@ AC_ARG_WITH([pamlibdir],
AX_NORMALIZE_PATH([with_pamlibdir])
AC_ARG_WITH([pamconfdir],
AS_HELP_STRING([--with-pamconfdir=DIR], [Directory for PAM configuration]),
AS_HELP_STRING([--with-pamconfdir=DIR], [Directory for PAM configuration (pass no to disable installing)]),
[],
[with_pamconfdir=${sysconfdir}/pam.d])
AM_CONDITIONAL(ENABLE_PAM_CONFIG, [test "$with_pamconfdir" != "no"])
AX_NORMALIZE_PATH([with_pamconfdir])
AC_ARG_ENABLE([split-usr],
@ -1635,7 +1657,6 @@ AC_MSG_RESULT([
nss-myhostname: ${have_myhostname}
hwdb: ${enable_hwdb}
tpm: ${have_tpm}
kdbus: ${have_kdbus}
Python: ${have_python}
man pages: ${have_manpages}
test coverage: ${have_coverage}
@ -1674,6 +1695,8 @@ AC_MSG_RESULT([
Maximum System GID: ${SYSTEM_GID_MAX}
Certificate root: ${CERTIFICATEROOT}
Support URL: ${SUPPORT_URL}
Nobody User Name: ${NOBODY_USER_NAME}
Nobody Group Name: ${NOBODY_GROUP_NAME}
CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,9 @@
acpi:3NOD*:
ID_VENDOR_FROM_DATABASE=Shenzhen three Connaught Information Technology Co., Ltd. (3nod Group)
acpi:AANT*:
ID_VENDOR_FROM_DATABASE=AAEON Technology Inc.
acpi:AAVA*:
ID_VENDOR_FROM_DATABASE=Aava Mobile Oy
@ -72,6 +75,9 @@ acpi:FRSC*:
acpi:FTSC*:
ID_VENDOR_FROM_DATABASE=FocalTech Systems Co., Ltd.
acpi:GHSW*:
ID_VENDOR_FROM_DATABASE=Green Hills Software
acpi:GOOG*:
ID_VENDOR_FROM_DATABASE=Google, Inc.
@ -126,6 +132,9 @@ acpi:LNRO*:
acpi:LNUX*:
ID_VENDOR_FROM_DATABASE=The Linux Foundation
acpi:MCHP*:
ID_VENDOR_FROM_DATABASE=Microchip Technology Inc
acpi:MIPI*:
ID_VENDOR_FROM_DATABASE=MIPI Alliance
@ -228,6 +237,9 @@ acpi:AAE*:
acpi:AAM*:
ID_VENDOR_FROM_DATABASE=Aava Mobile Oy
acpi:AAN*:
ID_VENDOR_FROM_DATABASE=AAEON Technology Inc.
acpi:AAT*:
ID_VENDOR_FROM_DATABASE=Ann Arbor Technologies
@ -879,6 +891,9 @@ acpi:AXB*:
acpi:AXC*:
ID_VENDOR_FROM_DATABASE=AXIOMTEK CO., LTD.
acpi:AXE*:
ID_VENDOR_FROM_DATABASE=Axell Corporation
acpi:AXE*:
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -3684,6 +3699,9 @@ acpi:KOW*:
acpi:KPC*:
ID_VENDOR_FROM_DATABASE=King Phoenix Company
acpi:KPT*:
ID_VENDOR_FROM_DATABASE=TPK Holding Co., Ltd
acpi:KRL*:
ID_VENDOR_FROM_DATABASE=Krell Industries Inc.
@ -6420,6 +6438,9 @@ acpi:TDC*:
acpi:TDD*:
ID_VENDOR_FROM_DATABASE=Tandberg Data Display AS
acpi:TDG*:
ID_VENDOR_FROM_DATABASE=Six15 Technologies
acpi:TDK*:
ID_VENDOR_FROM_DATABASE=TDK USA Corporation
@ -6858,6 +6879,9 @@ acpi:UMG*:
acpi:UMM*:
ID_VENDOR_FROM_DATABASE=Universal Multimedia
acpi:UMT*:
ID_VENDOR_FROM_DATABASE=UltiMachine
acpi:UNA*:
ID_VENDOR_FROM_DATABASE=Unisys DSD

View File

@ -424,7 +424,7 @@ bluetooth:v008A*
ID_VENDOR_FROM_DATABASE=Jawbone
bluetooth:v008B*
ID_VENDOR_FROM_DATABASE=Topcorn Positioning Systems, LLC
ID_VENDOR_FROM_DATABASE=Topcon Positioning Systems, LLC
bluetooth:v008C*
ID_VENDOR_FROM_DATABASE=Gimbal Inc. (formerly Qualcomm Labs, Inc. and Qualcomm Retail Solutions, Inc.)
@ -1231,7 +1231,7 @@ bluetooth:v0197*
ID_VENDOR_FROM_DATABASE=WiSilica Inc
bluetooth:v0198*
ID_VENDOR_FROM_DATABASE=Vengit Limited
ID_VENDOR_FROM_DATABASE=VENGIT Korlátolt Felelősségű Társaság
bluetooth:v0199*
ID_VENDOR_FROM_DATABASE=SALTO SYSTEMS S.L.
@ -2828,3 +2828,294 @@ bluetooth:v03AB*
bluetooth:v03AC*
ID_VENDOR_FROM_DATABASE=Smablo LTD
bluetooth:v03AD*
ID_VENDOR_FROM_DATABASE=XiQ
bluetooth:v03AE*
ID_VENDOR_FROM_DATABASE=Allswell Inc.
bluetooth:v03AF*
ID_VENDOR_FROM_DATABASE=Comm-N-Sense Corp DBA Verigo
bluetooth:v03B0*
ID_VENDOR_FROM_DATABASE=VIBRADORM GmbH
bluetooth:v03B1*
ID_VENDOR_FROM_DATABASE=Otodata Wireless Network Inc.
bluetooth:v03B2*
ID_VENDOR_FROM_DATABASE=Propagation Systems Limited
bluetooth:v03B3*
ID_VENDOR_FROM_DATABASE=Midwest Instruments & Controls
bluetooth:v03B4*
ID_VENDOR_FROM_DATABASE=Alpha Nodus, inc.
bluetooth:v03B5*
ID_VENDOR_FROM_DATABASE=petPOMM, Inc
bluetooth:v03B6*
ID_VENDOR_FROM_DATABASE=Mattel
bluetooth:v03B7*
ID_VENDOR_FROM_DATABASE=Airbly Inc.
bluetooth:v03B8*
ID_VENDOR_FROM_DATABASE=A-Safe Limited
bluetooth:v03B9*
ID_VENDOR_FROM_DATABASE=FREDERIQUE CONSTANT SA
bluetooth:v03BA*
ID_VENDOR_FROM_DATABASE=Maxscend Microelectronics Company Limited
bluetooth:v03BB*
ID_VENDOR_FROM_DATABASE=Abbott Diabetes Care
bluetooth:v03BC*
ID_VENDOR_FROM_DATABASE=ASB Bank Ltd
bluetooth:v03BD*
ID_VENDOR_FROM_DATABASE=amadas
bluetooth:v03BE*
ID_VENDOR_FROM_DATABASE=Applied Science, Inc.
bluetooth:v03BF*
ID_VENDOR_FROM_DATABASE=iLumi Solutions Inc.
bluetooth:v03C0*
ID_VENDOR_FROM_DATABASE=Arch Systems Inc.
bluetooth:v03C1*
ID_VENDOR_FROM_DATABASE=Ember Technologies, Inc.
bluetooth:v03C2*
ID_VENDOR_FROM_DATABASE=Snapchat Inc
bluetooth:v03C3*
ID_VENDOR_FROM_DATABASE=Casambi Technologies Oy
bluetooth:v03C4*
ID_VENDOR_FROM_DATABASE=Pico Technology Inc.
bluetooth:v03C5*
ID_VENDOR_FROM_DATABASE=St. Jude Medical, Inc.
bluetooth:v03C6*
ID_VENDOR_FROM_DATABASE=Intricon
bluetooth:v03C7*
ID_VENDOR_FROM_DATABASE=Structural Health Systems, Inc.
bluetooth:v03C8*
ID_VENDOR_FROM_DATABASE=Avvel International
bluetooth:v03C9*
ID_VENDOR_FROM_DATABASE=Gallagher Group
bluetooth:v03CA*
ID_VENDOR_FROM_DATABASE=In2things Automation Pvt. Ltd.
bluetooth:v03CB*
ID_VENDOR_FROM_DATABASE=SYSDEV Srl
bluetooth:v03CC*
ID_VENDOR_FROM_DATABASE=Vonkil Technologies Ltd
bluetooth:v03CD*
ID_VENDOR_FROM_DATABASE=Wynd Technologies, Inc.
bluetooth:v03CE*
ID_VENDOR_FROM_DATABASE=CONTRINEX S.A.
bluetooth:v03CF*
ID_VENDOR_FROM_DATABASE=MIRA, Inc.
bluetooth:v03D0*
ID_VENDOR_FROM_DATABASE=Watteam Ltd
bluetooth:v03D1*
ID_VENDOR_FROM_DATABASE=Density Inc.
bluetooth:v03D2*
ID_VENDOR_FROM_DATABASE=IOT Pot India Private Limited
bluetooth:v03D3*
ID_VENDOR_FROM_DATABASE=Sigma Connectivity AB
bluetooth:v03D4*
ID_VENDOR_FROM_DATABASE=PEG PEREGO SPA
bluetooth:v03D5*
ID_VENDOR_FROM_DATABASE=Wyzelink Systems Inc.
bluetooth:v03D6*
ID_VENDOR_FROM_DATABASE=Yota Devices LTD
bluetooth:v03D7*
ID_VENDOR_FROM_DATABASE=FINSECUR
bluetooth:v03D8*
ID_VENDOR_FROM_DATABASE=Zen-Me Labs Ltd
bluetooth:v03D9*
ID_VENDOR_FROM_DATABASE=3IWare Co., Ltd.
bluetooth:v03DA*
ID_VENDOR_FROM_DATABASE=EnOcean GmbH
bluetooth:v03DB*
ID_VENDOR_FROM_DATABASE=Instabeat, Inc
bluetooth:v03DC*
ID_VENDOR_FROM_DATABASE=Nima Labs
bluetooth:v03DD*
ID_VENDOR_FROM_DATABASE=Andreas Stihl AG & Co. KG
bluetooth:v03DE*
ID_VENDOR_FROM_DATABASE=Nathan Rhoades LLC
bluetooth:v03DF*
ID_VENDOR_FROM_DATABASE=Grob Technologies, LLC
bluetooth:v03E0*
ID_VENDOR_FROM_DATABASE=Actions (Zhuhai) Technology Co., Limited
bluetooth:v03E1*
ID_VENDOR_FROM_DATABASE=SPD Development Company Ltd
bluetooth:v03E2*
ID_VENDOR_FROM_DATABASE=Sensoan Oy
bluetooth:v03E3*
ID_VENDOR_FROM_DATABASE=Qualcomm Life Inc
bluetooth:v03E4*
ID_VENDOR_FROM_DATABASE=Chip-ing AG
bluetooth:v03E5*
ID_VENDOR_FROM_DATABASE=ffly4u
bluetooth:v03E6*
ID_VENDOR_FROM_DATABASE=IoT Instruments Oy
bluetooth:v03E7*
ID_VENDOR_FROM_DATABASE=TRUE Fitness Technology
bluetooth:v03E8*
ID_VENDOR_FROM_DATABASE=Reiner Kartengeraete GmbH & Co. KG.
bluetooth:v03E9*
ID_VENDOR_FROM_DATABASE=SHENZHEN LEMONJOY TECHNOLOGY CO., LTD.
bluetooth:v03EA*
ID_VENDOR_FROM_DATABASE=Hello Inc.
bluetooth:v03EB*
ID_VENDOR_FROM_DATABASE=Evollve Inc.
bluetooth:v03EC*
ID_VENDOR_FROM_DATABASE=Jigowatts Inc.
bluetooth:v03ED*
ID_VENDOR_FROM_DATABASE=BASIC MICRO.COM,INC.
bluetooth:v03EE*
ID_VENDOR_FROM_DATABASE=CUBE TECHNOLOGIES
bluetooth:v03EF*
ID_VENDOR_FROM_DATABASE=foolography GmbH
bluetooth:v03F0*
ID_VENDOR_FROM_DATABASE=CLINK
bluetooth:v03F1*
ID_VENDOR_FROM_DATABASE=Hestan Smart Cooking Inc.
bluetooth:v03F2*
ID_VENDOR_FROM_DATABASE=WindowMaster A/S
bluetooth:v03F3*
ID_VENDOR_FROM_DATABASE=Flowscape AB
bluetooth:v03F4*
ID_VENDOR_FROM_DATABASE=PAL Technologies Ltd
bluetooth:v03F5*
ID_VENDOR_FROM_DATABASE=WHERE, Inc.
bluetooth:v03F6*
ID_VENDOR_FROM_DATABASE=Iton Technology Corp.
bluetooth:v03F7*
ID_VENDOR_FROM_DATABASE=Owl Labs Inc.
bluetooth:v03F8*
ID_VENDOR_FROM_DATABASE=Rockford Corp.
bluetooth:v03F9*
ID_VENDOR_FROM_DATABASE=Becon Technologies Co.,Ltd.
bluetooth:v03FA*
ID_VENDOR_FROM_DATABASE=Vyassoft Technologies Inc
bluetooth:v03FB*
ID_VENDOR_FROM_DATABASE=Nox Medical
bluetooth:v03FC*
ID_VENDOR_FROM_DATABASE=Kimberly-Clark
bluetooth:v03FD*
ID_VENDOR_FROM_DATABASE=Trimble Navigation Ltd.
bluetooth:v03FE*
ID_VENDOR_FROM_DATABASE=Littelfuse
bluetooth:v03FF*
ID_VENDOR_FROM_DATABASE=Withings
bluetooth:v0400*
ID_VENDOR_FROM_DATABASE=i-developer IT Beratung UG
bluetooth:v0401*
ID_VENDOR_FROM_DATABASE=リレーションズ株式会社
bluetooth:v0402*
ID_VENDOR_FROM_DATABASE=Sears Holdings Corporation
bluetooth:v0403*
ID_VENDOR_FROM_DATABASE=Gantner Electronic GmbH
bluetooth:v0404*
ID_VENDOR_FROM_DATABASE=Authomate Inc
bluetooth:v0405*
ID_VENDOR_FROM_DATABASE=Vertex International, Inc.
bluetooth:v0406*
ID_VENDOR_FROM_DATABASE=Airtago
bluetooth:v0407*
ID_VENDOR_FROM_DATABASE=Swiss Audio SA
bluetooth:v0408*
ID_VENDOR_FROM_DATABASE=ToGetHome Inc.
bluetooth:v0409*
ID_VENDOR_FROM_DATABASE=AXIS
bluetooth:v040A*
ID_VENDOR_FROM_DATABASE=Openmatics
bluetooth:v040B*
ID_VENDOR_FROM_DATABASE=Jana Care Inc.
bluetooth:v040C*
ID_VENDOR_FROM_DATABASE=Senix Corporation
bluetooth:v040D*
ID_VENDOR_FROM_DATABASE=NorthStar Battery Company, LLC

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -45,6 +45,8 @@
# Macbook2,1 (late 2006), single-button touchpad
evdev:input:b0003v05ACp021B*
# Macbook4,1
evdev:input:b0003v05ACp0229*
EVDEV_ABS_00=256:1471:12
EVDEV_ABS_01=256:831:12
@ -76,9 +78,9 @@ evdev:input:b0003v05ACp0254*
EVDEV_ABS_36=::92
# MacbookPro10,1 (unibody, June 2012)
evdev:input:b0003v05ACp0259*
evdev:input:b0003v05ACp025A*
evdev:input:b0003v05ACp025B*
evdev:input:b0003v05ACp0262*
evdev:input:b0003v05ACp0263*
evdev:input:b0003v05ACp0264*
# MacbookPro10,2 (unibody, October 2012)
evdev:input:b0003v05ACp0259*
evdev:input:b0003v05ACp025A*
@ -134,6 +136,13 @@ evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLati
EVDEV_ABS_35=76:1815:22
EVDEV_ABS_36=131:1330:30
# Dell Precision 5510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
EVDEV_ABS_00=::42
EVDEV_ABS_01=::43
EVDEV_ABS_35=::42
EVDEV_ABS_36=::43
# Dell Precision M4700
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnDellInc.:pnPrecisionM4700*
EVDEV_ABS_00=0:1960:24
@ -148,6 +157,11 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPS159550*
EVDEV_ABS_35=::41
EVDEV_ABS_36=::43
# Dell XPS M1530
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPSM1530*
EVDEV_ABS_00=85:947:15
EVDEV_ABS_01=154:726:18
#########################################
# Google
#########################################
@ -181,6 +195,13 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:pn*ThinkPadEdgeE530*
EVDEV_ABS_35=1241:5703:49
EVDEV_ABS_36=1105:4820:68
# Lenovo L430
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO*:pvrThinkPadL430*
EVDEV_ABS_00=19:2197:29
EVDEV_ABS_01=12:1151:25
EVDEV_ABS_35=19:2197:29
EVDEV_ABS_36=12:1151:25
# Lenovo P50
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*P50*
EVDEV_ABS_00=::44
@ -188,6 +209,14 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*P50*
EVDEV_ABS_35=::44
EVDEV_ABS_36=::67
# Lenovo *40 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPad??40:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPad??40?:*
EVDEV_ABS_00=::41
EVDEV_ABS_01=::37
EVDEV_ABS_35=::41
EVDEV_ABS_36=::37
# Lenovo T460
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T460*
EVDEV_ABS_00=1266:5677:44
@ -226,6 +255,20 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapadY700-14ISK*
EVDEV_ABS_35=::27
EVDEV_ABS_36=::29
# Lenovo Ideapad 500S-13ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad500S-13ISK*
EVDEV_ABS_00=125:3955:37
EVDEV_ABS_01=104:1959:27
EVDEV_ABS_35=125:3954:37
EVDEV_ABS_36=104:1959:27
# Lenovo Yoga 500-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14ISK*
EVDEV_ABS_00=124:3955:36
EVDEV_ABS_01=103:1959:26
EVDEV_ABS_35=124:3955:36
EVDEV_ABS_36=103:1959:26
#########################################
# Samsung
#########################################

View File

@ -213,7 +213,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*
KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate
KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle")
KEYBOARD_KEY_8c=unknown # Fn+Right Auto Brightness
KEYBOARD_KEY_8F=switchvideomode # Fn+F7 aspect ratio
KEYBOARD_KEY_8f=switchvideomode # Fn+F7 aspect ratio
KEYBOARD_KEY_90=previoussong # Front panel previous song
KEYBOARD_KEY_91=prog1 # Wi-Fi Catcher (Dell-specific)
KEYBOARD_KEY_92=media # MediaDirect button (house icon)
@ -238,8 +238,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:pvr*
KEYBOARD_KEY_84=wlan
# Dell Inspiron 1520
# Dell Inspiron 1520 and Latitude 2110
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*2110:pvr*
KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore
KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore
@ -482,8 +483,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnFalco:pvr*
KEYBOARD_KEY_43=volumedown
KEYBOARD_KEY_44=volumeup
KEYBOARD_KEY_db=search # Same position as caps lock key on most keyboards
# KEYBOARD_KEY_3e=fullscreen, no defined key sym
# KEYBOARD_KEY_3e=fullscreen, no defined key sym
# HP EliteBook 725 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPLicrice:pvr*
@ -694,7 +694,7 @@ evdev:input:b0003v046DpC308*
KEYBOARD_KEY_90003=finance # Finance
KEYBOARD_KEY_90004=prog1 # My Sites
KEYBOARD_KEY_90005=prog2 # Community
KEYBOARD_KEY_C0183=media # Media
KEYBOARD_KEY_c0183=media # Media
# Cordless Desktop S510
evdev:input:b0003v046DpC50C*
@ -759,22 +759,22 @@ evdev:input:b0003v046DpC52D*
# Internet Navigator
evdev:input:b0003v046DpC309*
KEYBOARD_KEY_90001=chat # Messenger/SMS
KEYBOARD_KEY_90002=camera # webcam
KEYBOARD_KEY_90003=prog1 # iTouch
KEYBOARD_KEY_90004=shop # Shopping
KEYBOARD_KEY_C0201=new # New (F1)
KEYBOARD_KEY_C0289=reply # Reply mail (F2)
KEYBOARD_KEY_C028B=forwardmail # Forward mail (F3)
KEYBOARD_KEY_C028C=send # Send (F4)
KEYBOARD_KEY_C021A=undo # Undo (F5).
KEYBOARD_KEY_C0279=redo # Redo (F6).
KEYBOARD_KEY_C0208=print # Print (F7)
KEYBOARD_KEY_C0207=save # Save (F8)
KEYBOARD_KEY_C0194=file # My Computer (F9)
KEYBOARD_KEY_C01A7=documents # My Documents (F10)
KEYBOARD_KEY_C01B6=images # My Pictures (F11) ??
KEYBOARD_KEY_C01B7=sound # My Music (F12) ??
KEYBOARD_KEY_90001=chat # Messenger/SMS
KEYBOARD_KEY_90002=camera # webcam
KEYBOARD_KEY_90003=prog1 # iTouch
KEYBOARD_KEY_90004=shop # Shopping
KEYBOARD_KEY_c0201=new # New (F1)
KEYBOARD_KEY_c0289=reply # Reply mail (F2)
KEYBOARD_KEY_c028b=forwardmail # Forward mail (F3)
KEYBOARD_KEY_c028c=send # Send (F4)
KEYBOARD_KEY_c021a=undo # Undo (F5)
KEYBOARD_KEY_c0279=redo # Redo (F6)
KEYBOARD_KEY_c0208=print # Print (F7)
KEYBOARD_KEY_c0207=save # Save (F8)
KEYBOARD_KEY_c0194=file # My Computer (F9)
KEYBOARD_KEY_c01a7=documents # My Documents (F10)
KEYBOARD_KEY_c01b6=images # My Pictures (F11) ??
KEYBOARD_KEY_c01b7=sound # My Music (F12) ??
###########################################################
@ -797,6 +797,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro*7000*:pvr*
# Medion
###########################################################
# Akoya
evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnAkoya*:pvr*
KEYBOARD_KEY_a0=!mute
KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup
KEYBOARD_KEY_19=!p
KEYBOARD_KEY_df=sleep
# FID2060
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMEDION*:pn*FID2060*:pvr*
KEYBOARD_KEY_6b=channeldown # Thottle Down
@ -889,7 +897,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:*
KEYBOARD_KEY_c2=f8
KEYBOARD_KEY_c3=f9
KEYBOARD_KEY_c4=f10
KEYBOARD_KEY_c7=f11
KEYBOARD_KEY_d8=f12
KEYBOARD_KEY_f7=f13
KEYBOARD_KEY_f6=f14
@ -909,7 +916,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:*
KEYBOARD_KEY_c9=pageup
KEYBOARD_KEY_d1=pagedown
KEYBOARD_KEY_c7=home
KEYBOARD_KEY_cF=end
KEYBOARD_KEY_cf=end
KEYBOARD_KEY_73=hp
KEYBOARD_KEY_7e=hp
KEYBOARD_KEY_db=leftmeta # left grab

View File

@ -44,8 +44,19 @@
# udevadm info /dev/input/eventXX.
#
# Allowed properties are:
# ID_INPUT_TRACKBALL
# MOUSE_DPI
# MOUSE_WHEEL_CLICK_ANGLE
# MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL
# MOUSE_WHEEL_CLICK_COUNT
# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL
#
#########################################
# ID_INPUT_TRACKBALL #
#########################################
#
# Specified *in additition* to ID_INPUT_MOUSE if the device is a trackball.
# Removing ID_INPUT_MOUSE will break backwards compatibility.
#
#########################################
# MOUSE_DPI #
@ -95,12 +106,46 @@
# MOUSE_WHEEL_CLICK_ANGLE=<degrees>
#
# Most mice have a 15 degree click stop (24 clicks per full rotation).
# For backwards-compatibility, the click angle must be an integer.
# Where a device has non-integer click angles, the MOUSE_WHEEL_CLICK_COUNT
# property should also be specified.
#
#########################################
# MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL #
#########################################
#
# Identical to MOUSE_WHEEL_CLICK_ANGLE but for the horizontal scroll wheel.
# This property may only be specified if the angle for the horizontal
# scroll wheel differs from the vertical wheel. If so, *both* click angles
# must be specified.
#
#########################################
# MOUSE_WHEEL_CLICK_COUNT #
# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL #
#########################################
#
# The number of clicks the wheel sends per 360 degree rotation. This
# property should only be used where the click angle is not an integer.
# For backwards compatibility it must be specified in addition to
# MOUSE_WHEEL_CLICK_ANGLE.
# Clients should prefer MOUSE_WHEEL_CLICK_COUNT where available, it is more
# precise than MOUSE_WHEEL_CLICK_ANGLE.
#
# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL works the same way but also follows the
# rules of MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL.
#
# Sort by brand, type (usb, bluetooth), DPI, frequency.
# For mice with switchable resolution, sort by the starred entry.
##########################################
# Generic
##########################################
mouse:*:name:*Trackball*:
mouse:*:name:*trackball*:
mouse:*:name:*TrackBall*:
ID_INPUT_TRACKBALL=1
##########################################
# Apple
##########################################
@ -231,6 +276,7 @@ mouse:usb:v04b3p310c:name:USB Optical Mouse:
# Logitech M570 trackball
mouse:usb:v046dp1028:name:Logitech M570:
MOUSE_DPI=540@167
ID_INPUT_TRACKBALL=1
# Logitech USB-PS/2 M-BZ96C
mouse:usb:v046dpc045:name:Logitech USB-PS/2 Optical Mouse:
@ -280,7 +326,7 @@ mouse:usb:v046dpc049:name:Logitech USB Gaming Mouse:
mouse:usb:v046dpc24e:name:Logitech G500s Laser Gaming Mouse:
MOUSE_DPI=400@500 *800@500 2000@500
# Logitech G9
# Logitech G9
mouse:usb:v046dpc048:name:Logitech G9 Laser Mouse:
MOUSE_DPI=400@1000 800@1000 *1600@1000
@ -325,13 +371,18 @@ mouse:usb:v046dp402d:name:Logitech M560:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:402d:
MOUSE_DPI=1000@125
# Logitech V220 Cordless Optical Mouse
mouse:usb:v046dpc51b:name:Logitech USB Receiver:
# Logitech Performance MX
mouse:usb:v046dp101a:name:Logitech Performance MX:
MOUSE_DPI=1000@166
# Logitech MX Master
# Horiz wheel has 14 stops, angle is rounded up
mouse:usb:v046dp4041:name:Logitech MX Master:
MOUSE_DPI=1000@166
MOUSE_WHEEL_CLICK_ANGLE=15
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
MOUSE_WHEEL_CLICK_COUNT=24
MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14
# Logitech MK260 Wireless Combo Receiver aka M-R0011
mouse:usb:v046dpc52e:name:Logitech USB Receiver:
@ -356,11 +407,6 @@ mouse:usb:v046dp4027:name:Logitech T620:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4027:
MOUSE_DPI=1200@250
# Logitech LX8 Cordless Laser Mouse
mouse:usb:v046dpc51b:name:Logitech USB Receiver:
MOUSE_DPI=1300@125
MOUSE_WHEEL_CLICK_ANGLE=15
# Logitech ZoneTouch Mouse T400
mouse:usb:v046dp4026:name:Logitech T400:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4026:
@ -483,3 +529,11 @@ mouse:usb:v1038p1369:name:SteelSeries Sensei Raw Gaming Mouse:
# Trust illuminated mouse gxt 152
mouse:usb:v145fp01ac:name:HID-compliant Mouse Trust Gaming Mouse:
MOUSE_DPI=*800@528 1200@537 1600@536 2400@521
##########################################
# Zelotes
##########################################
# Zelotes 5500 DPI 7 Button USB Wired Gaming Mouse
mouse:usb:v1d57pad17:*
MOUSE_DPI=1000@500 1600@500 2400@500 3200@500 5500@500 *1000@1000 1600@1000 2400@1000 3200@1000 5500@1000

View File

@ -77,15 +77,19 @@
# Latitude D620
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeD620*:pvr*
POINTINGSTICK_CONST_ACCEL=0.5
POINTINGSTICK_CONST_ACCEL=0.5
# Latitude E6320
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6320*:pvr*
POINTINGSTICK_CONST_ACCEL=2.0
POINTINGSTICK_CONST_ACCEL=2.0
# Latitude E6400
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6400*:pvr*
POINTINGSTICK_CONST_ACCEL=1.5
POINTINGSTICK_CONST_ACCEL=1.5
# Latitude E7470
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*:pvr*
POINTINGSTICK_CONST_ACCEL=0.6
#########################################
# Lenovo
@ -95,25 +99,28 @@ evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6400*:pvr*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230:*
# Lenovo Thinkpad X230 tablet
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230Tablet:*
# Lenovo Thinkpad X240
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX240:*
# Lenovo Thinkpad T440s
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT440s:*
# Lenovo Thinkpad T540p
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT540p:*
# Lenovo Thinkpad T550 / W550s
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT550:*
# Lenovo Thinkpad *40 series
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40?:*
# Lenovo Thinkpad *50 series
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??50:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??50?:*
# Lenovo Thinkpad *60 series
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??60:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??60?:*
# Lenovo Thinkpad X1 Carbon 3rd gen
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Carbon3rd:*
# Lenovo Thinkpad X1 Carbon 4th gen
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Carbon4th:*
POINTINGSTICK_SENSITIVITY=200
POINTINGSTICK_CONST_ACCEL=1.0
# Lenovo Thinkpad X1 Tablet
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Tablet:*
POINTINGSTICK_SENSITIVITY=200
POINTINGSTICK_CONST_ACCEL=1.0
# Lenovo Thinkpad X200s / X201s
# Note these come with 2 revisions of keyboard, with the trackpoints having a
# different sensitivity in the different revisions. 1.25 is a bit slow for the
# least sensitive revision, but it is better to be a bit slow than too fast.
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20?s:*
POINTINGSTICK_SENSITIVITY=200
POINTINGSTICK_CONST_ACCEL=1.25
POINTINGSTICK_SENSITIVITY=200
POINTINGSTICK_CONST_ACCEL=1.25

200
hwdb/parse_hwdb.py Executable file
View File

@ -0,0 +1,200 @@
#!/usr/bin/python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
#
# This file is part of systemd. It is distrubuted under the MIT license, see
# below.
#
# Copyright 2016 Zbigniew Jędrzejewski-Szmek
#
# The MIT License (MIT)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import functools
import glob
import string
import sys
import os
try:
from pyparsing import (Word, White, Literal, ParserElement, Regex,
LineStart, LineEnd,
ZeroOrMore, OneOrMore, Combine, Or, Optional, Suppress, Group,
nums, alphanums, printables,
stringEnd, pythonStyleComment,
ParseBaseException)
except ImportError:
print('pyparsing is not available')
sys.exit(77)
try:
from evdev.ecodes import ecodes
except ImportError:
ecodes = None
print('WARNING: evdev is not available')
try:
from functools import lru_cache
except ImportError:
# don't do caching on old python
lru_cache = lambda: (lambda f: f)
EOL = LineEnd().suppress()
EMPTYLINE = LineStart() + LineEnd()
COMMENTLINE = pythonStyleComment + EOL
INTEGER = Word(nums)
REAL = Combine((INTEGER + Optional('.' + Optional(INTEGER))) ^ ('.' + INTEGER))
UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_')
TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
'evdev': ('name', 'atkbd', 'input'),
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
'keyboard': ('name', ),
}
@lru_cache()
def hwdb_grammar():
ParserElement.setDefaultWhitespaceChars('')
prefix = Or(category + ':' + Or(conn) + ':'
for category, conn in TYPES.items())
matchline = Combine(prefix + Word(printables + ' ' + '®')) + EOL
propertyline = (White(' ', exact=1).suppress() +
Combine(UDEV_TAG - '=' - Word(alphanums + '_=:@*.! ') - Optional(pythonStyleComment)) +
EOL)
propertycomment = White(' ', exact=1) + pythonStyleComment + EOL
group = (OneOrMore(matchline('MATCHES*') ^ COMMENTLINE.suppress()) -
OneOrMore(propertyline('PROPERTIES*') ^ propertycomment.suppress()) -
(EMPTYLINE ^ stringEnd()).suppress() )
commentgroup = OneOrMore(COMMENTLINE).suppress() - EMPTYLINE.suppress()
grammar = OneOrMore(group('GROUPS*') ^ commentgroup) + stringEnd()
return grammar
@lru_cache()
def property_grammar():
ParserElement.setDefaultWhitespaceChars(' ')
setting = Optional('*')('DEFAULT') + INTEGER('DPI') + Suppress('@') + INTEGER('HZ')
props = (('MOUSE_DPI', Group(OneOrMore(setting('SETTINGS*')))),
('MOUSE_WHEEL_CLICK_ANGLE', INTEGER),
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
('ID_INPUT_TRACKBALL', Literal('1')),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('POINTINGSTICK_CONST_ACCEL', REAL),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),
)
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
for name, val in props]
kbd_props = [Regex(r'KEYBOARD_KEY_[0-9a-f]+')('NAME')
- Suppress('=') -
('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
]
abs_props = [Regex(r'EVDEV_ABS_[0-9a-f]{2}')('NAME')
- Suppress('=') -
Word(nums + ':')('VALUE')
]
grammar = Or(fixed_props + kbd_props + abs_props)
return grammar
ERROR = False
def error(fmt, *args, **kwargs):
global ERROR
ERROR = True
print(fmt.format(*args, **kwargs))
def convert_properties(group):
matches = [m[0] for m in group.MATCHES]
props = [p[0] for p in group.PROPERTIES]
return matches, props
def parse(fname):
grammar = hwdb_grammar()
try:
parsed = grammar.parseFile(fname)
except ParseBaseException as e:
error('Cannot parse {}: {}', fname, e)
return []
return [convert_properties(g) for g in parsed.GROUPS]
def check_match_uniqueness(groups):
matches = sum((group[0] for group in groups), [])
matches.sort()
prev = None
for match in matches:
if match == prev:
error('Match {!r} is duplicated', match)
prev = match
def check_one_default(prop, settings):
defaults = [s for s in settings if s.DEFAULT]
if len(defaults) > 1:
error('More than one star entry: {!r}', prop)
def check_one_keycode(prop, value):
if value != '!' and ecodes is not None:
key = 'KEY_' + value.upper()
if key not in ecodes:
error('Keycode {} unknown', key)
def check_properties(groups):
grammar = property_grammar()
for matches, props in groups:
prop_names = set()
for prop in props:
# print('--', prop)
prop = prop.partition('#')[0].rstrip()
try:
parsed = grammar.parseString(prop)
except ParseBaseException as e:
error('Failed to parse: {!r}', prop)
continue
# print('{!r}'.format(parsed))
if parsed.NAME in prop_names:
error('Property {} is duplicated', parsed.NAME)
prop_names.add(parsed.NAME)
if parsed.NAME == 'MOUSE_DPI':
check_one_default(prop, parsed.VALUE.SETTINGS)
elif parsed.NAME.startswith('KEYBOARD_KEY_'):
check_one_keycode(prop, parsed.VALUE)
def print_summary(fname, groups):
print('{}: {} match groups, {} matches, {} properties'
.format(fname,
len(groups),
sum(len(matches) for matches, props in groups),
sum(len(props) for matches, props in groups),
))
if __name__ == '__main__':
args = sys.argv[1:] or glob.glob(os.path.dirname(sys.argv[0]) + '/[67]0-*.hwdb')
for fname in args:
groups = parse(fname)
print_summary(fname, groups)
check_match_uniqueness(groups)
check_properties(groups)
sys.exit(ERROR)

View File

@ -47,16 +47,16 @@
<refsynopsisdiv>
<cmdsynopsis>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg>status</command>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg> status</command>
</cmdsynopsis>
<cmdsynopsis>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg>update</command>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg> update</command>
</cmdsynopsis>
<cmdsynopsis>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg>install</command>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg> install</command>
</cmdsynopsis>
<cmdsynopsis>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg>remove</command>
<command>bootctl <arg choice="opt" rep="repeat">OPTIONS</arg> remove</command>
</cmdsynopsis>
</refsynopsisdiv>
@ -71,19 +71,14 @@
currently installed versions of the boot loader binaries and
all current EFI boot variables.</para>
<para><command>bootctl update</command> updates all installed
versions of systemd-boot, if the current version is newer than the
version installed in the EFI system partition. This also includes
the EFI default/fallback loader at /EFI/BOOT/BOOT*.EFI. A
systemd-boot entry in the EFI boot variables is created if there
is no current entry. The created entry will be added to the end of
the boot order list.</para>
<para><command>bootctl update</command> updates all installed versions of systemd-boot, if the current version is
newer than the version installed in the EFI system partition. This also includes the EFI default/fallback loader at
<filename>/EFI/BOOT/BOOT*.EFI</filename>. A systemd-boot entry in the EFI boot variables is created if there is no
current entry. The created entry will be added to the end of the boot order list.</para>
<para><command>bootctl install</command> installs systemd-boot into
the EFI system partition. A copy of systemd-boot will be stored as
the EFI default/fallback loader at /EFI/BOOT/BOOT*.EFI. A systemd-boot
entry in the EFI boot variables is created and added to the top
of the boot order list.</para>
<para><command>bootctl install</command> installs systemd-boot into the EFI system partition. A copy of
systemd-boot will be stored as the EFI default/fallback loader at <filename>/EFI/BOOT/BOOT*.EFI</filename>. A
systemd-boot entry in the EFI boot variables is created and added to the top of the boot order list.</para>
<para><command>bootctl remove</command> removes all installed
versions of systemd-boot from the EFI system partition, and removes
@ -101,8 +96,10 @@
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<varlistentry>
<term><option>--path</option></term>
<listitem><para>Path to the EFI system partition. The default is /boot.</para></listitem>
<term><option>--path=</option></term>
<listitem><para>Path to the EFI System Partition (ESP). If not specified, <filename>/efi</filename>,
<filename>/boot</filename>, and <filename>/boot/efi</filename> are checked in turn. It is recommended to mount
the ESP to <filename>/boot</filename>, if possible.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -83,16 +83,13 @@
<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 core dumps 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>
<listitem><para>Controls where to store cores. One of <literal>none</literal>,
<literal>external</literal>, and <literal>journal</literal>. When
<literal>none</literal>, the core dumps will be logged (included the traceback if
possible), 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.</para>
<para>When cores are stored in the journal, they might be
compressed following journal compression settings, see

View File

@ -326,6 +326,17 @@
option implies <option>tcrypt</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-veracrypt</option></term>
<listitem><para>Check for a VeraCrypt volume. VeraCrypt is a fork of
TrueCrypt that is mostly compatible, but uses different, stronger key
derivation algorithms that cannot be detected without this flag.
Enabling this option could substantially slow down unlocking, because
VeraCrypt's key derivation takes much longer than TrueCrypt's. This
option implies <option>tcrypt</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>timeout=</option></term>

View File

@ -160,14 +160,12 @@
<refsect1>
<title>Negative Trust Anchors</title>
<para>Negative trust anchors define domains where DNSSEC
validation shall be turned off. Negative trust anchor files are
found at the same location as positive trust anchor files, and
follow the same overriding rules. They are text files with the
<filename>.negative</filename> suffix. Empty lines and lines whose
first character is <literal>;</literal> are ignored. Each line
specifies one domain name where DNSSEC validation shall be
disabled on.</para>
<para>Negative trust anchors define domains where DNSSEC validation shall be turned
off. Negative trust anchor files are found at the same location as positive trust anchor files,
and follow the same overriding rules. They are text files with the
<filename>.negative</filename> suffix. Empty lines and lines whose first character is
<literal>;</literal> are ignored. Each line specifies one domain name which is the root of a DNS
subtree where validation shall be disabled.</para>
<para>Negative trust anchors are useful to support private DNS
subtrees that are not referenced from the Internet DNS hierarchy,

View File

@ -71,10 +71,9 @@
set, and is valid (something other 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 and transient hostnames are
limited to the usually accepted characters of Internet domain
names.</para>
<para>Note that the pretty hostname has little restrictions on the characters and length used, while the static and
transient hostnames are limited to the usually accepted characters of Internet domain names, and 64 characters at
maximum (the latter being a Linux limitation).</para>
<para>The static hostname is stored in
<filename>/etc/hostname</filename>, see
@ -107,15 +106,11 @@
<term><option>--transient</option></term>
<term><option>--pretty</option></term>
<listitem><para>If <command>status</command> is used (or no
explicit command is given) and one of those fields is given,
<command>hostnamectl</command> will print out just this
selected hostname.</para>
<listitem><para>If <command>status</command> is invoked (or no explicit command is given) and one of these
switches is specified, <command>hostnamectl</command> will print out just this selected hostname.</para>
<para>If used with <command>set-hostname</command>, only the
selected hostname(s) will be updated. When more than one of
those options is used, all the specified hostnames will be
updated. </para></listitem>
<para>If used with <command>set-hostname</command>, only the selected hostname(s) will be updated. When more
than one of these switches are specified, all the specified hostnames will be updated. </para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
@ -139,22 +134,14 @@
<varlistentry>
<term><command>set-hostname <replaceable>NAME</replaceable></command></term>
<listitem><para>Set the system hostname to
<replaceable>NAME</replaceable>. By default, this will alter
the pretty, the static, and the transient hostname alike;
however, if one or more of <option>--static</option>,
<option>--transient</option>, <option>--pretty</option> are
used, only the selected hostnames are changed. If the pretty
hostname is being set, and static or transient are being set
as well, the specified hostname will be simplified in regards
to the character set used before the latter are updated. This
is done by replacing spaces with <literal>-</literal> and
removing special characters. This ensures that the pretty and
the static hostname are always closely related while still
following the validity rules of the specific name. This
simplification of the hostname string is not done if only the
transient and/or static host names are set, and the pretty
host name is left untouched.</para>
<listitem><para>Set the system hostname to <replaceable>NAME</replaceable>. By default, this will alter the
pretty, the static, and the transient hostname alike; however, if one or more of <option>--static</option>,
<option>--transient</option>, <option>--pretty</option> are used, only the selected hostnames are changed. If
the pretty hostname is being set, and static or transient are being set as well, the specified hostname will be
simplified in regards to the character set used before the latter are updated. This is done by removing special
characters and spaces. This ensures that the pretty and the static hostname are always closely related while
still following the validity rules of the specific name. This simplification of the hostname string is not done
if only the transient and/or static host names are set, and the pretty host name is left untouched.</para>
<para>Pass the empty string <literal></literal> as the
hostname to reset the selected hostnames to their default

View File

@ -45,22 +45,21 @@
<refnamediv>
<refname>journal-remote.conf</refname>
<refname>journal-remote.conf.d</refname>
<refpurpose>Journal remote service configuration files</refpurpose>
<refpurpose>Configuration files for the service accepting remote journal uploads</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/systemd/journal-remote.conf</filename></para>
<para><filename>/etc/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/etc/systemd/journal-remote.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/journal-remote.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/journal-remote.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>These files configure various parameters of the systemd-remote-journal
application,
<citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
<para>These files configure various parameters of
<citerefentry><refentrytitle>systemd-journal-remote.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="main-conf" />

113
man/journal-upload.conf.xml Normal file
View File

@ -0,0 +1,113 @@
<?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 2016 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="journal-upload.conf" conditional='HAVE_MICROHTTPD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>journal-upload.conf</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Monkey with a keyboard</contrib>
<firstname>Zbigniew</firstname>
<surname>Jędrzejewski-Szmek</surname>
<email>zbyszek@in.waw.pl</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>journal-upload.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>journal-upload.conf</refname>
<refname>journal-upload.conf.d</refname>
<refpurpose>Configuration files for the journal upload service</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/systemd/journal-upload.conf</filename></para>
<para><filename>/etc/systemd/journal-upload.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/journal-upload.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/journal-upload.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>These files configure various parameters of
<citerefentry><refentrytitle>systemd-journal-upload.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="main-conf" />
<refsect1>
<title>Options</title>
<para>All options are configured in the <literal>[Upload]</literal> section:</para>
<variablelist>
<varlistentry>
<term><varname>URL=</varname></term>
<listitem><para>The URL to upload the journal entries to. See the description
of <varname>--url=</varname> option in
<citerefentry><refentrytitle>systemd-journal-upload</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for the description of possible values.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ServerKeyFile=</varname></term>
<listitem><para>SSL key in PEM format.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ServerCertificateFile=</varname></term>
<listitem><para>SSL CA certificate in PEM format.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>TrustedCertificateFile=</varname></term>
<listitem><para>SSL CA certificate.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd-journal-upload</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -248,6 +248,18 @@
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>short-full</option>
</term>
<listitem>
<para>is very similar, but shows timestamps in the format the <option>--since=</option> and
<option>--until=</option> options accept. Unlike the timestamp information shown in
<option>short</option> output mode this mode includes weekday, year and timezone information in the
output, and is locale-independent.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>short-iso</option>
@ -572,24 +584,17 @@
<term><option>-U</option></term>
<term><option>--until=</option></term>
<listitem><para>Start showing entries on or newer than the
specified date, or on or older than the specified date,
respectively. Date specifications should be of the format
<literal>2012-10-30 18:17:16</literal>. If the time part is
omitted, <literal>00:00:00</literal> is assumed. If only the
seconds component is omitted, <literal>:00</literal> is
assumed. If the date component is omitted, the current day is
assumed. Alternatively the strings
<literal>yesterday</literal>, <literal>today</literal>,
<literal>tomorrow</literal> are understood, which refer to
00:00:00 of the day before the current day, the current day,
or the day after the current day,
respectively. <literal>now</literal> refers to the current
time. Finally, relative times may be specified, prefixed with
<literal>-</literal> or <literal>+</literal>, referring to
times before or after the current time, respectively. For complete
time and date specification, see
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
<listitem><para>Start showing entries on or newer than the specified date, or on or older than the specified
date, respectively. Date specifications should be of the format <literal>2012-10-30 18:17:16</literal>. If the
time part is omitted, <literal>00:00:00</literal> is assumed. If only the seconds component is omitted,
<literal>:00</literal> is assumed. If the date component is omitted, the current day is assumed. Alternatively
the strings <literal>yesterday</literal>, <literal>today</literal>, <literal>tomorrow</literal> are understood,
which refer to 00:00:00 of the day before the current day, the current day, or the day after the current day,
respectively. <literal>now</literal> refers to the current time. Finally, relative times may be specified,
prefixed with <literal>-</literal> or <literal>+</literal>, referring to times before or after the current
time, respectively. For complete time and date specification, see
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Note that
<option>--output=short-full</option> prints timestamps that follow precisely this format.
</para>
</listitem>
</varlistentry>
@ -654,10 +659,12 @@
<term><option>--root=<replaceable>ROOT</replaceable></option></term>
<listitem><para>Takes a directory path as an argument. If
specified, journalctl will operate on catalog file hierarchy
specified, journalctl will operate on journal directories and catalog file hierarchy
underneath the specified directory instead of the root
directory (e.g. <option>--update-catalog</option> will create
<filename><replaceable>ROOT</replaceable>/var/lib/systemd/catalog/database</filename>).
<filename><replaceable>ROOT</replaceable>/var/lib/systemd/catalog/database</filename>,
and journal files under <filename><replaceable>ROOT</replaceable>/run/journal</filename>
or <filename><replaceable>ROOT</replaceable>/var/log/journal</filename> will be displayed).
</para></listitem>
</varlistentry>

View File

@ -129,23 +129,15 @@
<varlistentry>
<term><varname>SplitMode=</varname></term>
<listitem><para>Controls whether to split up journal files per user. Split-up journal files are primarily
useful for access control: on UNIX/Linux access control is managed per file, and the journal daemon will assign
users read access to their journal files. This setting takes one of <literal>uid</literal>,
<literal>login</literal> or <literal>none</literal>. If <literal>uid</literal>, all regular users will get each
their own journal files regardless of whether their processes possess login sessions 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. Note that in this mode, user code running outside of any login session will log into the system log
instead of the split-out user logs. Most importantly, this means that information about core dumps of user
processes collected via the
<citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry> subsystem
will end up in the system logs instead of the user logs, and thus not be accessible to the owning users. If
<literal>none</literal>, journal files are not split up by user and all messages are instead stored in the
single system journal. In this mode unprivileged users generally do not have access to their own log data. 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
<literal>uid</literal>.</para></listitem>
<listitem><para>Controls whether to split up journal files per user, either <literal>uid</literal> or
<literal>none</literal>. Split journal files are primarily useful for access control: on UNIX/Linux access
control is managed per file, and the journal daemon will assign users read access to their journal files. If
<literal>uid</literal>, all regular users will each get their own journal files, and system users will log to
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. In this mode unprivileged users generally do not have access to
their own log data. Note that splitting up journal files by user is only available for journals stored
persistently. If journals are stored on volatile storage (see <varname>Storage=</varname> above), only a single
journal file is used. Defaults to <literal>uid</literal>.</para></listitem>
</varlistentry>
<varlistentry>
@ -309,22 +301,21 @@
<term><varname>ForwardToConsole=</varname></term>
<term><varname>ForwardToWall=</varname></term>
<listitem><para>Control whether log messages received by the
journal daemon shall be forwarded to a traditional syslog
daemon, to the kernel log buffer (kmsg), to the system
console, or sent as wall messages to all logged-in users.
These options take boolean arguments. If forwarding to syslog
is enabled but nothing reads messages from the socket,
forwarding to syslog has no effect. By default, only
forwarding to wall is enabled. These settings may be
overridden at boot time with the kernel command line options
<literal>systemd.journald.forward_to_syslog=</literal>,
<literal>systemd.journald.forward_to_kmsg=</literal>,
<literal>systemd.journald.forward_to_console=</literal>, and
<literal>systemd.journald.forward_to_wall=</literal>. When
forwarding to the console, the TTY to log to can be changed
with <varname>TTYPath=</varname>, described
below.</para></listitem>
<listitem><para>Control whether log messages received by the journal daemon shall
be forwarded to a traditional syslog daemon, to the kernel log buffer (kmsg), to
the system console, or sent as wall messages to all logged-in users. These
options take boolean arguments. If forwarding to syslog is enabled but nothing
reads messages from the socket, forwarding to syslog has no effect. By default,
only forwarding to wall is enabled. These settings may be overridden at boot time
with the kernel command line options
<literal>systemd.journald.forward_to_syslog</literal>,
<literal>systemd.journald.forward_to_kmsg</literal>,
<literal>systemd.journald.forward_to_console</literal>, and
<literal>systemd.journald.forward_to_wall</literal>. If the option name is
specified without <literal>=</literal> and the following argument, true is
assumed. Otherwise, the argument is parsed as a boolean. When forwarding to the
console, the TTY to log to can be changed with <varname>TTYPath=</varname>,
described below.</para></listitem>
</varlistentry>
<varlistentry>
@ -356,7 +347,14 @@
<literal>notice</literal> for <varname>MaxLevelKMsg=</varname>,
<literal>info</literal> for <varname>MaxLevelConsole=</varname>,
and <literal>emerg</literal> for
<varname>MaxLevelWall=</varname>.</para></listitem>
<varname>MaxLevelWall=</varname>. These settings may be
overridden at boot time with the kernel command line options
<literal>systemd.journald.max_level_store=</literal>,
<literal>systemd.journald.max_level_syslog=</literal>,
<literal>systemd.journald.max_level_kmsg=</literal>,
<literal>systemd.journald.max_level_console=</literal>,
<literal>systemd.journald.max_level_wall=</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>

View File

@ -224,15 +224,14 @@
<varlistentry>
<term><varname>vconsole.keymap=</varname></term>
<term><varname>vconsole.keymap.toggle=</varname></term>
<term><varname>vconsole.keymap_toggle=</varname></term>
<term><varname>vconsole.font=</varname></term>
<term><varname>vconsole.font.map=</varname></term>
<term><varname>vconsole.font.unimap=</varname></term>
<term><varname>vconsole.font_map=</varname></term>
<term><varname>vconsole.font_unimap=</varname></term>
<listitem>
<para>Parameters understood by the virtual console setup
logic. For details, see
<citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
<para>Parameters understood by the virtual console setup logic. For details, see
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>

View File

@ -72,9 +72,12 @@
in <filename>/usr/lib/kernel/install.d/</filename>. This can be used to override a system-supplied
executables with a local file if needed; a symbolic link in <filename>/etc/kernel/install.d/</filename>
with the same name as an executable in <filename>/usr/lib/kernel/install.d/</filename>,
pointing to /dev/null, disables the executable entirely. Executables must have the
pointing to <filename>/dev/null</filename>, disables the executable entirely. Executables must have the
extension <literal>.install</literal>; other extensions are ignored.</para>
<para>An executable should return <constant>0</constant> on success. It may also
return <constant>77</constant> to cause the whole operation to terminate
(executables later in lexical order will be skipped).</para>
</refsect1>
<refsect1>

View File

@ -3,27 +3,34 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<refsect1>
<title>Environment</title>
<title>Environment</title>
<variablelist class='environment-variables'>
<varlistentry id='pager'>
<term><varname>$SYSTEMD_PAGER</varname></term>
<variablelist class='environment-variables'>
<varlistentry id='pager'>
<term><varname>$SYSTEMD_PAGER</varname></term>
<listitem><para>Pager to use when
<option>--no-pager</option> is not given;
overrides <varname>$PAGER</varname>. Setting
this to an empty string or the value
<literal>cat</literal> is equivalent to passing
<option>--no-pager</option>.</para></listitem>
</varlistentry>
<listitem><para>Pager to use when <option>--no-pager</option> is not given; overrides
<varname>$PAGER</varname>. If neither <varname>$SYSTEMD_PAGER</varname> nor <varname>$PAGER</varname> are set, a
set of well-known pager implementations are tried in turn, including
<citerefentry><refentrytitle>less</refentrytitle><manvolnum>1</manvolnum></citerefentry> and
<citerefentry><refentrytitle>more</refentrytitle><manvolnum>1</manvolnum></citerefentry>, until one is found. If
no pager implementation is discovered no pager is invoked. Setting this environment variable to an empty string
or the value <literal>cat</literal> is equivalent to passing <option>--no-pager</option>.</para></listitem>
</varlistentry>
<varlistentry id='less'>
<term><varname>$SYSTEMD_LESS</varname></term>
<varlistentry id='less'>
<term><varname>$SYSTEMD_LESS</varname></term>
<listitem><para>Override the default
options passed to
<command>less</command>
(<literal>FRSXMK</literal>).</para></listitem>
</varlistentry>
</variablelist>
<listitem><para>Override the options passed to <command>less</command> (by default
<literal>FRSXMK</literal>).</para></listitem>
</varlistentry>
<varlistentry id='lesscharset'>
<term><varname>$SYSTEMD_LESSCHARSET</varname></term>
<listitem><para>Override the charset passed to <command>less</command> (by default <literal>utf-8</literal>, if
the invoking terminal is determined to be UTF-8 compatible).</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -223,7 +223,7 @@
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>mkinitrd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
<citerefentry project='die-net'><refentrytitle>mkinitrd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>

View File

@ -211,7 +211,7 @@
<term><varname>HandleLidSwitch=</varname></term>
<term><varname>HandleLidSwitchDocked=</varname></term>
<listitem><para>Controls whether logind shall handle the
<listitem><para>Controls how logind shall handle the
system power and sleep keys and the lid switch to trigger
actions such as system power-off or suspend. Can be one of
<literal>ignore</literal>,
@ -240,7 +240,16 @@
docking station, or if more than one display is connected, the
action specified by <varname>HandleLidSwitchDocked=</varname>
occurs; otherwise the <varname>HandleLidSwitch=</varname>
action occurs.</para></listitem>
action occurs.</para>
<para>A different application may disable logind's handling of system power and
sleep keys and the lid switch by taking a low-level inhibitor lock
("handle-power-key", "handle-suspend-key", "handle-hibernate-key",
"handle-lid-switch"). This is most commonly used by graphical desktop environments
to take over suspend and hibernation handling, and to use their own configuration
mechanisms. If a low-level inhibitor lock is taken, logind will not take any
action when that key or switch is triggered and the <varname>Handle*=</varname>
settings are irrelevant.</para></listitem>
</varlistentry>
<varlistentry>
@ -249,21 +258,22 @@
<term><varname>HibernateKeyIgnoreInhibited=</varname></term>
<term><varname>LidSwitchIgnoreInhibited=</varname></term>
<listitem><para>Controls whether actions triggered by the
power and sleep keys and the lid switch are subject to
inhibitor locks. These settings take boolean arguments. If
<literal>no</literal>, the inhibitor locks taken by
applications in order to block the requested operation are
respected. If <literal>yes</literal>, the requested operation
is executed in any case.
<listitem><para>Controls whether actions that <command>systemd-logind</command>
takes when the power and sleep keys and the lid switch are triggered are subject
to high-level inhibitor locks ("shutdown", "sleep", "idle"). Low level inhibitor
locks ("handle-*-key"), are always honored, irrespective of this setting.</para>
<para>These settings take boolean arguments. If <literal>no</literal>, the
inhibitor locks taken by applications are respected. If <literal>yes</literal>,
"shutdown", "sleep", and "idle" inhibitor locks are ignored.
<varname>PowerKeyIgnoreInhibited=</varname>,
<varname>SuspendKeyIgnoreInhibited=</varname> and
<varname>HibernateKeyIgnoreInhibited=</varname> default to
<literal>no</literal>.
<varname>LidSwitchIgnoreInhibited=</varname> defaults to
<literal>yes</literal>. This means that the lid switch does
not respect suspend blockers by default, but the power and
sleep keys do. </para></listitem>
<varname>SuspendKeyIgnoreInhibited=</varname>, and
<varname>HibernateKeyIgnoreInhibited=</varname> default to <literal>no</literal>.
<varname>LidSwitchIgnoreInhibited=</varname> defaults to <literal>yes</literal>.
This means that when <command>systemd-logind</command> is handling events by
itself (no low level inhibitor locks are taken by another application), the lid
switch does not respect suspend blockers by default, but the power and sleep keys
do.</para></listitem>
</varlistentry>
<varlistentry>
@ -318,8 +328,9 @@
<listitem><para>Sets the maximum number of OS tasks each user may run concurrently. This controls the
<varname>TasksMax=</varname> setting of the per-user slice unit, see
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details. Defaults to 33%, which equals 10813 with the kernel's defaults on the host, but might be smaller
in OS containers.</para></listitem>
for details. If assigned the special value <literal>infinity</literal>, no tasks limit is applied.
Defaults to 33%, which equals 10813 with the kernel's defaults on the host, but might be smaller in
OS containers.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -186,12 +186,11 @@
<varlistentry>
<term><option>--uid=</option></term>
<listitem><para>When used with the <command>shell</command>
command, chooses the user ID to open the interactive shell
session as. If this switch is not specified, defaults to
<literal>root</literal>. Note that this switch is not
supported for the <command>login</command> command (see
below).</para></listitem>
<listitem><para>When used with the <command>shell</command> command, chooses the user ID to
open the interactive shell session as. If the argument to the <command>shell</command>
command also specifies a user name, this option is ignored. If the name is not specified
in either way, <literal>root</literal> will be used by default. Note that this switch is
not supported for the <command>login</command> command (see below).</para></listitem>
</varlistentry>
<varlistentry>
@ -285,6 +284,20 @@
name passed.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--max-addresses=</option></term>
<listitem><para>When used with the <option>list-machines</option>
command, limits the number of ip addresses output for every machine.
Defaults to 1. All addresses can be requested with <literal>all</literal>
as argument to <option>--max-addresses</option> . If the argument to
<option>--max-addresses</option> is less than the actual number
of addresses,<literal>...</literal>follows the last address.
If multiple addresses are to be written for a given machine, every
address except the first one is on a new line and is followed by
<literal>,</literal> if another address will be output afterwards. </para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
@ -330,18 +343,13 @@
<varlistentry>
<term><command>show</command> [<replaceable>NAME</replaceable>...]</term>
<listitem><para>Show properties of one or more registered
virtual machines or containers or the manager itself. If no
argument is specified, properties of the manager will be
shown. If a NAME is specified, properties of this virtual
machine or container are shown. By default, empty properties
are suppressed. Use <option>--all</option> to show those too.
To select specific properties to show, use
<option>--property=</option>. This command is intended to be
used whenever computer-parsable output is required, and does
not print the cgroup tree or journal entries. Use
<command>status</command> if you are looking for formatted
human-readable output.</para></listitem>
<listitem><para>Show properties of one or more registered virtual machines or containers or the manager
itself. If no argument is specified, properties of the manager will be shown. If a NAME is specified,
properties of this virtual machine or container are shown. By default, empty properties are suppressed. Use
<option>--all</option> to show those too. To select specific properties to show, use
<option>--property=</option>. This command is intended to be used whenever computer-parsable output is
required, and does not print the control group tree or journal entries. Use <command>status</command> if you
are looking for formatted human-readable output.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -120,7 +120,7 @@
<para>The DUID value specified here overrides the DUID that systemd-networkd generates using the machine-id
from the <filename>/etc/machine-id</filename> file. To configure DUID per-network, see
<citerefentry><refentrytitle>systemd.network </refentrytitle><manvolnum>5</manvolnum></citerefentry>.
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
The configured DHCP DUID should conform to the specification in
<ulink url="http://tools.ietf.org/html/rfc3315#section-9">RFC 3315</ulink>,
<ulink url="http://tools.ietf.org/html/rfc6355">RFC 6355</ulink>. To configure IAID, see

View File

@ -106,11 +106,11 @@
<para>Here is an example <filename>/etc/nsswitch.conf</filename> file that enables
<command>nss-myhostname</command> correctly:</para>
<programlisting>passwd: compat mymachines
group: compat mymachines
<programlisting>passwd: compat mymachines systemd
group: compat mymachines systemd
shadow: compat
hosts: files mymachines resolve <command>myhostname</command>
hosts: files mymachines resolve [!UNAVAIL=return] dns <command>myhostname</command>
networks: files
protocols: db files
@ -138,6 +138,7 @@ netgroup: nis</programlisting>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-resolve</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-mymachines</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,

View File

@ -82,11 +82,11 @@
<para>Here is an example <filename>/etc/nsswitch.conf</filename> file that enables
<command>nss-mymachines</command> correctly:</para>
<programlisting>passwd: compat <command>mymachines</command>
group: compat <command>mymachines</command>
<programlisting>passwd: compat <command>mymachines</command> systemd
group: compat <command>mymachines</command> systemd
shadow: compat
hosts: files <command>mymachines</command> resolve myhostname
hosts: files <command>mymachines</command> resolve [!UNAVAIL=return] dns myhostname
networks: files
protocols: db files
@ -103,6 +103,7 @@ netgroup: nis</programlisting>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-resolve</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,

View File

@ -81,11 +81,11 @@
<para>Here is an example <filename>/etc/nsswitch.conf</filename> file that enables <command>nss-resolve</command>
correctly:</para>
<programlisting>passwd: compat mymachines
group: compat mymachines
<programlisting>passwd: compat mymachines systemd
group: compat mymachines systemd
shadow: compat
hosts: files mymachines <command>resolve</command> myhostname
hosts: files mymachines <command>resolve [!UNAVAIL=return]</command> dns myhostname
networks: files
protocols: db files
@ -95,6 +95,8 @@ rpc: db files
netgroup: nis</programlisting>
<para>This keeps the <command>dns</command> module as a fallback for cases where the <command>nss-resolve</command>
module is not installed.</para>
</refsect1>
<refsect1>
@ -102,8 +104,9 @@ netgroup: nis</programlisting>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-resolved</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-mymachines</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-mymachines</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>

111
man/nss-systemd.xml Normal file
View File

@ -0,0 +1,111 @@
<?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 2016 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="nss-systemd">
<refentryinfo>
<title>nss-systemd</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>nss-systemd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>nss-systemd</refname>
<refname>libnss_systemd.so.2</refname>
<refpurpose>Provide UNIX user and group name resolution for dynamic users and groups.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>libnss_systemd.so.2</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>nss-systemd</command> is a plug-in module for the GNU Name Service Switch (NSS) functionality of the
GNU C Library (<command>glibc</command>), providing UNIX user and group name resolution for dynamic users and
groups allocated through the <varname>DynamicUser=</varname> option in systemd unit files. See
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details on
this option.</para>
<para>This module also ensures that the root and nobody users and groups (i.e. the users/groups with the UIDs/GIDs
0 and 65534) remain resolvable at all times, even if they aren't listed in <filename>/etc/passwd</filename> or
<filename>/etc/group</filename>, or if these files are missing.</para>
<para>To activate the NSS module, add <literal>systemd</literal> to the lines starting with
<literal>passwd:</literal> and <literal>group:</literal> in <filename>/etc/nsswitch.conf</filename>.</para>
<para>It is recommended to place <literal>systemd</literal> after the <literal>files</literal> or
<literal>compat</literal> entry of the <filename>/etc/nsswitch.conf</filename> lines so that
<filename>/etc/passwd</filename> and <filename>/etc/group</filename> based mappings take precedence.</para>
</refsect1>
<refsect1>
<title>Example</title>
<para>Here is an example <filename>/etc/nsswitch.conf</filename> file that enables
<command>nss-systemd</command> correctly:</para>
<programlisting>passwd: compat mymachines <command>systemd</command>
group: compat mymachines <command>systemd</command>
shadow: compat
hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis</programlisting>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-resolve</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-mymachines</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>getent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -206,13 +206,25 @@
<term><varname>Cache=</varname></term>
<listitem><para>Takes a boolean argument. If "yes" (the default), resolving a domain name which already got
queried earlier will return the previous result as long as it is still valid, and thus does not result in a new
network request. Be aware that that turning off caching comes at a performance penalty, which is particularly
network request. Be aware that turning off caching comes at a performance penalty, which is particularly
high when DNSSEC is used.</para>
<para>Note that caching is turned off implicitly if the configured DNS server is on a host-local IP address
(such as 127.0.0.1 or ::1), in order to avoid duplicate local caching.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>DNSStubListener=</varname></term>
<listitem><para>Takes a boolean argument or one of <literal>udp</literal> and <literal>tcp</literal>. If
<literal>udp</literal> (the default), a DNS stub resolver will listen for UDP requests on address 127.0.0.53
port 53. If <literal>tcp</literal>, the stub will listen for TCP requests on the same address and port. If
<literal>yes</literal>, the stub listens for both UDP and TCP requests. If <literal>no</literal>, the stub
listener is disabled.</para>
<para>Note that the DNS stub listener is turned off implicitly when its listening address and port are already
in use.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -44,7 +44,7 @@
<refnamediv>
<refname>sd-bus</refname>
<refpurpose>A lightweight D-Bus and kdbus client library</refpurpose>
<refpurpose>A lightweight D-Bus IPC client library</refpurpose>
</refnamediv>
<refsynopsisdiv>
@ -61,49 +61,40 @@
<refsect1>
<title>Description</title>
<para><filename>sd-bus.h</filename> provides an implementation
of a D-Bus client. It can interoperate both with the traditional
<citerefentry project='man-pages'><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
and with kdbus. See
<para><filename>sd-bus.h</filename> provides an implementation of a D-Bus IPC client. See
<ulink url="http://www.freedesktop.org/software/dbus/" />
for more information about the big picture.
for more information about D-Bus IPC.
</para>
<important>
<para>Interfaces described here have not been declared stable yet,
and are not accessible from <filename>libsystemd.so</filename>.
This documentation is provided in hope it might be useful for
developers, without any guarantees of availability or stability.
</para>
</important>
<para>See
<citerefentry><refentrytitle>sd-bus-errors</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_bus_default</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_start</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_get_name_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_get_owner_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_append</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_append_array</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_append_string_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_append_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_can_send</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_negotiate_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_path_encode</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_request_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_send</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_set_address</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_set_allow_interactive_authorization</refentrytitle><manvolnum>3</manvolnum></citerefentry>
<citerefentry><refentrytitle>sd_bus_set_description</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_set_prepare</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_bus_get_name_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_get_owner_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_negotiate_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_path_encode</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_error</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_set_allow_interactive_authorization</refentrytitle><manvolnum>3</manvolnum></citerefentry>
<citerefentry><refentrytitle>sd_bus_start</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_track_add_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_track_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
for more information about the functions available.</para>
</refsect1>
@ -114,9 +105,9 @@
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-event</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>busctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>dbus-daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>dbus-send</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<ulink url="https://developer.gnome.org/gio/stable/gdbus.html">gdbus</ulink>
<citerefentry project='man-pages'><refentrytitle>dbus-send</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>

View File

@ -97,7 +97,7 @@
iteration a single event source is dispatched. Each time an event
source is dispatched the kernel is polled for new events, before
the next event source is dispatched. The event loop is designed to
honour priorities and provide fairness within each priority. It is
honor priorities and provide fairness within each priority. It is
not designed to provide optimal throughput, as this contradicts
these goals due the limitations of the underlying <citerefentry
project='man-pages'><refentrytitle>epoll</refentrytitle><manvolnum>7</manvolnum></citerefentry>

View File

@ -47,10 +47,12 @@
<refname>sd-id128</refname>
<refname>sd_id128_t</refname>
<refname>SD_ID128_MAKE</refname>
<refname>SD_ID128_NULL</refname>
<refname>SD_ID128_CONST_STR</refname>
<refname>SD_ID128_FORMAT_STR</refname>
<refname>SD_ID128_FORMAT_VAL</refname>
<refname>sd_id128_equal</refname>
<refname>sd_id128_is_null</refname>
<refpurpose>APIs for processing 128-bit IDs</refpurpose>
</refnamediv>
@ -88,8 +90,8 @@
union type:</para>
<programlisting>typedef union sd_id128 {
uint8_t bytes[16];
uint64_t qwords[2];
uint8_t bytes[16];
uint64_t qwords[2];
} sd_id128_t;</programlisting>
<para>This union type allows accessing the 128-bit ID as 16
@ -108,37 +110,46 @@
<programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting>
<para><function>SD_ID128_NULL</function> may be used to refer to the 128bit ID consisting of only NUL
bytes.</para>
<para><function>SD_ID128_CONST_STR()</function> may be used to
convert constant 128-bit IDs into constant strings for output. The
following example code will output the string
"fc2e22bc6ee647b6b90729ab34a250b1":</para>
<programlisting>int main(int argc, char *argv[]) {
puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
}</programlisting>
<para><function>SD_ID128_FORMAT_STR</function> and
<para><function>SD_ID128_FORMAT_STR()</function> and
<function>SD_ID128_FORMAT_VAL()</function> may be used to format a
128-bit ID in a
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
format string, as shown in the following example:</para>
<programlisting>int main(int argc, char *argv[]) {
sd_id128_t id;
id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ".\n", SD_ID128_FORMAT_VAL(id));
return 0;
sd_id128_t id;
id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ".\n", SD_ID128_FORMAT_VAL(id));
return 0;
}</programlisting>
<para>Use <function>sd_id128_equal()</function> to compare two 128-bit IDs:</para>
<programlisting>int main(int argc, char *argv[]) {
sd_id128_t a, b, c;
a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e);
c = a;
assert(sd_id128_equal(a, c));
assert(!sd_id128_equal(a, b));
return 0;
sd_id128_t a, b, c;
a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e);
c = a;
assert(sd_id128_equal(a, c));
assert(!sd_id128_equal(a, b));
return 0;
}</programlisting>
<para>Use <function>sd_id128_is_null()</function> to check if an 128bit ID consists of only NUL bytes:</para>
<programlisting>int main(int argc, char *argv[]) {
assert(sd_id128_is_null(SD_ID128_NULL));
}</programlisting>
<para>Note that new, randomized IDs may be generated with

View File

@ -77,7 +77,6 @@
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_query_enumerate</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_enumerate_fields</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
@ -99,6 +98,21 @@
tool.</para>
</refsect1>
<refsect1>
<title>Thread safety</title>
<para>Functions that operate on the <structname>sd_journal</structname> object are thread
agnostic — given <structname>sd_journal</structname> pointer may only be used from one thread at
a time, but multiple threads may use multiple such objects safely. Other functions —
those that are used to send entries to the journal, like
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and similar, or those that are used to retrieve global information like
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_get_catalog_for_message_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>
— are thread-safe and may be called from multiple threads in parallel.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />
<refsect1>
@ -113,7 +127,6 @@
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_query_enumerate</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_enumerate_fields</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,

View File

@ -366,7 +366,7 @@
-ENXIO is returned.</para>
<para><function>sd_bus_creds_get_cgroup()</function> will retrieve
the cgroup path. See <ulink
the control group path. See <ulink
url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>.
</para>

View File

@ -66,12 +66,12 @@
<funcprototype>
<funcdef>uint64_t <function>sd_bus_creds_get_mask</function></funcdef>
<paramdef>const sd_bus_creds *<parameter>c</parameter></paramdef>
<paramdef>sd_bus_creds *<parameter>c</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>uint64_t <function>sd_bus_creds_get_augmented_mask</function></funcdef>
<paramdef>const sd_bus_creds *<parameter>c</parameter></paramdef>
<paramdef>sd_bus_creds *<parameter>c</parameter></paramdef>
</funcprototype>
<funcprototype>

View File

@ -169,6 +169,11 @@
</tgroup>
</table>
<para>For types "s" and "g" (unicode string or signature), the pointer may be
<constant>NULL</constant>, which is equivalent to an empty string. See
<citerefentry><refentrytitle>sd_bus_message_append_basic</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for the precise interpretation of those and other types.</para>
</refsect1>
<refsect1>

View File

@ -99,41 +99,27 @@
setting as negotiated by the program ultimately activated. By
default, file descriptor passing is enabled for both.</para>
<para><function>sd_bus_negotiate_timestamps()</function> controls
whether implicit sender timestamps shall be attached automatically
to all incoming messages. Takes a bus object and a boolean, which,
when true, enables timestamping, and, when false, disables it.
Use
<para><function>sd_bus_negotiate_timestamp()</function> controls whether implicit sender
timestamps shall be attached automatically to all incoming messages. Takes a bus object and a
boolean, which, when true, enables timestamping, and, when false, disables it. Use
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_seqnum</refentrytitle><manvolnum>3</manvolnum></citerefentry>
to query the timestamps of incoming messages. If negotiation is
disabled or not supported, these calls will fail with
<constant>-ENODATA</constant>. Note that not all transports
support timestamping of messages. Specifically, timestamping is
only available on the kdbus transport, but not on dbus1. The
timestamping is applied by the kernel and cannot be manipulated by
userspace. By default, message timestamping is not negotiated for
to query the timestamps of incoming messages. If negotiation is disabled or not supported, these
calls will fail with <constant>-ENODATA</constant>. Note that currently no transports support
timestamping of messages. By default, message timestamping is not negotiated for
connections.</para>
<para><function>sd_bus_negotiate_creds()</function> controls
whether and which implicit sender credentials shall be attached
automatically to all incoming messages. Takes a bus object and a
boolean indicating whether to enable or disable the credential
parts encoded in the bit mask value argument. Note that not all
transports support attaching sender credentials to messages, or do
not support all types of sender credential parameters, or might
suppress them under certain circumstances for individual
messages. Specifically, implicit sender credentials on messages
are only fully supported on kdbus transports, and dbus1 only
supports <constant>SD_BUS_CREDS_UNIQUE_NAME</constant>. The sender
credentials are attached by the kernel and cannot be manipulated
by userspace, and are thus suitable for authorization
decisions. By default, only
<constant>SD_BUS_CREDS_WELL_KNOWN_NAMES</constant> and
<constant>SD_BUS_CREDS_UNIQUE_NAME</constant> are enabled. In
fact, these two credential fields are always sent along and cannot
be turned off.</para>
<para><function>sd_bus_negotiate_creds()</function> controls whether and which implicit sender
credentials shall be attached automatically to all incoming messages. Takes a bus object and a
boolean indicating whether to enable or disable the credential parts encoded in the bit mask
value argument. Note that not all transports support attaching sender credentials to messages,
or do not support all types of sender credential parameters, or might suppress them under
certain circumstances for individual messages. Specifically, dbus1 only supports
<constant>SD_BUS_CREDS_UNIQUE_NAME</constant>. The sender credentials are suitable for
authorization decisions. By default, only <constant>SD_BUS_CREDS_WELL_KNOWN_NAMES</constant> and
<constant>SD_BUS_CREDS_UNIQUE_NAME</constant> are enabled. In fact, these two credential fields
are always sent along and cannot be turned off.</para>
<para>The <function>sd_bus_negotiate_fds()</function> function may
be called only before the connection has been started with

View File

@ -0,0 +1,261 @@
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
<!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 2016 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="sd_bus_track_add_name">
<refentryinfo>
<title>sd_bus_track_add_name</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>sd_bus_track_add_name</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_bus_track_add_name</refname>
<refname>sd_bus_track_add_sender</refname>
<refname>sd_bus_track_remove_name</refname>
<refname>sd_bus_track_remove_sender</refname>
<refname>sd_bus_track_count</refname>
<refname>sd_bus_track_count_sender</refname>
<refname>sd_bus_track_count_name</refname>
<refname>sd_bus_track_contains</refname>
<refname>sd_bus_track_first</refname>
<refname>sd_bus_track_next</refname>
<refpurpose>Add, remove and retrieve bus peers tracked in a bus peer tracking object</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_bus_track_add_name</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>const char* <parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_add_sender</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>sd_bus_message* <parameter>message</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_remove_name</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>const char* <parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_remove_sender</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>sd_bus_message* <parameter>message</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>unsigned <function>sd_bus_track_count</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_count_name</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>const char* <parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_count_sender</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>sd_bus_message* <parameter>message</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_contains</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
<paramdef>const char* <parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>const char* <function>sd_bus_track_first</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>const char* <function>sd_bus_track_next</function></funcdef>
<paramdef>sd_bus_track* <parameter>t</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_bus_track_add_name()</function> adds a peer to track to a bus peer tracking object. The first
argument should refer to a bus peer tracking object created with
<citerefentry><refentrytitle>sd_bus_track_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>, the second
name should refer to a D-Bus peer name to track, either in unique or well-known service format. If the name is not
tracked yet it will be added to the list of names to track. If it already is being tracked and non-recursive mode
is enabled, no operation is executed by this call. If recursive mode is enabled a per-name counter is increased by
one each time this call is invoked, and <function>sd_bus_track_remove_name()</function> has to be called as many
times as <function>sd_bus_track_add_name()</function> was invoked before in order to stop tracking of the name. Use
<citerefentry><refentrytitle>sd_bus_track_set_recursive</refentrytitle><manvolnum>3</manvolnum></citerefentry> to
switch from the default non-recursive mode to recursive mode, or back. Note that the specified name is tracked as
it is, well-known names are not resolved to unique names by this call. Note that multiple bus peer tracking objects
may track the same name.</para>
<para><function>sd_bus_track_remove_name()</function> undoes the effect of
<function>sd_bus_track_add_name()</function> and removes a bus peer name from the list of peers to watch. Depending
on whether non-recursive or recursive mode is enabled for the bus peer tracking object this call will either remove
the name fully from the tracking object, or will simply decrement the per-name counter by one, removing the name
only when the counter reaches zero (see above). Note that a bus peer disconnecting from the bus will implicitly
remove its names fully from the bus peer tracking object, regardless of the current per-name counter.</para>
<para><function>sd_bus_track_add_sender()</function> and <function>sd_bus_track_remove_sender()</function> are
similar to <function>sd_bus_track_add_name()</function> and <function>sd_bus_track_remove_name()</function> but
take a bus message as argument. The sender of this bus message is determined and added to/removed from the bus peer
tracking object. As messages always originate from unique names, and never from well-known names this means that
this call will effectively only add unique names to the bus peer tracking object.</para>
<para><function>sd_bus_track_count()</function> returns the number of names currently being tracked by the
specified bus peer tracking object. Note that this function always returns the actual number of names tracked, and
hence if <function>sd_bus_track_add_name()</function> has been invoked multiple times for the same name it is only
counted as one, regardless if recursive mode is used or not.</para>
<para><function>sd_bus_track_count_name()</function> returns the current per-name counter for the specified
name. If non-recursive mode is used this returns either 1 or 0, depending on whether the specified name has been
added to the tracking object before, or not. If recursive mode has been enabled, values larger than 1 may be
returned too, in case <function>sd_bus_track_add_name()</function> has been called multiple times for the same
name.</para>
<para><function>sd_bus_track_count_sender()</function> is similar to
<function>sd_bus_track_count_name()</function>, but takes a bus message object and returns the per-name counter
matching the sender of the message.</para>
<para><function>sd_bus_track_contains()</function> may be used to determine whether the specified name has been
added at least once to the specified bus peer tracking object.</para>
<para><function>sd_bus_track_first()</function> and <function>sd_bus_track_next()</function> may be used to
enumerate all names currently being tracked by the passed bus peer tracking
object. <function>sd_bus_track_first()</function> returns the first entry in the object, and resets an internally
maintained read index. Each subsequent invocation of <function>sd_bus_track_next()</function> returns the next name
contained in the bus object. If the end is reached <constant>NULL</constant> is returned. If no names have been
added to the object yet <function>sd_bus_track_first()</function> will return <constant>NULL</constant>
immediately. The order in which names are returned is undefined; in particular which name is considered the first
returned is not defined. If recursive mode is enabled and the same name has been added multiple times to the bus
peer tracking object it is only returned once by this enumeration. If new names are added to or existing names
removed from the bus peer tracking object while it is being enumerated the enumeration ends on the next invocation
of <function>sd_bus_track_next()</function> as <constant>NULL</constant> is returned.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<para>On success, <function>sd_bus_track_add_name()</function> and <function>sd_bus_track_add_sender()</function>
return 0 if the specified name has already been added to the bus peer tracking object before and positive if it
hasn't. On failure, they return a negative errno-style error code.</para>
<para><function>sd_bus_track_remove_name()</function> and <function>sd_bus_track_remove_sender()</function> return
positive if the specified name was previously tracked by the bus peer tracking object and has now been removed. In
non-recursive mode, 0 is returned if the specified name was not being tracked yet. In recursive mode
<constant>-EUNATCH</constant> is returned in this case. On failure, they return a negative errno-style error
code.</para>
<para><function>sd_bus_track_count()</function> returns the number of names currently being tracked, or 0 on
failure.</para>
<para><function>sd_bus_track_count_name()</function> and <function>sd_bus_track_count_sender()</function> return
the current per-name counter for the specified name or the sender of the specified message. Zero is returned for
names that are not being tracked yet, a positive value for names added at least once. Larger values than 1 are only
returned in recursive mode. On failure, a negative errno-style error code is returned.</para>
<para><function>sd_bus_track_contains()</function> returns the passed name if it exists in the bus peer tracking
object. On failure, and if the name has not been added yet <constant>NULL</constant> is returned.</para>
<para><function>sd_bus_track_first()</function> and <function>sd_bus_track_next()</function> return the first/next
name contained in the bus peer tracking object, and <constant>NULL</constant> if the end of the enumeration is
reached and on error.</para>
</refsect1>
<refsect1>
<title>Errors</title>
<para>Returned errors may indicate the following problems:</para>
<variablelist>
<varlistentry>
<term><constant>-EUNATCH</constant></term>
<listitem><para><function>sd_bus_track_remove_name()</function> or
<function>sd_bus_track_remove_sender()</function> have been invoked for a name not previously added to the bus
peer object.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<listitem><para>Specified parameter is invalid.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENOMEM</constant></term>
<listitem><para>Memory allocation failed.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Notes</title>
<para><function>sd_bus_track_add_name()</function> and the other calls described here are available as a shared library,
which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_track_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

263
man/sd_bus_track_new.xml Normal file
View File

@ -0,0 +1,263 @@
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
<!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 2016 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="sd_bus_track_new">
<refentryinfo>
<title>sd_bus_track_new</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>sd_bus_track_new</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_bus_track_new</refname>
<refname>sd_bus_track_ref</refname>
<refname>sd_bus_track_unref</refname>
<refname>sd_bus_track_unrefp</refname>
<refname>sd_bus_track_set_recursive</refname>
<refname>sd_bus_track_get_recursive</refname>
<refname>sd_bus_track_get_bus</refname>
<refname>sd_bus_track_get_userdata</refname>
<refname>sd_bus_track_set_userdata</refname>
<refpurpose>Track bus peers</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_bus_track_new</function></funcdef>
<paramdef>sd_bus* <parameter>bus</parameter></paramdef>
<paramdef>sd_bus_track** <parameter>ret</parameter></paramdef>
<paramdef>sd_bus_track_handler_t <parameter>handler</parameter></paramdef>
<paramdef>void* <parameter>userdata</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>sd_bus_track *<function>sd_bus_track_ref</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>sd_bus_track *<function>sd_bus_track_unref</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_bus_track_unrefp</function></funcdef>
<paramdef>sd_bus_track **<parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_get_recursive</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_track_set_recursive</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
<paramdef>int <parameter>b</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>sd_bus* <function>sd_bus_track_get_bus</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void* <function>sd_bus_track_get_userdata</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void* <function>sd_bus_track_set_userdata</function></funcdef>
<paramdef>sd_bus_track *<parameter>t</parameter></paramdef>
<paramdef>void *userdata</paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_bus_track_new()</function> creates a new bus peer tracking object. The object is allocated for
the specified bus, and returned in the <parameter>*ret</parameter> parameter. After use, the object should be freed
again by dropping the acquired reference with <function>sd_bus_track_unref()</function> (see below). A bus peer
tracking object may be used to keep track of peers on a specific IPC bus, for cases where peers are making use of
one or more local objects, in order to control the lifecycle of the local objects and ensure they stay around as
long as the peers needing them are around, and unreferenced (and possibly destroyed) as soon as all relevant peers
have vanished. Each bus peer tracking object may be used to track zero, one or more peers add a time. References to
specific bus peers are added via
<citerefentry><refentrytitle>sd_bus_track_add_name</refentrytitle><manvolnum>3</manvolnum></citerefentry> or
<function>sd_bus_track_add_sender()</function>. They may be dropped again via
<function>sd_bus_track_remove_name()</function> and
<function>sd_bus_track_remove_sender()</function>. Alternatively, references on peers are removed automatically
when they disconnect from the bus. If non-NULL the <parameter>handler</parameter> may specify a function that is
invoked whenever the last reference is dropped, regardless whether the reference is dropped explicitly via
<function>sd_bus_track_remove_name()</function> or implicitly because the peer disconnected from the bus. The final
argument <parameter>userdata</parameter> may be used to attach a generic user data pointer to the object. This
pointer is passed to the handler callback when it is invoked.</para>
<para><function>sd_bus_track_ref()</function> creates a new reference to a bus peer tracking object. This object
will not be destroyed until <function>sd_bus_track_unref()</function> has been called as many times plus once
more. Once the reference count has dropped to zero, the specified object cannot be used anymore, further calls to
<function>sd_bus_track_ref()</function> or <function>sd_bus_track_unref()</function> on the same object are
illegal.</para>
<para><function>sd_bus_track_unref()</function> destroys a reference to a bus peer tracking object.</para>
<para><function>sd_bus_track_unrefp()</function> is similar to <function>sd_bus_track_unref()</function> but takes
a pointer to a pointer to an <type>sd_bus_track</type> object. This call is useful in conjunction with GCC's and
LLVM's <ulink url="https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html">Clean-up Variable
Attribute</ulink>. Note that this function is defined as inline function.</para>
<para><function>sd_bus_track_ref()</function>, <function>sd_bus_track_unref()</function> and
<function>sd_bus_track_unrefp()</function> execute no operation if the passed in bus peer tracking object is
<constant>NULL</constant>.</para>
<para>Bus peer tracking objects may exist in two modes: by default they operate in non-recursive mode, but may
optionally be switched into recursive mode. If operating in the default non-recursive mode a peer is either tracked
or not tracked. In this mode invoking <function>sd_bus_track_add_name()</function> multiple times in a row for the
same peer is fully equivalent to calling it just once, as the call adds the peer to the set of tracked peers if
necessary, and executes no operation if the peer is already being tracked. A single invocation of
<function>sd_bus_track_remove_name()</function> removes the reference on the peer again, regardless how many times
<function>sd_bus_track_add_name()</function> was called before. If operating in recursive mode, the number of times
<function>sd_bus_track_add_name()</function> is invoked for the same peer name is counted and
<function>sd_bus_track_remove_name()</function> must be called the same number of times before the peer is not
tracked anymore, with the exception when the tracked peer vanishes from the bus, in which case the count is
irrelevant and the tracking of the specific peer is immediately
removed. <function>sd_bus_track_get_recursive()</function> may be used to determine whether the bus peer tracking
object is operating in recursive mode. <function>sd_bus_track_set_recursive()</function> may be used to enable or
disable recursive mode. By default a bus peer tracking object operates in non-recursive mode, and
<function>sd_bus_track_get_recursive()</function> for a newly allocated object hence returns a value equal to
zero. Use <function>sd_bus_track_set_recursive()</function> to enable recursive mode, right after allocation. It
takes a boolean argument to enable or disable recursive mode. Note that tracking objects for which
<function>sd_bus_track_add_name()</function> was already invoked at least once (and which hence track already one
or more peers) may not be switched from recursive to non-recursive mode anymore.</para>
<para><function>sd_bus_track_get_bus()</function> returns the bus object the bus peer tracking object belongs
to. It returns the bus object initially passed to <function>sd_bus_track_new()</function> when the object was
allocated.</para>
<para><function>sd_bus_track_get_userdata()</function> returns the generic user data pointer set on the bus peer
tracking object at the time of creation using <function>sd_bus_track_new()</function> or at a later time, using
<function>sd_bus_track_set_userdata()</function>.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<para>On success, <function>sd_bus_track_new()</function> and <function>sd_bus_track_set_recursive()</function>
return 0 or a positive integer. On failure, they return a negative errno-style error code.</para>
<para><function>sd_bus_track_ref()</function> always returns the argument.</para>
<para><function>sd_bus_track_unref()</function> always returns <constant>NULL</constant>.</para>
<para><function>sd_bus_track_get_recursive()</function> returns 0 if non-recursive mode is selected (default), and
greater than 0 if recursive mode is selected. On failure a negative errno-style error code is returned.</para>
<para><function>sd_bus_track_get_bus()</function> returns the bus object associated to the bus peer tracking
object.</para>
<para><function>sd_bus_track_get_userdata()</function> returns the generic user data pointer associated with the
bus peer tracking object. <function>sd_bus_track_set_userdata()</function> returns the previous user data pointer
set.</para>
</refsect1>
<refsect1>
<title>Reference ownership</title>
<para>The <function>sd_bus_track_new()</function> function creates a new object and the caller owns the sole
reference. When not needed anymore, this reference should be destroyed with
<function>sd_bus_track_unref()</function>.
</para>
</refsect1>
<refsect1>
<title>Errors</title>
<para>Returned errors may indicate the following problems:</para>
<variablelist>
<varlistentry>
<term><constant>-EBUSY</constant></term>
<listitem><para>Bus peers have already been added to the bus peer tracking object and
<function>sd_bus_track_set_recursive()</function> was called to change tracking mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<listitem><para>Specified parameter is invalid
(<constant>NULL</constant> in case of output
parameters).</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENOMEM</constant></term>
<listitem><para>Memory allocation failed.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Notes</title>
<para><function>sd_bus_track_new()</function> and the other calls described here are available as a shared library,
which can be compiled and linked to with the <constant>libsystemd</constant> <citerefentry
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>
<citerefentry><refentrytitle>sd_bus_track_add_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -183,8 +183,9 @@
<refsect1>
<title>Return Value</title>
<para>On success, <function>sd_event_new()</function> and
<function>sd_event_default()</function> return 0 or a positive
<para>On success, <function>sd_event_new()</function>,
<function>sd_event_default()</function> and
<function>sd_event_get_tid()</function> return 0 or a positive
integer. On failure, they return a negative errno-style error
code. <function>sd_event_ref()</function> always returns a pointer
to the event loop object passed

View File

@ -57,9 +57,9 @@
<funcsynopsisinfo>#include &lt;systemd/sd-event.h&gt;</funcsynopsisinfo>
<funcsynopsisinfo><token>enum</token> {
<constant>SD_EVENT_SOURCE_IMPORTANT</constant> = -100,
<constant>SD_EVENT_SOURCE_NORMAL</constant> = 0,
<constant>SD_EVENT_SOURCE_IDLE</constant> = 100,
<constant>SD_EVENT_PRIORITY_IMPORTANT</constant> = -100,
<constant>SD_EVENT_PRIORITY_NORMAL</constant> = 0,
<constant>SD_EVENT_PRIORITY_IDLE</constant> = 100,
};</funcsynopsisinfo>
<funcprototype>
@ -115,7 +115,7 @@
reliable. However, it is guaranteed that if events are seen on
multiple same-priority event sources at the same time, each one is
not dispatched again until all others have been dispatched
once. This behaviour guarantees that within each priority
once. This behavior guarantees that within each priority
particular event sources do not starve or dominate the event
loop.</para>

View File

@ -45,6 +45,7 @@
<refnamediv>
<refname>sd_id128_get_machine</refname>
<refname>sd_id128_get_boot</refname>
<refname>sd_id128_get_invocation</refname>
<refpurpose>Retrieve 128-bit IDs</refpurpose>
</refnamediv>
@ -62,6 +63,11 @@
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_get_invocation</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
@ -83,11 +89,15 @@
for more information. This function also internally caches the
returned ID to make this call a cheap operation.</para>
<para>Note that <function>sd_id128_get_boot()</function> always
returns a UUID v4 compatible ID.
<function>sd_id128_get_machine()</function> will also return a
UUID v4-compatible ID on new installations but might not on older.
It is possible to convert the machine ID into a UUID v4-compatible
<para><function>sd_id128_get_invocation()</function> returns the invocation ID of the currently executed
service. In its current implementation, this reads and parses the <varname>$INVOCATION_ID</varname> environment
variable that the service manager sets when activating a service, see
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details. The
ID is cached internally. In future a different mechanism to determine the invocation ID may be added.</para>
<para>Note that <function>sd_id128_get_boot()</function> and <function>sd_id128_get_invocation()</function> always
return UUID v4 compatible IDs. <function>sd_id128_get_machine()</function> will also return a UUID v4-compatible
ID on new installations but might not on older. It is possible to convert the machine ID into a UUID v4-compatible
one. For more information, see
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
@ -107,11 +117,10 @@
<refsect1>
<title>Notes</title>
<para>The <function>sd_id128_get_machine()</function> and
<function>sd_id128_get_boot()</function> interfaces are available
as a shared library, which can be compiled and linked to with the
<literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
<para>The <function>sd_id128_get_machine()</function>, <function>sd_id128_get_boot()</function> and
<function>sd_id128_get_invocation()</function> interfaces are available as a shared library, which can be compiled
and linked to with the <literal>libsystemd</literal> <citerefentry
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> file.</para>
</refsect1>
<refsect1>
@ -121,8 +130,9 @@
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>
</para>
</refsect1>

View File

@ -117,10 +117,10 @@
whether the specified file descriptor refers to a socket. If the
<parameter>family</parameter> parameter is not
<constant>AF_UNSPEC</constant>, it is checked whether the socket
is of the specified family (AF_UNIX, <constant>AF_INET</constant>,
...). If the <parameter>type</parameter> parameter is not 0, it is
checked whether the socket is of the specified type
(<constant>SOCK_STREAM</constant>,
is of the specified family (<constant>AF_UNIX</constant>,
<constant>AF_INET</constant>, ...). If the <parameter>type</parameter>
parameter is not 0, it is checked whether the socket is of the
specified type (<constant>SOCK_STREAM</constant>,
<constant>SOCK_DGRAM</constant>, ...). If the
<parameter>listening</parameter> parameter is positive, it is
checked whether the socket is in accepting mode, i.e.

View File

@ -168,6 +168,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function>,
<function>sd_journal_add_conjunction()</function> and

View File

@ -110,6 +110,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_enumerate_fields()</function> and <function>sd_journal_restart_fields()</function>
interfaces are available as a shared library, which can be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry

View File

@ -112,6 +112,10 @@
<refsect1>
<title>Notes</title>
<para>Function <function>sd_journal_get_catalog()</function> is thread-agnostic and only a
single thread may operate on a given <structname>sd_journal</structname> object. Function
<function>sd_journal_get_catalog_for_message_id() is thread-safe.</function></para>
<para>The <function>sd_journal_get_catalog()</function> and
<function>sd_journal_get_catalog_for_message_id()</function>
interfaces are available as a shared library, which can be

View File

@ -122,6 +122,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_get_cursor()</function> and
<function>sd_journal_test_cursor()</function> interfaces are
available as a shared library, which can be compiled and linked to

View File

@ -120,6 +120,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The
<function>sd_journal_get_cutoff_realtime_usec()</function> and
<function>sd_journal_get_cutoff_monotonic_usec()</function>

View File

@ -80,6 +80,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_get_usage()</function> interface is
available as a shared library, which can be compiled and linked to
with the

View File

@ -85,6 +85,18 @@
</para>
</refsect1>
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>Functions listed here are available as a shared library, which can be compiled and linked
to with the <constant>libsystemd</constant> <citerefentry
project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>

View File

@ -146,6 +146,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_next()</function>,
<function>sd_journal_previous()</function>,
<function>sd_journal_next_skip()</function> and

View File

@ -129,10 +129,13 @@
<para><function>sd_journal_open_directory()</function> is similar to <function>sd_journal_open()</function> but
takes an absolute directory path as argument. All journal files in this directory will be opened and interleaved
automatically. This call also takes a flags argument. The only flags parameter accepted by this call is
<constant>SD_JOURNAL_OS_ROOT</constant>. If specified, the journal files are searched below the usual
<filename>/var/log/journal</filename> and <filename>/run/log/journal</filename> relative to the specified path,
instead of directly beneath it.</para>
automatically. This call also takes a flags argument. The flags parameters accepted by this call are
<constant>SD_JOURNAL_OS_ROOT</constant>, <constant>SD_JOURNAL_SYSTEM</constant>, and
<constant>SD_JOURNAL_CURRENT_USER</constant>. If <constant>SD_JOURNAL_OS_ROOT</constant> is specified, journal
files are searched for below the usual <filename>/var/log/journal</filename> and
<filename>/run/log/journal</filename> relative to the specified path, instead of directly beneath it.
The other two flags limit which files are opened, the same as for <function>sd_journal_open()</function>.
</para>
<para><function>sd_journal_open_directory_fd()</function> is similar to
<function>sd_journal_open_directory()</function>, but takes a file descriptor referencing a directory in the file
@ -205,6 +208,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_open()</function>,
<function>sd_journal_open_directory()</function> and
<function>sd_journal_close()</function> interfaces are available

View File

@ -201,9 +201,10 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(
</refsect1>
<refsect1>
<title>Async signal safety</title>
<para><function>sd_journal_sendv()</function> is "async signal
safe" in the meaning of
<title>Thread safety</title>
<para>All functions listed here are thread-safe and may be called in parallel from multiple threads.</para>
<para><function>sd_journal_sendv()</function> is "async signal safe" in the meaning of
<citerefentry project='man-pages'><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
</para>

View File

@ -150,6 +150,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_query_unique()</function>,
<function>sd_journal_enumerate_unique()</function> and
<function>sd_journal_restart_unique()</function> interfaces are

View File

@ -144,6 +144,9 @@
<refsect1>
<title>Notes</title>
<para>All functions listed here are thread-agnostic and only a single thread may operate
on a given <structname>sd_journal</structname> object.</para>
<para>The <function>sd_journal_seek_head()</function>,
<function>sd_journal_seek_tail()</function>,
<function>sd_journal_seek_monotonic_usec()</function>,

View File

@ -104,6 +104,10 @@
<refsect1>
<title>Notes</title>
<para>Function <function>sd_journal_stream_fd()</function> is thread-safe and may be called
from multiple threads. All calls will return the same file descriptor, although temporarily
multiple file descriptors may be open.</para>
<para>The <function>sd_journal_stream_fd()</function> interface is
available as a shared library, which can be compiled and linked to
with the

View File

@ -205,28 +205,25 @@
<varlistentry>
<term>FDSTORE=1</term>
<listitem><para>Stores additional file descriptors in the
service manager. File descriptors sent this way will be
maintained per-service by the service manager and be passed
again using the usual file descriptor passing logic on the
next invocation of the service (see
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
This is useful for implementing service restart schemes where
services serialize their state to <filename>/run</filename>,
push their file descriptors to the system manager, and are
then restarted, retrieving their state again via socket
passing and <filename>/run</filename>. Note that the service
manager will accept messages for a service only if
<varname>FileDescriptorStoreMax=</varname> is set to non-zero
for it (defaults to zero). See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details. Multiple arrays of file descriptors may be sent
in separate messages, in which case the arrays are combined.
Note that the service manager removes duplicate file
descriptors before passing them to the service. Use
<function>sd_pid_notify_with_fds()</function> to send messages
with <literal>FDSTORE=1</literal>, see
below.</para></listitem>
<listitem><para>Stores additional file descriptors in the service manager. File
descriptors sent this way will be maintained per-service by the service manager
and will be passed again using the usual file descriptor passing logic on the next
invocation of the service, see
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
This is useful for implementing service restart schemes where services serialize
their state to <filename>/run</filename>, push their file descriptors to the
system manager, and are then restarted, retrieving their state again via socket
passing and <filename>/run</filename>. Note that the service manager will accept
messages for a service only if <varname>FileDescriptorStoreMax=</varname> is set
to non-zero for it (defaults to zero, see
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
File descriptors must be pollable, see
<citerefentry><refentrytitle>epoll_ctl</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
Multiple arrays of file descriptors may be sent in separate messages, in which
case the arrays are combined. Note that the service manager removes duplicate
file descriptors before passing them to the service. Use
<function>sd_pid_notify_with_fds()</function> to send messages with
<literal>FDSTORE=1</literal>, see below.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -28,6 +28,12 @@
</listitem>
</varlistentry>
<varlistentry id='no-ask-password'>
<term><option>--no-ask-password</option></term>
<listitem><para>Do not query the user for authentication for privileged operations.</para></listitem>
</varlistentry>
<varlistentry id='no-legend'>
<term><option>--no-legend</option></term>

View File

@ -156,6 +156,10 @@
<para>To list all units installed in the file system, use the
<command>list-unit-files</command> command instead.</para>
<para>When listing units with <command>list-dependencies</command>, recursively show
dependencies of all dependent units (by default only dependencies of target units are
shown).</para>
</listitem>
</varlistentry>
@ -229,6 +233,8 @@
of <command>status</command>, <command>list-units</command>,
<command>list-jobs</command>, and
<command>list-timers</command>.</para>
<para>Also, show installation targets in the output of
<command>is-enabled</command>.</para>
</listitem>
</varlistentry>
@ -302,7 +308,7 @@
<para><literal>ignore-requirements</literal> is similar to
<literal>ignore-dependencies</literal>, but only causes the
requirement dependencies to be ignored, the ordering
dependencies will still be honoured.</para>
dependencies will still be honored.</para>
</listitem>
</varlistentry>
@ -359,7 +365,20 @@
to finish. If this is not specified, the job will be
verified, enqueued and <command>systemctl</command> will
wait until the unit's start-up is completed. By passing this
argument, it is only verified and enqueued.</para>
argument, it is only verified and enqueued. This option may not be
combined with <option>--wait</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--wait</option></term>
<listitem>
<para>Synchronously wait for started units to terminate again.
This option may not be combined with <option>--no-block</option>.
Note that this will wait forever if any given unit never terminates
(by itself or by getting stopped explicitly); particularly services
which use <literal>RemainAfterExit=yes</literal>.</para>
</listitem>
</varlistentry>
@ -527,8 +546,10 @@
<listitem>
<para>When used with
<command>enable</command>/<command>disable</command>/<command>is-enabled</command>
(and related commands), use an alternate root path when
looking for unit files.</para>
(and related commands), use the specified root path when looking for unit
files. If this option is present, <command>systemctl</command> will operate on
the file system directly, instead of communicating with the <command>systemd</command>
daemon to carry out changes.</para>
</listitem>
</varlistentry>
@ -609,7 +630,7 @@
<listitem>
<para>When used with <command>list-dependencies</command>,
<command>list-units</command> or <command>list-machines</command>, the
<command>list-units</command> or <command>list-machines</command>,
the output is printed as a list instead of a tree, and the bullet
circles are omitted.</para>
</listitem>
@ -638,13 +659,13 @@
<term><command>list-units <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
<listitem>
<para>List units that <command>systemd</command> has loaded. This includes units that
are either referenced directly or through a dependency, or units that were active in the
past and have failed. By default only units which are active, have pending jobs, or have
failed are shown; this can be changed with option <option>--all</option>. If one or more
<replaceable>PATTERN</replaceable>s are specified, only units matching one of them are
shown. The units that are shown are additionally filtered by <option>--type=</option>
and <option>--state=</option> if those options are specified.</para>
<para>List units that <command>systemd</command> currently has in memory. This includes units that are
either referenced directly or through a dependency, units that are pinned by applications programmatically,
or units that were active in the past and have failed. By default only units which are active, have pending
jobs, or have failed are shown; this can be changed with option <option>--all</option>. If one or more
<replaceable>PATTERN</replaceable>s are specified, only units matching one of them are shown. The units
that are shown are additionally filtered by <option>--type=</option> and <option>--state=</option> if those
options are specified.</para>
<para>This is the default command.</para>
</listitem>
@ -654,9 +675,8 @@
<term><command>list-sockets <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
<listitem>
<para>List socket units ordered by listening address.
If one or more <replaceable>PATTERN</replaceable>s are
specified, only socket units matching one of them are
<para>List socket units currently in memory, ordered by listening address. If one or more
<replaceable>PATTERN</replaceable>s are specified, only socket units matching one of them are
shown. Produces output similar to
<programlisting>
LISTEN UNIT ACTIVATES
@ -670,8 +690,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
is not suitable for programmatic consumption.
</para>
<para>See also the options <option>--show-types</option>,
<option>--all</option>, and <option>--state=</option>.</para>
<para>Also see <option>--show-types</option>, <option>--all</option>, and <option>--state=</option>.</para>
</listitem>
</varlistentry>
@ -679,13 +698,11 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<term><command>list-timers <optional><replaceable>PATTERN</replaceable>...</optional></command></term>
<listitem>
<para>List timer units ordered by the time they elapse
next. If one or more <replaceable>PATTERN</replaceable>s
are specified, only units matching one of them are shown.
<para>List timer units currently in memory, ordered by the time they elapse next. If one or more
<replaceable>PATTERN</replaceable>s are specified, only units matching one of them are shown.
</para>
<para>See also the options <option>--all</option> and
<option>--state=</option>.</para>
<para>Also see <option>--all</option> and <option>--state=</option>.</para>
</listitem>
</varlistentry>
@ -696,8 +713,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<para>Start (activate) one or more units specified on the
command line.</para>
<para>Note that glob patterns operate on the set of primary names of currently loaded units. Units which
are not active and are not in a failed state usually are not loaded, and will not be matched by any
<para>Note that glob patterns operate on the set of primary names of units currently in memory. Units which
are not active and are not in a failed state usually are not in memory, and will not be matched by any
pattern. In addition, in case of instantiated units, systemd is often unaware of the instance name until
the instance has been started. Therefore, using glob patterns with <command>start</command> has limited
usefulness. Also, secondary alias names of units are not considered.</para>
@ -860,8 +877,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<para>Show properties of one or more units, jobs, or the
manager itself. If no argument is specified, properties of
the manager will be shown. If a unit name is specified,
properties of the unit is shown, and if a job ID is
specified, properties of the job is shown. By default, empty
properties of the unit are shown, and if a job ID is
specified, properties of the job are shown. By default, empty
properties are suppressed. Use <option>--all</option> to
show those too. To select specific properties to show, use
<option>--property=</option>. This command is intended to be
@ -877,7 +894,11 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<para>Show backing files of one or more units. Prints the
"fragment" and "drop-ins" (source files) of units. Each
file is preceded by a comment which includes the file
name.</para>
name. Note that this shows the contents of the backing files
on disk, which may not match the system manager's
understanding of these units if any unit files were
updated on disk and the <command>daemon-reload</command>
command wasn't issued since.</para>
</listitem>
</varlistentry>
<varlistentry>
@ -993,7 +1014,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
desired, combine this command with the <option>--now</option> switch, or invoke <command>start</command>
with appropriate arguments later. Note that in case of unit instance enablement (i.e. enablement of units of
the form <filename>foo@bar.service</filename>), symlinks named the same as instances are created in the
unit configuration diectory, however they point to the single template unit file they are instantiated
unit configuration directory, however they point to the single template unit file they are instantiated
from.</para>
<para>This command expects either valid unit names (in which case various unit file directories are
@ -1069,8 +1090,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<listitem>
<para>Reenable one or more units, as specified on the command line. This is a combination of
<command>disable</command> and <command>enable</command> and is useful to reset the symlinks a unit file is
enabled with to the defaults configured in its <literal>[Install]</literal> section. This commands expects
a unit uname only, it does not accept paths to unit files.</para>
enabled with to the defaults configured in its <literal>[Install]</literal> section. This command expects
a unit name only, it does not accept paths to unit files.</para>
</listitem>
</varlistentry>
@ -1088,7 +1109,8 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
enabled and disabled, or only enabled, or only disabled.</para>
<para>If the unit carries no install information, it will be silently ignored
by this command.</para>
by this command. <replaceable>NAME</replaceable> must be the real unit name,
any alias names are ignored silently.</para>
<para>For more information on the preset policy format, see
<citerefentry><refentrytitle>systemd.preset</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
@ -1120,6 +1142,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
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 <option>--quiet</option>.
To show installation targets, use <option>--full</option>.
</para>
<table>
@ -1242,7 +1265,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<literal>foo.service.d/</literal> with all their contained files are removed, both below the persistent and
runtime configuration directories (i.e. below <filename>/etc/systemd/system</filename> and
<filename>/run/systemd/system</filename>); if the unit file has a vendor-supplied version (i.e. a unit file
located below <filename>/usr</filename>) any matching peristent or runtime unit file that overrides it is
located below <filename>/usr</filename>) any matching persistent or runtime unit file that overrides it is
removed, too. Note that if a unit file has no vendor-supplied version (i.e. is only defined below
<filename>/etc/systemd/system</filename> or <filename>/run/systemd/system</filename>, but not in a unit
file stored below <filename>/usr</filename>), then it is not removed. Also, if a unit is masked, it is
@ -1676,20 +1699,15 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<term><command>switch-root <replaceable>ROOT</replaceable> <optional><replaceable>INIT</replaceable></optional></command></term>
<listitem>
<para>Switches to a different root directory and executes a
new system manager process below it. This is intended for
usage in initial RAM disks ("initrd"), and will transition
from the initrd's system manager process (a.k.a. "init"
process) to the main system manager process. This call takes two
arguments: the directory that is to become the new root directory, and
the path to the new system manager binary below it to
execute as PID 1. If the latter is omitted or the empty
string, a systemd binary will automatically be searched for
and used as init. If the system manager path is omitted or
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.</para>
<para>Switches to a different root directory and executes a new system manager process below it. This is
intended for usage in initial RAM disks ("initrd"), and will transition from the initrd's system manager
process (a.k.a. "init" process) to the main system manager process which is loaded from the actual host
volume. This call takes two arguments: the directory that is to become the new root directory, and the path
to the new system manager binary below it to execute as PID 1. If the latter is omitted or the empty
string, a systemd binary will automatically be searched for and used as init. If the system manager path is
omitted, equal to the empty string or identical to the path to the systemd binary, 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 phase.</para>
</listitem>
</varlistentry>
@ -1746,7 +1764,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
are equivalent to:
<programlisting># systemctl status dev-sda.device
# systemctl status home.mount</programlisting>
In the second case, shell-style globs will be matched against the primary names of all currently loaded units;
In the second case, shell-style globs will be matched against the primary names of all units currently in memory;
literal unit names, with or without a suffix, will be treated as in the first case. This means that literal unit
names always refer to exactly one unit, but globs may match zero units and this is not considered an
error.</para>
@ -1758,11 +1776,11 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
<literal>[]</literal> may be used. See
<citerefentry project='man-pages'><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more details. The patterns are matched against the primary names of
currently loaded units, and patterns which do not match anything
units currently in memory, and patterns which do not match anything
are silently skipped. For example:
<programlisting># systemctl stop sshd@*.service</programlisting>
will stop all <filename>sshd@.service</filename> instances. Note that alias names of units, and units that aren't
loaded are not considered for glob expansion.
in memory are not considered for glob expansion.
</para>
<para>For unit file commands, the specified <replaceable>NAME</replaceable> should be the name of the unit file
@ -1804,6 +1822,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
</variablelist>
<xi:include href="less-variables.xml" xpointer="pager"/>
<xi:include href="less-variables.xml" xpointer="less"/>
<xi:include href="less-variables.xml" xpointer="lesscharset"/>
</refsect1>
<refsect1>

View File

@ -181,14 +181,15 @@
<option>--log-target=</option>, described in
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
<para><command>systemd-analyze verify</command> will load unit
files and print warnings if any errors are detected. Files
specified on the command line will be loaded, but also any other
units referenced by them. This command works by prepending the
directories for all command line arguments at the beginning of the
unit load path, which means that all units files found in those
directories will be used in preference to the unit files found in
the standard locations, even if not listed explicitly.</para>
<para><command>systemd-analyze verify</command> will load unit files and print
warnings if any errors are detected. Files specified on the command line will be
loaded, but also any other units referenced by them. The full unit search path is
formed by combining the directories for all command line arguments, and the usual unit
load paths (variable <varname>$SYSTEMD_UNIT_PATH</varname> is supported, and may be
used to replace or augment the compiled in set of unit load paths; see
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
All units files present in the directories containing the command line arguments will
be used in preference to the other paths.</para>
<para>If no command is passed, <command>systemd-analyze
time</command> is implied.</para>

View File

@ -107,7 +107,7 @@
<citerefentry><refentrytitle>systemd-sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
</para>
<para>The behaviour of <command>systemd-coredump</command> itself is configured through the configuration file
<para>The behavior of <command>systemd-coredump</command> itself is configured through the configuration file
<filename>/etc/systemd/coredump.conf</filename> and corresponding snippets
<filename>/etc/systemd/coredump.conf.d/*.conf</filename>, see
<citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. A new

View File

@ -50,7 +50,8 @@
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-detect-virt <arg choice="opt" rep="repeat">OPTIONS</arg></command>
<command>systemd-detect-virt</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
@ -88,7 +89,7 @@
</thead>
<tbody>
<row>
<entry valign="top" morerows="9">VM</entry>
<entry valign="top" morerows="10">VM</entry>
<entry><varname>qemu</varname></entry>
<entry>QEMU software virtualization</entry>
</row>
@ -138,6 +139,11 @@
<entry>Parallels Desktop, Parallels Server</entry>
</row>
<row>
<entry><varname>bhyve</varname></entry>
<entry>bhyve, FreeBSD hypervisor</entry>
</row>
<row>
<entry valign="top" morerows="5">Container</entry>
<entry><varname>openvz</varname></entry>
@ -212,6 +218,16 @@
environment or not.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--private-users</option></term>
<listitem><para>Detect whether invoked in a user namespace. In this mode, no
output is written, but the return value indicates whether the process was invoked
inside of a user namespace or not. See
<citerefentry project='man-pages'><refentrytitle>user_namespaces</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more information.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<term><option>--quiet</option></term>
@ -238,7 +254,8 @@
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
<citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>namespaces</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>

View File

@ -97,7 +97,7 @@
<listitem><para>Inserts the escaped strings in a unit name
template. Takes a unit name template such as
<filename>foobar@.service</filename> May not be used in
<filename>foobar@.service</filename>. May not be used in
conjunction with <option>--suffix=</option>,
<option>--unescape</option> or
<option>--mangle</option>.</para></listitem>
@ -108,9 +108,10 @@
<term><option>-p</option></term>
<listitem><para>When escaping or unescaping a string, assume
it refers to a file system path. This enables special
processing of the initial <literal>/</literal> of the
path.</para></listitem>
it refers to a file system path. This eliminates leading,
trailing or duplicate <literal>/</literal> characters
and rejects <literal>.</literal> and <literal>..</literal>
path components.</para></listitem>
</varlistentry>
<varlistentry>
@ -143,7 +144,7 @@
<refsect1>
<title>Examples</title>
<para>Escape a single string:</para>
<para>To escape a single string:</para>
<programlisting>$ systemd-escape 'Hallöchen, Meister'
Hall\xc3\xb6chen\x2c\x20Meister</programlisting>
@ -155,7 +156,7 @@ Hallöchen, Meister</programlisting>
<programlisting>$ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"
tmp-waldi-foobar.mount</programlisting>
<para>To generate instance names of three strings</para>
<para>To generate instance names of three strings:</para>
<programlisting>$ systemd-escape --template=systemd-nspawn@.service 'My Container 1' 'containerb' 'container/III'
systemd-nspawn@My\x20Container\x201.service systemd-nspawn@containerb.service systemd-nspawn@container-III.service</programlisting>
</refsect1>

View File

@ -137,6 +137,11 @@
<entry>Swap</entry>
<entry>All swap partitions located on the disk the root partition is located on are enabled.</entry>
</row>
<row>
<entry>c12a7328-f81f-11d2-ba4b-00a0c93ec93b</entry>
<entry>EFI System Partition (ESP)</entry>
<entry>The first ESP located on the disk the root partition is located on is mounted to <filename>/boot</filename> or <filename>/efi</filename>, see below.</entry>
</row>
</tbody>
</tgroup>
</table>
@ -150,16 +155,14 @@
<filename>/etc/crypttab</filename> with a different device mapper
device name.</para>
<para>Mount and automount units for the EFI System Partition (ESP),
mounting it to <filename>/boot</filename>, are generated on EFI
systems where the boot loader communicates the used ESP to the operating
system. Since this generator creates an automount unit, the mount will
only be activated on-demand, when accessed. On systems where
<filename>/boot</filename> is an explicitly configured mount
(for example, listed in
<citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
or where the <filename>/boot</filename> mount point is non-empty, no
mount units are generated.</para>
<para>Mount and automount units for the EFI System Partition (ESP) are generated on EFI systems. The ESP is mounted
to <filename>/boot</filename>, unless a mount point directory <filename>/efi</filename> exists, in which case it is
mounted there. Since this generator creates an automount unit, the mount will only be activated on-demand, when
accessed. On systems where <filename>/boot</filename> (or <filename>/efi</filename> if it exists) is an explicitly
configured mount (for example, listed in <citerefentry
project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>) or where the
<filename>/boot</filename> (or <filename>/efi</filename>) mount point is non-empty, no mount units are
generated.</para>
<para>When using this generator in conjunction with btrfs file
systems, make sure to set the correct default subvolumes on them,

View File

@ -61,7 +61,7 @@
<title>Description</title>
<para><command>systemd-inhibit</command> may be used to execute a
program with a shutdown, sleep or idle inhibitor lock taken. The
program with a shutdown, sleep, or idle inhibitor lock taken. The
lock will be acquired before the specified command line is
executed and released afterwards.</para>

View File

@ -100,6 +100,16 @@
with <option>--cert=</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-D <replaceable>DIR</replaceable></option></term>
<term><option>--directory=<replaceable>DIR</replaceable></option></term>
<listitem><para>Takes a directory path as argument. If
specified, <command>systemd-journal-gatewayd</command> will serve the
specified journal directory <replaceable>DIR</replaceable> instead of
the default runtime and system journal paths.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>

View File

@ -121,8 +121,8 @@
<replaceable>ADDRESS</replaceable>. This URL should refer to the
root of a remote
<citerefentry><refentrytitle>systemd-journal-gatewayd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
instance (e.g. <ulink>http://some.host:19531/</ulink> or
<ulink>https://some.host:19531/</ulink>).</para></listitem>
instance, e.g. http://some.host:19531/ or
https://some.host:19531/.</para></listitem>
</varlistentry>
</variablelist>
@ -250,20 +250,19 @@
</varlistentry>
<varlistentry>
<term><option>--compress</option></term>
<term><option>--no-compress</option></term>
<term><option>--compress</option> [<replaceable>BOOL</replaceable>]</term>
<listitem><para>Compress or not, respectively, the data in the
journal using XZ.</para></listitem>
<listitem><para>If this is set to <literal>yes</literal> then compress
the data in the journal using XZ. The default is <literal>yes</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--seal</option></term>
<term><option>--no-seal</option></term>
<term><option>--seal</option> [<replaceable>BOOL</replaceable>]</term>
<listitem><para>Periodically sign or not, respectively, the
data in the journal using Forward Secure Sealing.
</para></listitem>
<listitem><para>If this is set to <literal>yes</literal> then
periodically sign the data in the journal using Forward Secure Sealing.
The default is <literal>no</literal>.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -84,7 +84,7 @@
management</para></listitem>
</itemizedlist>
<para>User sessions are registered in logind via the
<para>User sessions are registered with logind via the
<citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
PAM module.</para>

View File

@ -82,7 +82,7 @@
<filename>/etc/machine-id</filename>.</para></listitem>
<listitem><para>If run inside a KVM virtual machine and a UUID
is was configured (via the <option>-uuid</option>
is configured (via the <option>-uuid</option>
option), this UUID is used to initialize the machine ID. The
caller must ensure that the UUID passed is sufficiently unique
and is different for every booted instance of the
@ -154,7 +154,7 @@
<varlistentry>
<term><option>--print</option></term>
<listitem><para>Print the machine ID generated or commited after the operation is complete.</para></listitem>
<listitem><para>Print the machine ID generated or committed after the operation is complete.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />

295
man/systemd-mount.xml Normal file
View File

@ -0,0 +1,295 @@
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
<!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 2016 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-mount"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-mount</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-mount</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-mount</refname>
<refpurpose>Establish a mount or auto-mount point transiently</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-mount</command>
<arg choice="opt" rep="repeat"><replaceable>OPTIONS</replaceable></arg>
<arg choice="plain"><replaceable>WHAT</replaceable></arg>
<arg choice="opt"><replaceable>WHERE</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-mount</command>
<arg choice="opt" rep="repeat"><replaceable>OPTIONS</replaceable></arg>
<arg choice="plain"><option>--list</option></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>systemd-mount</command> may be used to create and start a transient <filename>.mount</filename> or
<filename>.automount</filename> unit of the file system <replaceable>WHAT</replaceable> on the mount point
<replaceable>WHERE</replaceable>.</para>
<para>In many ways, <command>systemd-mount</command> is similar to the lower-level
<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> command, however instead
of executing the mount operation directly and immediately, <command>systemd-mount</command> schedules it through
the service manager job queue, so that it may pull in further dependencies (such as parent mounts, or a file system
checker to execute a priori), and may make use of the auto-mounting logic.</para>
<para>The command takes either one or two arguments. If only one argument is specified it should refer to a block
device containing a file system (e.g. <literal>/dev/sdb1</literal>), which is then probed for a label and other
metadata, and is mounted to a directory whose name is generated from the label. In this mode the block device must
exist at the time of invocation of the command, so that it may be probed. If the device is found to be a removable
block device (e.g. a USB stick) an automount point instead of a regular mount point is created (i.e. the
<option>--automount=</option> option is implied, see below).</para>
<para>If two arguments are specified the first indicates the mount source (the <replaceable>WHAT</replaceable>) and
the second indicates the path to mount it on (the <replaceable>WHERE</replaceable>). In this mode no probing of the
source is attempted, and a backing device node doesn't have to exist yet. However, if this mode is combined with
<option>--discover</option>, device node probing for additional metadata is enabled, and much like in the
single-argument case discussed above the specified device has to exist at the time of invocation of the
command.</para>
<para>Use the <option>--list</option> command to show a terse table of all local, known block devices with file
systems that may be mounted with this command.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--no-block</option></term>
<listitem>
<para>Do not synchronously wait for the requested operation to finish. If this is not specified, the job will
be verified, enqueued and <command>systemd-mount</command> will wait until the mount or automount unit's
start-up is completed. By passing this argument, it is only verified and enqueued.</para>
</listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="no-pager"/>
<xi:include href="standard-options.xml" xpointer="no-ask-password"/>
<varlistentry>
<term><option>--quiet</option></term>
<term><option>-q</option></term>
<listitem><para>Suppresses additional informational output while running.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--discover</option></term>
<listitem><para>Enable probing of the mount source. This switch is implied if a single argument is specified on
the command line. If passed, additional metadata is read from the device to enhance the unit to create. For
example, a descriptive string for the transient units is generated from the file system label and device
model. Moreover if a removable block device (e.g. USB stick) is detected an automount unit instead of a regular
mount unit is created, with a short idle time-out, in order to ensure the file-system is placed in a clean
state quickly after each access.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--type=</option></term>
<term><option>-t</option></term>
<listitem><para>Specifies the file system type to mount (e.g. <literal>vfat</literal>, <literal>ext4</literal>,
…). If omitted (or set to <literal>auto</literal>) the file system is determined automatically.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--options=</option></term>
<term><option>-o</option></term>
<listitem><para>Additional mount options for the mount point.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fsck=</option></term>
<listitem><para>Takes a boolean argument, defaults to on. Controls whether to run a file system check
immediately before the mount operation. In the automount case (see <option>--automount=</option> below) the
check will be run the moment the first access to the device is made, which might slightly delay the
access.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--description=</option></term>
<listitem><para>Provide a description for the mount or automount unit. See <varname>Description=</varname> in
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--property=</option></term>
<term><option>-p</option></term>
<listitem><para>Sets a unit property for the mount unit that is created. This takes an assignment in the same
format as <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>set-property</command> command.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--automount=</option></term>
<listitem><para>Takes a boolean argument. Controls whether to create an automount point or a regular mount
point. If true an automount point is created that is backed by the actual file system at the time of first
access. If false a plain mount point is created that is backed by the actual file system immediately. Automount
points have the benefit that the file system stays unmounted and hence in clean state until it is first
accessed. In automount mode the <option>--timeout-idle-sec=</option> switch (see below) may be used to ensure
the mount point is unmounted automatically after the last access and an idle period passed.</para>
<para>If this switch is not specified it defaults to false. If not specified and <option>--discover</option> is
used (or only a single argument passed, which implies <option>--discover</option>, see above), and the file
system block device is detected to be removable, it is set to true, in order to increase the chance that the
file system is in a fully clean state if the device is unplugged abruptly.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-A</option></term>
<listitem><para>Equivalent to <option>--automount=yes</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--timeout-idle-sec=</option></term>
<listitem><para>Takes a time value that controls the idle timeout in automount mode. If set to
<literal>infinity</literal> (the default) no automatic unmounts are done. Otherwise the file system backing the
automount point is detached after the last access and the idle timeout passed. See
<citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry> for details on
the time syntax supported. This option has no effect if only a regular mount is established, and automounting
is not used.</para>
<para>Note that if <option>--discover</option> is used (or only a single argument passed, which implies
<option>--discover</option>, see above), and the file system block device is detected to be removable,
<option>--timeout-idle-sec=1s</option> is implied.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--automount-property=</option></term>
<listitem><para>Similar to <option>--property=</option>, but applies additional properties to the automount
unit created, instead of the mount unit.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--bind-device=</option></term>
<listitem><para>Takes a boolean argument, defaults to off. This option only has an effect in automount mode,
and controls whether the automount unit shall be bound to the backing device's lifetime. If enabled, the
automount point will be removed automatically when the backing device vanishes. If disabled the automount point
stays around, and subsequent accesses will block until backing device is replugged. This option has no effect
in case of non-device mounts, such as network or virtual file system mounts.</para>
<para>Note that if <option>--discover</option> is used (or only a single argument passed, which implies
<option>--discover</option>, see above), and the file system block device is detected to be removable, this
option is implied.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--list</option></term>
<listitem><para>Instead of establishing a mount or automount point, print a terse list of block devices
containing file systems that may be mounted with <literal>systemd-mount</literal>, along with useful metadata
such as labels, etc.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="user" />
<xi:include href="user-system-options.xml" xpointer="system" />
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<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>The udev Database</title>
<para>If <option>--discover</option> is used, <command>systemd-mount</command> honors a couple of additional udev
properties of block devices:</para>
<variablelist class='udev-directives'>
<varlistentry>
<term><varname>SYSTEMD_MOUNT_OPTIONS=</varname></term>
<listitem><para>The mount options to use, if <option>--options=</option> is not used.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SYSTEMD_MOUNT_WHERE=</varname></term>
<listitem><para>The file system path to place the mount point at, instead of the automatically generated
one.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -274,8 +274,7 @@
signals. It is recommended to use this mode to invoke arbitrary commands in containers, unless they have been
modified to run correctly as PID 1. Or in other words: this switch should be used for pretty much all commands,
except when the command refers to an init or shell implementation, as these are generally capable of running
correctly as PID 1. This option may not be combined with <option>--boot</option> or
<option>--share-system</option>.</para>
correctly as PID 1. This option may not be combined with <option>--boot</option>.</para>
</listitem>
</varlistentry>
@ -285,8 +284,7 @@
<listitem><para>Automatically search for an init binary and invoke it as PID 1, instead of a shell or a user
supplied program. If this option is used, arguments specified on the command line are used as arguments for the
init binary. This option may not be combined with <option>--as-pid2</option> or
<option>--share-system</option>.</para>
init binary. This option may not be combined with <option>--as-pid2</option>.</para>
<para>The following table explains the different modes of invocation and relationship to
<option>--as-pid2</option> (see above):</para>
@ -407,41 +405,42 @@
purposes (usually in the range beyond the host's UID/GID 65536). The parameter may be specified as follows:</para>
<orderedlist>
<listitem><para>The value <literal>no</literal> turns off user namespacing. This is the default.</para></listitem>
<listitem><para>If one or two colon-separated numbers are specified, user namespacing is turned on. The first
parameter specifies the first host UID/GID to assign to the container, the second parameter specifies the
number of host UIDs/GIDs to assign to the container. If the second parameter is omitted, 65536 UIDs/GIDs are
assigned.</para></listitem>
<listitem><para>The value <literal>yes</literal> (or the omission of a parameter) turns on user
namespacing. The UID/GID range to use is determined automatically from the file ownership of the root
directory of the container's directory tree. To use this option, make sure to prepare the directory tree in
advance, and ensure that all files and directories in it are owned by UIDs/GIDs in the range you'd like to
use. Also, make sure that used file ACLs exclusively reference UIDs/GIDs in the appropriate range. If this
mode is used the number of UIDs/GIDs assigned to the container for use is 65536, and the UID/GID of the
root directory must be a multiple of 65536.</para></listitem>
<listitem><para>If the parameter is omitted, or true, user namespacing is turned on. The UID/GID range to
use is determined automatically from the file ownership of the root directory of the container's directory
tree. To use this option, make sure to prepare the directory tree in advance, and ensure that all files and
directories in it are owned by UIDs/GIDs in the range you'd like to use. Also, make sure that used file ACLs
exclusively reference UIDs/GIDs in the appropriate range. If this mode is used the number of UIDs/GIDs
assigned to the container for use is 65536, and the UID/GID of the root directory must be a multiple of
65536.</para></listitem>
<listitem><para>The value "pick" turns on user namespacing. In this case the UID/GID range is automatically
chosen. As first step, the file owner of the root directory of the container's directory tree is read, and it
is checked that it is currently not used by the system otherwise (in particular, that no other container is
using it). If this check is successful, the UID/GID range determined this way is used, similar to the
behaviour if "yes" is specified. If the check is not successful (and thus the UID/GID range indicated in the
root directory's file owner is already used elsewhere) a new currently unused UID/GID range of 65536
UIDs/GIDs is randomly chosen between the host UID/GIDs of 524288 and 1878982656, always starting at a
multiple of 65536. This setting implies <option>--private-users-chown</option> (see below), which has the
effect that the files and directories in the container's directory tree will be owned by the appropriate
users of the range picked. Using this option makes user namespace behaviour fully automatic. Note that the
first invocation of a previously unused container image might result in picking a new UID/GID range for it,
and thus in the (possibly expensive) file ownership adjustment operation. However, subsequent invocations of
the container will be cheap (unless of course the picked UID/GID range is assigned to a different use by
then).</para></listitem>
<listitem><para>If the parameter is false, user namespacing is turned off. This is the default.</para>
</listitem>
<listitem><para>Finally if one or two colon-separated numeric parameters are specified, user namespacing is
turned on, too. The first parameter specifies the first host UID/GID to assign to the container, the second
parameter specifies the number of host UIDs/GIDs to assign to the container. If the second parameter is
omitted, 65536 UIDs/GIDs are assigned.</para></listitem>
<listitem><para>The special value <literal>pick</literal> turns on user namespacing. In this case the UID/GID
range is automatically chosen. As first step, the file owner of the root directory of the container's
directory tree is read, and it is checked that it is currently not used by the system otherwise (in
particular, that no other container is using it). If this check is successful, the UID/GID range determined
this way is used, similar to the behavior if "yes" is specified. If the check is not successful (and thus
the UID/GID range indicated in the root directory's file owner is already used elsewhere) a new currently
unused UID/GID range of 65536 UIDs/GIDs is randomly chosen between the host UID/GIDs of 524288 and
1878982656, always starting at a multiple of 65536. This setting implies
<option>--private-users-chown</option> (see below), which has the effect that the files and directories in
the container's directory tree will be owned by the appropriate users of the range picked. Using this option
makes user namespace behavior fully automatic. Note that the first invocation of a previously unused
container image might result in picking a new UID/GID range for it, and thus in the (possibly expensive) file
ownership adjustment operation. However, subsequent invocations of the container will be cheap (unless of
course the picked UID/GID range is assigned to a different use by then).</para></listitem>
</orderedlist>
<para>It is recommended to assign at least 65536 UIDs/GIDs to each container, so that the usable UID/GID range in the
container covers 16 bit. For best security, do not assign overlapping UID/GID ranges to multiple containers. It is
hence a good idea to use the upper 16 bit of the host 32-bit UIDs/GIDs as container identifier, while the lower 16
bit encode the container UID/GID used. This is in fact the behaviour enforced by the
bit encode the container UID/GID used. This is in fact the behavior enforced by the
<option>--private-users=pick</option> option.</para>
<para>When user namespaces are used, the GID range assigned to each container is always chosen identical to the
@ -455,17 +454,6 @@
except in the file ownership of the files and directories of the container.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-U</option></term>
<listitem><para>If the kernel supports the user namespaces feature, equivalent to
<option>--private-users=pick</option>, otherwise equivalent to
<option>--private-users=no</option>.</para>
<para>Note that <option>-U</option> is the default if the <filename>systemd-nspawn@.service</filename> template unit
file is used.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--private-users-chown</option></term>
@ -478,6 +466,23 @@
user namespacing is not used.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-U</option></term>
<listitem><para>If the kernel supports the user namespaces feature, equivalent to
<option>--private-users=pick --private-users-chown</option>, otherwise equivalent to
<option>--private-users=no</option>.</para>
<para>Note that <option>-U</option> is the default if the
<filename>systemd-nspawn@.service</filename> template unit file is used.</para>
<para>Note: it is possible to undo the effect of <option>--private-users-chown</option> (or
<option>-U</option>) on the file system by redoing the operation with the first UID of 0:</para>
<programlisting>systemd-nspawn … --private-users=0 --private-users-chown</programlisting>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--private-network</option></term>
@ -717,7 +722,7 @@
and the subdirectory is symlinked into the host at the same
location. <literal>try-host</literal> and
<literal>try-guest</literal> do the same but do not fail if
the host does not have persistent journalling enabled. If
the host does not have persistent journaling enabled. If
<literal>auto</literal> (the default), and the right
subdirectory of <filename>/var/log/journal</filename> exists,
it will be bind mounted into the container. If the
@ -846,23 +851,6 @@
parameter may be used more than once.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--share-system</option></term>
<listitem><para>Allows the container to share certain system
facilities with the host. More specifically, this turns off
PID namespacing, UTS namespacing and IPC namespacing, and thus
allows the guest to see and interact more easily with
processes outside of the container. Note that using this
option makes it impossible to start up a full Operating System
in the container, as an init system cannot operate in this
mode. It is only useful to run specific programs or
applications this way, without involving an init system in the
container. This option implies <option>--register=no</option>.
This option may not be combined with
<option>--boot</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--register=</option></term>
@ -877,9 +865,7 @@
and shown by tools such as
<citerefentry project='man-pages'><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
If the container does not run an init system, it is
recommended to set this option to <literal>no</literal>. Note
that <option>--share-system</option> implies
<option>--register=no</option>. </para></listitem>
recommended to set this option to <literal>no</literal>.</para></listitem>
</varlistentry>
<varlistentry>
@ -1028,8 +1014,8 @@
<example>
<title>Download a Fedora image and start a shell in it</title>
<programlisting># machinectl pull-raw --verify=no http://ftp.halifax.rwth-aachen.de/fedora/linux/releases/21/Cloud/Images/x86_64/Fedora-Cloud-Base-20141203-21.x86_64.raw.xz
# systemd-nspawn -M Fedora-Cloud-Base-20141203-21</programlisting>
<programlisting># machinectl pull-raw --verify=no http://ftp.halifax.rwth-aachen.de/fedora/linux/releases/24/CloudImages/x86_64/images/Fedora-Cloud-Base-24-1.2.x86_64.raw.xz
# systemd-nspawn -M Fedora-Cloud-Base-24-1.2.x86_64.raw</programlisting>
<para>This downloads an image using
<citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>

View File

@ -135,7 +135,7 @@
TXT).</para>
<para>The <option>--openpgp</option> switch may be used to query PGP keys stored as
<ulink url="https://tools.ietf.org/html/draft-wouters-dane-openpgp-02">OPENPGPKEY</ulink> resource records.
<ulink url="https://tools.ietf.org/html/rfc7929">OPENPGPKEY</ulink> resource records.
When this option is specified one or more e-mail address must be specified.</para>
<para>The <option>--tlsa</option> switch maybe be used to query TLS public
@ -339,7 +339,7 @@ www.0pointer.net: 2a01:238:43ed:c300:10c3:bcf3:3266:da74
</example>
<example>
<title>Retrieve the MX record of the <literal>0pointer.net</literal> domain</title>
<title>Retrieve the MX record of the <literal>yahoo.com</literal> domain</title>
<programlisting>$ systemd-resolve -t MX yahoo.com --legend=no
yahoo.com. IN MX 1 mta7.am0.yahoodns.net

View File

@ -68,12 +68,12 @@
link-local networking).</para></listitem>
<listitem><para>The glibc
<citerefentry><refentrytitle>getaddrinfo</refentrytitle><manvolnum>3</manvolnum></citerefentry> API as defined
<citerefentry project='man-pages'><refentrytitle>getaddrinfo</refentrytitle><manvolnum>3</manvolnum></citerefentry> API as defined
by <ulink url="https://tools.ietf.org/html/rfc3493">RFC3493</ulink> and its related resolver functions,
including <citerefentry><refentrytitle>gethostbyname</refentrytitle><manvolnum>3</manvolnum></citerefentry>. This
including <citerefentry project='man-pages'><refentrytitle>gethostbyname</refentrytitle><manvolnum>3</manvolnum></citerefentry>. This
API is widely supported, including beyond the Linux platform. In its current form it does not expose DNSSEC
validation status information however, and is synchronous only. This API is backed by the glibc Name Service
Switch (<citerefentry><refentrytitle>nss</refentrytitle><manvolnum>5</manvolnum></citerefentry>). Usage of the
Switch (<citerefentry project='man-pages'><refentrytitle>nss</refentrytitle><manvolnum>5</manvolnum></citerefentry>). Usage of the
glibc NSS module <citerefentry><refentrytitle>nss-resolve</refentrytitle><manvolnum>8</manvolnum></citerefentry>
is required in order to allow glibc's NSS resolver functions to resolve host names via
<command>systemd-resolved</command>.</para></listitem>
@ -164,7 +164,7 @@
<title><filename>/etc/resolv.conf</filename></title>
<para>Three modes of handling <filename>/etc/resolv.conf</filename> (see
<citerefentry><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>) are
<citerefentry project='man-pages'><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>) are
supported:</para>
<itemizedlist>

View File

@ -45,7 +45,7 @@
<refnamediv>
<refname>systemd-run</refname>
<refpurpose>Run programs in transient scope or service or timer units</refpurpose>
<refpurpose>Run programs in transient scope units, service units, or timer-scheduled service units</refpurpose>
</refnamediv>
<refsynopsisdiv>
@ -68,42 +68,30 @@
<refsect1>
<title>Description</title>
<para><command>systemd-run</command> may be used to create and
start a transient <filename>.service</filename> or
<filename>.scope</filename> unit and run the specified
<replaceable>COMMAND</replaceable> in it. It may also be used to
create and start transient <filename>.timer</filename>
units.</para>
<para><command>systemd-run</command> may be used to create and start a transient <filename>.service</filename> or
<filename>.scope</filename> unit and run the specified <replaceable>COMMAND</replaceable> in it. It may also be
used to create and start a transient <filename>.timer</filename> unit, that activates a
<filename>.service</filename> unit when elapsing.</para>
<para>If a command is run as transient service unit, it will be
started and managed by the service manager like any other service,
and thus shows up in the output of <command>systemctl
list-units</command> like any other unit. It will run in a clean
and detached execution environment, with the service manager as
its parent process. In this mode, <command>systemd-run</command>
will start the service asynchronously in the background and return
after the command has begun execution.</para>
<para>If a command is run as transient service unit, it will be started and managed by the service manager like any
other service, and thus shows up in the output of <command>systemctl list-units</command> like any other unit. It
will run in a clean and detached execution environment, with the service manager as its parent process. In this
mode, <command>systemd-run</command> will start the service asynchronously in the background and return after the
command has begun execution (unless <option>--no-block</option> or <option>--watch</option> are specified, see
below).</para>
<para>If a command is run as transient scope unit, it will be
started by <command>systemd-run</command> itself as parent process
and will thus inherit the execution environment of the
caller. However, the processes of the command are managed by the
service manager similar to normal services, and will show up in
the output of <command>systemctl list-units</command>. Execution
in this case is synchronous, and will return only when the command
finishes. This mode is enabled via the <option>--scope</option>
switch (see below). </para>
<para>If a command is run as transient scope unit, it will be executed by <command>systemd-run</command> itself as
parent process and will thus inherit the execution environment of the caller. However, the processes of the command
are managed by the service manager similar to normal services, and will show up in the output of <command>systemctl
list-units</command>. Execution in this case is synchronous, and will return only when the command finishes. This
mode is enabled via the <option>--scope</option> switch (see below). </para>
<para>If a command is run with timer options such as
<option>--on-calendar=</option> (see below), a transient timer
unit is created alongside the service unit for the specified
command. Only the transient timer unit is started immediately, the
transient service unit will be started when the transient timer
elapses. If the <option>--unit=</option> is specified, the
<replaceable>COMMAND</replaceable> may be omitted. In this case,
<command>systemd-run</command> only creates a
<filename>.timer</filename> unit that invokes the specified unit
when elapsing.</para>
<para>If a command is run with timer options such as <option>--on-calendar=</option> (see below), a transient timer
unit is created alongside the service unit for the specified command. Only the transient timer unit is started
immediately, the transient service unit will be started when the timer elapses. If the <option>--unit=</option>
option is specified, the <replaceable>COMMAND</replaceable> may be omitted. In this case,
<command>systemd-run</command> creates only a <filename>.timer</filename> unit that invokes the specified unit when
elapsing.</para>
</refsect1>
<refsect1>
@ -123,8 +111,8 @@
<term><option>--scope</option></term>
<listitem>
<para>Create a transient <filename>.scope</filename> unit instead of
the default transient <filename>.service</filename> unit.
<para>Create a transient <filename>.scope</filename> unit instead of the default transient
<filename>.service</filename> unit (see above).
</para>
</listitem>
</varlistentry>
@ -140,9 +128,8 @@
<term><option>--property=</option></term>
<term><option>-p</option></term>
<listitem><para>Sets a unit property for the scope or service
unit that is created. This takes an assignment in the same
format as
<listitem><para>Sets a property on the scope or service unit that is created. This option takes an assignment
in the same format as
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>set-property</command> command.</para>
</listitem>
@ -151,9 +138,8 @@
<varlistentry>
<term><option>--description=</option></term>
<listitem><para>Provide a description for the service or scope
unit. If not specified, the command itself will be used as a
description. See <varname>Description=</varname> in
<listitem><para>Provide a description for the service, scope or timer unit. If not specified, the command
itself will be used as a description. See <varname>Description=</varname> in
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry>
@ -161,19 +147,16 @@
<varlistentry>
<term><option>--slice=</option></term>
<listitem><para>Make the new <filename>.service</filename> or
<filename>.scope</filename> unit part of the specified slice,
instead of the <filename>system.slice</filename>.</para>
<listitem><para>Make the new <filename>.service</filename> or <filename>.scope</filename> unit part of the
specified slice, instead of <filename>system.slice</filename>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--remain-after-exit</option></term>
<listitem><para>After the service or scope process has
terminated, keep the service around until it is explicitly
stopped. This is useful to collect runtime information about
the service after it finished running. Also see
<listitem><para>After the service process has terminated, keep the service around until it is explicitly
stopped. This is useful to collect runtime information about the service after it finished running. Also see
<varname>RemainAfterExit=</varname> in
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
@ -183,10 +166,8 @@
<varlistentry>
<term><option>--send-sighup</option></term>
<listitem><para>When terminating the scope or service unit,
send a SIGHUP immediately after SIGTERM. This is useful to
indicate to shells and shell-like processes that the
connection has been severed. Also see
<listitem><para>When terminating the scope or service unit, send a SIGHUP immediately after SIGTERM. This is
useful to indicate to shells and shell-like processes that the connection has been severed. Also see
<varname>SendSIGHUP=</varname> in
<citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
@ -209,9 +190,8 @@
<term><option>--uid=</option></term>
<term><option>--gid=</option></term>
<listitem><para>Runs the service process under the UNIX user
and group. Also see <varname>User=</varname> and
<varname>Group=</varname> in
<listitem><para>Runs the service process under the specified UNIX user and group. Also see
<varname>User=</varname> and <varname>Group=</varname> in
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
@ -239,11 +219,9 @@
<term><option>--pty</option></term>
<term><option>-t</option></term>
<listitem><para>When invoking a command, the service connects
its standard input and output to the invoking tty via a
pseudo TTY device. This allows invoking binaries as services
that expect interactive user input, such as interactive
command shells.</para></listitem>
<listitem><para>When invoking the command, the transient service connects its standard input and output to the
terminal <command>systemd-run</command> is invoked on, via a pseudo TTY device. This allows running binaries
that expect interactive user input as services, such as interactive command shells.</para></listitem>
</varlistentry>
<varlistentry>
@ -263,44 +241,32 @@
<term><option>--on-unit-active=</option></term>
<term><option>--on-unit-inactive=</option></term>
<listitem><para>Defines monotonic timers relative to different
starting points. Also see <varname>OnActiveSec=</varname>,
<varname>OnBootSec=</varname>,
<varname>OnStartupSec=</varname>,
<varname>OnUnitActiveSec=</varname> and
<varname>OnUnitInactiveSec=</varname> in
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>. This
options have no effect in conjunction with
<option>--scope</option>.</para>
<listitem><para>Defines a monotonic timer relative to different starting points for starting the specified
command. See <varname>OnActiveSec=</varname>, <varname>OnBootSec=</varname>, <varname>OnStartupSec=</varname>,
<varname>OnUnitActiveSec=</varname> and <varname>OnUnitInactiveSec=</varname> in
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
details. These options may not be combined with <option>--scope</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--on-calendar=</option></term>
<listitem><para>Defines realtime (i.e. wallclock) timers with
calendar event expressions. Also see
<varname>OnCalendar=</varname> in
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>. This
option has no effect in conjunction with
<option>--scope</option>.</para>
<listitem><para>Defines a calendar timer for starting the specified command. See <varname>OnCalendar=</varname>
in <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>. This
option may not be combined with <option>--scope</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--timer-property=</option></term>
<listitem><para>Sets a timer unit property for the timer unit
that is created. It is similar with
<option>--property</option> but only for created timer
unit. This option only has effect in conjunction with
<option>--on-active=</option>, <option>--on-boot=</option>,
<option>--on-startup=</option>,
<option>--on-unit-active=</option>,
<option>--on-unit-inactive=</option>,
<option>--on-calendar=</option>. This takes an assignment in
the same format as
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<listitem><para>Sets a property on the timer unit that is created. This option is similar to
<option>--property=</option> but applies to the transient timer unit rather than the transient service unit
created. This option only has an effect in conjunction with <option>--on-active=</option>,
<option>--on-boot=</option>, <option>--on-startup=</option>, <option>--on-unit-active=</option>,
<option>--on-unit-inactive=</option> or <option>--on-calendar=</option>. This option takes an assignment in the
same format as <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>set-property</command> command.</para> </listitem>
</varlistentry>
@ -308,14 +274,25 @@
<term><option>--no-block</option></term>
<listitem>
<para>Do not synchronously wait for the requested operation
to finish. If this is not specified, the job will be
verified, enqueued and <command>systemd-run</command> will
wait until the unit's start-up is completed. By passing this
argument, it is only verified and enqueued.</para>
<para>Do not synchronously wait for the unit start operation to finish. If this option is not specified, the
start request for the transient unit will be verified, enqueued and <command>systemd-run</command> will wait
until the unit's start-up is completed. By passing this argument, it is only verified and enqueued. This
option may not be combined with <option>--wait</option>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--wait</option></term>
<listitem><para>Synchronously wait for the transient service to terminate. If this option is specified, the
start request for the transient unit is verified, enqueued, and waited for. Subsequently the invoked unit is
monitored, and it is waited until it is deactivated again (most likely because the specified command
completed). On exit, terse information about the unit's runtime is shown, including total runtime (as well as
CPU usage, if <option>--property=CPUAccounting=1</option> was set) and the exit code and status of the main
process. This output may be suppressed with <option>--quiet</option>. This option may not be combined with
<option>--no-block</option>, <option>--scope</option> or the various timer options.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="user" />
<xi:include href="user-system-options.xml" xpointer="system" />
<xi:include href="user-system-options.xml" xpointer="host" />
@ -425,7 +402,7 @@ There is a screen on:
when the user first logs in, and stays around as long as at least one
login session is open. After the user logs out of the last session,
<filename>user@.service</filename> and all services underneath it
are terminated. This behaviour is the default, when "lingering" is
are terminated. This behavior is the default, when "lingering" is
not enabled for that user. Enabling lingering means that
<filename>user@.service</filename> is started automatically during
boot, even if the user is not logged in, and that the service is
@ -452,6 +429,7 @@ There is a screen on:
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-mount</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>

View File

@ -142,7 +142,7 @@
<varname>FileDescriptorName=</varname> in socket unit files, and enables use of
<citerefentry><refentrytitle>sd_listen_fds_with_names</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
Multiple entries may be specifies using separate options or by separating names with colons
(<literal>:</literal>) in one option. In case more names are given than descriptors, superfluous ones willl be
(<literal>:</literal>) in one option. In case more names are given than descriptors, superfluous ones will be
ignored. In case less names are given than descriptors, the remaining file descriptors will be unnamed.
</para></listitem>
</varlistentry>

View File

@ -105,6 +105,18 @@
arguments.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>CtrlAltDelBurstAction=</varname></term>
<listitem><para>Defines what action will be performed
if user presses Ctrl-Alt-Delete more than 7 times in 2s.
Can be set to <literal>reboot-force</literal>, <literal>poweroff-force</literal>,
<literal>reboot-immediate</literal>, <literal>poweroff-immediate</literal>
or disabled with <literal>none</literal>. Defaults to
<literal>reboot-force</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>CPUAffinity=</varname></term>
@ -318,7 +330,7 @@
<varname>TasksAccounting=</varname>. See
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details on the per-unit
settings. <varname>DefaulTasksAccounting=</varname> defaults
settings. <varname>DefaultTasksAccounting=</varname> defaults
to on, the other three settings to off.</para></listitem>
</varlistentry>

View File

@ -43,61 +43,39 @@
<refnamediv>
<refname>systemd-vconsole-setup.service</refname>
<refname>systemd-vconsole-setup</refname>
<refpurpose>Configure the virtual console at boot</refpurpose>
<refpurpose>Configure the virtual consoles</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-vconsole-setup.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-vconsole-setup</filename></para>
<cmdsynopsis>
<command>/usr/lib/systemd/systemd-vconsole-setup</command>
<arg choice="opt">TTY</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><filename>systemd-vconsole-setup.service</filename> is an
early boot service that configures the virtual console font and
console keymap. Internally it calls
<citerefentry project='mankier'><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry>
and
<citerefentry project='die-net'><refentrytitle>setfont</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
<para><filename>systemd-vconsole-setup</filename> is a helper used to prepare either all virtual consoles, or — if
the optional <replaceable>TTY</replaceable> parameter is provided — a specific one. When the system is booting up
it's called by <citerefentry><command>udev</command></citerefentry> during vtconsole subsystem initialization.
<productname>Systemd</productname> also calls it internally as needed via
<filename>systemd-vconsole-setup.service</filename>. The helper calls
<citerefentry project='mankier'><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry> and
<citerefentry project='die-net'><refentrytitle>setfont</refentrytitle><manvolnum>8</manvolnum></citerefentry>
internally.
</para>
<para>
You may want to use this helper whenever you change <filename>vconsole.conf</filename> to
refresh the settings on your consoles — either through the <command>systemctl restart</command> /
<command>systemctl start</command> command or directly through the executable.
</para>
<para>See
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration files understood by this
service.</para>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<para>A few configuration parameters from
<filename>vconsole.conf</filename> may be overridden on the kernel
command line:</para>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>vconsole.keymap=</varname></term>
<term><varname>vconsole.keymap.toggle=</varname></term>
<listitem><para>Overrides the key mapping table for the
keyboard and the second toggle keymap.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>vconsole.font=</varname></term>
<term><varname>vconsole.font.map=</varname></term>
<term><varname>vconsole.font.unimap=</varname></term>
<listitem><para>Configures the console font, the console map,
and the unicode font map.</para></listitem>
</varlistentry>
</variablelist>
<para>See
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about these settings.</para>
for information about the configuration files and kernel command line options understood by this program.</para>
</refsect1>
<refsect1>

File diff suppressed because it is too large Load Diff

View File

@ -107,7 +107,7 @@
<listitem>
<para>A whitespace-separated list of shell-style globs matching
the device name, as exposed by the udev property
"INTERFACE". This can not be used to match on names that have
"INTERFACE". This cannot be used to match on names that have
already been changed from userspace. Caution is advised when matching on
kernel-assigned names, as they are known to be unstable
between reboots.</para>
@ -387,6 +387,46 @@
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>TCPSegmentationOffload=</varname></term>
<listitem>
<para>The TCP Segmentation Offload (TSO) when true enables
TCP segmentation offload. Takes a boolean value.
Defaults to "unset".</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GenericSegmentationOffload=</varname></term>
<listitem>
<para>The Generic Segmentation Offload (GSO) when true enables
generic segmentation offload. Takes a boolean value.
Defaults to "unset".</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>UDPSegmentationOffload=</varname></term>
<listitem>
<para>The UDP Segmentation Offload (USO) when true enables
UDP segmentation offload. Takes a boolean value.
Defaults to "unset".</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GenericReceiveOffload=</varname></term>
<listitem>
<para>The Generic Receive Offload (GRO) when true enables
generic receive offload. Takes a boolean value.
Defaults to "unset".</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>LargeReceiveOffload=</varname></term>
<listitem>
<para>The Large Receive Offload (LRO) when true enables
large receive offload. Takes a boolean value.
Defaults to "unset".</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -160,7 +160,7 @@
for details about the conversion.</para>
<para>The NFS mount option <option>bg</option> for NFS background mounts
as documented in <citerefentry><refentrytitle>nfs</refentrytitle><manvolnum>5</manvolnum></citerefentry>
as documented in <citerefentry project='man-pages'><refentrytitle>nfs</refentrytitle><manvolnum>5</manvolnum></citerefentry>
is not supported in <filename>/etc/fstab</filename> entries. The systemd mount option <option>nofail</option>
provides similar functionality and should be used instead.</para>
@ -351,6 +351,30 @@
off.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>LazyUnmount=</varname></term>
<listitem><para>Takes a boolean argument. If true, detach the
filesystem from the filesystem hierarchy at time of the unmount
operation, and clean up all references to the filesystem as
soon as they are not busy anymore.
This corresponds with
<citerefentry project='man-pages'><refentrytitle>umount</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s
<parameter>-l</parameter> switch. Defaults to
off.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ForceUnmount=</varname></term>
<listitem><para>Takes a boolean argument. If true, force an
unmount (in case of an unreachable NFS system).
This corresponds with
<citerefentry project='man-pages'><refentrytitle>umount</refentrytitle><manvolnum>8</manvolnum></citerefentry>'s
<parameter>-f</parameter> switch. Defaults to
off.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>DirectoryMode=</varname></term>
<listitem><para>Directories of mount points (and any parent
@ -373,7 +397,7 @@
Takes a unit-less value in seconds, or a time span value such
as "5min 20s". Pass 0 to disable the timeout logic. The
default value is set from the manager configuration file's
<varname>DefaultTimeoutStart=</varname>
<varname>DefaultTimeoutStartSec=</varname>
variable.</para></listitem>
</varlistentry>
</variablelist>

View File

@ -58,31 +58,38 @@
<citerefentry><refentrytitle>systemd-networkd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
</para>
<para>Virtual Network Device files must have the extension
<filename>.netdev</filename>; other extensions are ignored.
Virtual network devices are created as soon as networkd is
started. If a netdev with the specified name already exists,
networkd will use that as-is rather than create its own. Note that
the settings of the pre-existing netdev will not be changed by
<para>The main Virtual Network Device file must have the extension <filename>.netdev</filename>;
other extensions are ignored. Virtual network devices are created as soon as networkd is
started. If a netdev with the specified name already exists, networkd will use that as-is rather
than create its own. Note that the settings of the pre-existing netdev will not be changed by
networkd.</para>
<para>The <filename>.netdev</filename> files are read from the
files located in the system network directory
<filename>/usr/lib/systemd/network</filename>, the volatile
runtime network directory
<filename>/run/systemd/network</filename> and the local
administration network directory
<filename>/etc/systemd/network</filename>. All configuration files
are collectively sorted and processed in lexical order, regardless
of the directories in which they live. However, files with
identical filenames replace each other. Files in
<filename>/etc</filename> have the highest priority, files in
<filename>/run</filename> take precedence over files with the same
name in <filename>/usr/lib</filename>. This can be used to
override a system-supplied configuration file with a local file if
needed. As a special case, an empty file (file size 0) or symlink
with the same name pointing to <filename>/dev/null</filename>
disables the configuration file entirely (it is "masked").</para>
<para>The <filename>.netdev</filename> files are read from the files located in the system
network directory <filename>/usr/lib/systemd/network</filename>, the volatile runtime network
directory <filename>/run/systemd/network</filename> and the local administration network
directory <filename>/etc/systemd/network</filename>. All configuration files are collectively
sorted and processed in lexical order, regardless of the directories in which they live.
However, files with identical filenames replace each other. Files in <filename>/etc</filename>
have the highest priority, files in <filename>/run</filename> take precedence over files with
the same name in <filename>/usr/lib</filename>. This can be used to override a system-supplied
configuration file with a local file if needed. As a special case, an empty file (file size 0)
or symlink with the same name pointing to <filename>/dev/null</filename> disables the
configuration file entirely (it is "masked").</para>
<para>Along with the netdev file <filename>foo.netdev</filename>, a "drop-in" directory
<filename>foo.netdev.d/</filename> may exist. All files with the suffix <literal>.conf</literal>
from this directory will be parsed after the file itself is parsed. This is useful to alter or
add configuration settings, without having to modify the main configuration file. Each drop-in
file must have appropriate section headers.</para>
<para>In addition to <filename>/etc/systemd/network</filename>, drop-in <literal>.d</literal>
directories can be placed in <filename>/usr/lib/systemd/network</filename> or
<filename>/run/systemd/network</filename> directories. Drop-in files in
<filename>/etc</filename> take precedence over those in <filename>/run</filename> which in turn
take precedence over those in <filename>/usr/lib</filename>. Drop-in files under any of these
directories take precedence over the main netdev file wherever located. (Of course, since
<filename>/run</filename> is temporary and <filename>/usr/lib</filename> is for vendors, it is
unlikely drop-ins should be used in either of those places.)</para>
</refsect1>
<refsect1>
@ -163,7 +170,10 @@
<entry>A virtual extensible LAN (vxlan), for connecting Cloud computing deployments.</entry></row>
<row><entry><varname>vrf</varname></entry>
<entry>A Virtual Routing and Forwarding (<ulink url="https://www.kernel.org/doc/Documentation/networking/vrf.txt">VRF</ulink>) interface to create separate routing and forwarding domains.</entry></row>
<entry>A Virtual Routing and Forwarding (<ulink url="https://www.kernel.org/doc/Documentation/networking/vrf.txt">VRF</ulink>) interface to create separate routing and forwarding domains.</entry></row>
<row><entry><varname>vcan</varname></entry>
<entry>The virtual CAN driver (vcan). Similar to the network loopback devices, vcan offers a virtual local CAN interface.</entry></row>
</tbody>
</tgroup>
@ -314,6 +324,26 @@
of the Listening and Learning states before the Forwarding state is entered.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>AgeingTimeSec=</varname></term>
<listitem>
<para>This specifies the number of seconds a MAC Address will be kept in
the forwarding database after having a packet received from this MAC Address.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>Priority=</varname></term>
<listitem>
<para>The priority of the bridge. An integer between 0 and 65535. A lower value
means higher priority. The bridge having the lowest priority will be elected as root bridge.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>DefaultPVID=</varname></term>
<listitem>
<para>This specifies the default port VLAN ID of a newly attached bridge port.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>MulticastQuerier=</varname></term>
<listitem>
@ -343,8 +373,15 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>STP=</varname></term>
<listitem>
<para>A boolean. This enables the bridge's Spanning Tree Protocol (STP). When unset,
the kernel's default setting applies.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
@ -500,7 +537,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><varname>UDPCheckSum=</varname></term>
<term><varname>UDPChecksum=</varname></term>
<listitem>
<para>A boolean. When true, transmitting UDP checksums when doing VXLAN/IPv4 is turned on.</para>
</listitem>
@ -512,11 +549,23 @@
</listitem>
</varlistentry>
<varlistentry>
<term><varname>UDP6ZeroCheckSumRx=</varname></term>
<term><varname>UDP6ZeroChecksumRx=</varname></term>
<listitem>
<para>A boolean. When true, receiving zero checksums in VXLAN/IPv6 is turned on.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>RemoteChecksumTx=</varname></term>
<listitem>
<para>A boolean. When true, remote transmit checksum offload of VXLAN is turned on.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>RemoteChecksumRx=</varname></term>
<listitem>
<para>A boolean. When true, remote receive checksum offload in VXLAN is turned on.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GroupPolicyExtension=</varname></term>
<listitem>

Some files were not shown because too many files have changed in this diff Show More