Lennart Poettering
f5b7d681c7
homectl: show disk free in percent in 'inspect'
2020-05-07 09:52:56 +02:00
Zbigniew Jędrzejewski-Szmek
354722dde4
Merge pull request #15733 from benjarobin/fix_warn_ndebug
...
Allow to build without any warning with NDEBUG defined + Bugfix
2020-05-07 09:47:19 +02:00
Benjamin Robin
08f468567d
tree-wide: Workaround -Wnonnull GCC bug
...
See issue #6119
2020-05-07 09:43:28 +02:00
Lennart Poettering
ba876a4c8d
homed: open up home dir Acquire operation to unpriv clients
...
Apparently unpriv clients expect to be able to auth via PAM. Kinda
sucks. But it is what it is. Hence open this up.
This shouldn't be too bad in effect since clients after all need to
provide security creds for unlocking the home dir, in order to misuse
this.
Fixes : #15072
2020-05-07 09:43:02 +02:00
Daan De Meyer
be28f72d6a
resolved: Break include cycles
2020-05-07 09:00:48 +02:00
Benjamin Robin
683d0bc041
resize-fs: Use xsprintf instead of snprintf
2020-05-06 23:03:25 +02:00
Benjamin Robin
060d9c61b6
test: Use assert_se() where variables are only checked by assert
...
Allow to build without any warning with NDEBUG defined
2020-05-06 23:03:25 +02:00
Benjamin Robin
f391597c67
tree-wide: Fix, replace assert() by assert_se() when there is side effect
2020-05-06 23:03:25 +02:00
Benjamin Robin
0a0e594a26
tree-wide: Mark as _unused_ variables that are only used in assert()
...
Allow to build without any warning with NDEBUG defined
2020-05-06 23:03:25 +02:00
Zbigniew Jędrzejewski-Szmek
96249bf8d6
Merge pull request #15735 from poettering/pam-snippet-update
...
Slightly update our shipped and suggested PAM snippets, so that pam_systemd_home.so is more likely to just work
2020-05-06 22:45:29 +02:00
Zbigniew Jędrzejewski-Szmek
a06df2a4bd
Merge pull request #15727 from poettering/systemctl-list-sockets-tweak
...
systemctl: some table output tweaks
2020-05-06 22:38:25 +02:00
Lennart Poettering
bd685faa1a
login: include pam_systemd_home.so in the default PAM snippet we ship for user@.service
...
Let's make sure systemd-homed works out-of-the box as well as possible.
2020-05-06 22:30:07 +02:00
Balint Reczey
e48471b948
test: Skip test-boot-timestamps on permission denied
...
In containers even root can be denied to access the needed files.
2020-05-06 22:01:50 +02:00
Zbigniew Jędrzejewski-Szmek
e57ac1b017
tree-wide: use _cleanup_set_free_ where appropriate
...
If we already have the helper defined, let's use it instead of open-coding.
2020-05-06 17:08:17 +02:00
Zbigniew Jędrzejewski-Szmek
2f063186d5
shared/logs-show: constify Set *fields
2020-05-06 17:03:00 +02:00
Zbigniew Jędrzejewski-Szmek
476a63e9c0
sd-device: get rid of device_enumerator_clear_match_parent
...
This helper wasn't helping all that much. It seems better to verify args
first, and only then start modifying the state.
2020-05-06 17:02:10 +02:00
Zbigniew Jędrzejewski-Szmek
2204f018cd
sd-device: optimize addition of already present matches
...
Our hashmap and set helpers return a different code whenever an entry
already exists, so let's use this to avoid unsetting scan_uptodate when
not necessary.
Thus, the return convention for
sd_device_enumerator_add_match_subsystem,
sd_device_enumerator_add_match_sysattr,
sd_device_enumerator_add_match_property,
sd_device_enumerator_add_match_sysname,
sd_device_enumerator_add_match_tag,
device_enumerator_add_match_parent_incremental,
sd_device_enumerator_add_match_parent,
sd_device_enumerator_allow_uninitialized,
device_enumerator_add_match_is_initialized
is that "1" is returned if action was taken, and "0" on noop.
2020-05-06 17:01:33 +02:00
Zbigniew Jędrzejewski-Szmek
eb1c1dc029
sd-device: use hashmap_put_strdup()
2020-05-06 17:00:45 +02:00
Zbigniew Jędrzejewski-Szmek
25b3e2a835
basic/hashmap: allow NULL values in strdup hashmaps and add test
2020-05-06 16:56:42 +02:00
Zbigniew Jędrzejewski-Szmek
c73bb51364
sd-device: use string hash ops in device enumerator
...
There should be no functional change, except that when the same string is
added more than once, we skip the duplicate entries.
2020-05-06 16:55:50 +02:00
Zbigniew Jędrzejewski-Szmek
de747a0008
test-set: make test-set not link to libshared and test test_set_put_strdup*()
...
The sets are such basic functionality that it is convenient to be able to
build test-set without all the machinery in shared, and to test it without
the mempool to validate memory accesses easier.
2020-05-06 16:55:07 +02:00
Zbigniew Jędrzejewski-Szmek
be32732168
basic/set: let set_put_strdup() create the set with string hash ops
...
If we're using a set with _put_strdup(), most of the time we want to use
string hash ops on the set, and free the strings when done. This defines
the appropriate a new string_hash_ops_free structure to automatically free
the keys when removing the set, and makes set_put_strdup() and set_put_strdupv()
instantiate the set with those hash ops.
hashmap_put_strdup() was already doing something similar.
(It is OK to instantiate the set earlier, possibly with a different hash ops
structure. set_put_strdup() will then use the existing set. It is also OK
to call set_free_free() instead of set_free() on a set with
string_hash_ops_free, the effect is the same, we're just overriding the
override of the cleanup function.)
No functional change intended.
2020-05-06 16:54:06 +02:00
Lennart Poettering
1fab579743
systemctl: underline whole rows, gapless
...
Just some tweaking of the output.
2020-05-06 15:40:15 +02:00
Lennart Poettering
b0395c1176
format-table: support coloring the gap right of each cell individually
...
This is useful for underlining a whole row of cells: previously we
couldn't underline the gap. Now we can.
2020-05-06 15:40:15 +02:00
Lennart Poettering
45d82c3f1c
systemctl: ensure underline for "list-unit-files" empty cells
2020-05-06 15:40:15 +02:00
Lennart Poettering
50098d87fb
systemctl: let's tweak how we synthesize a cell for activating unit
...
Let's create a string cell for the unit if possible (since there can
only be one unit right now, and the JSON alternative output then
generates a string instead of an array for us), an empty cell if empty.
2020-05-06 15:40:15 +02:00
Lennart Poettering
bc04bb0d29
systemctl: change column name in "list-sockets" out from "units" to "unit"
...
All our other tables call the field in singular, hence let's do so here,
too.
2020-05-06 15:40:15 +02:00
Lennart Poettering
0773357ad1
systemctl: show empty cells as '-'
...
This is mostly relevant for "systemct list-sockets" which can have empty
cells for the activating unit.
2020-05-06 15:40:15 +02:00
Lennart Poettering
557b0841b7
format-table: display an empty strv cell the same way as an empty cell
...
An empty list conceptually is very close to null, hence let's show it
the same way, i.e. using the defined "empty" string, and greyed out.
2020-05-06 15:40:15 +02:00
Zbigniew Jędrzejewski-Szmek
0894f08bf1
resolve: fix type of parameter and update man page
...
The "a" got dropped in eff7c2d3c9
.
2020-05-06 15:02:38 +02:00
Zbigniew Jędrzejewski-Szmek
ba5a389d24
Merge pull request #15473 from keszybz/bus-introspection
2020-05-06 15:00:07 +02:00
Eric Anderson
9e12d5bf63
socket-proxy: Support exit-on-idle
...
This adds the --exit-idle-time argument that causes
systemd-socket-proxyd to exit when there has been an idle period. An
open connection prevents the idle period from starting, even if there is
no activity on that connection.
When combined with another service that uses StopWhenUnneeded=, the
proxy exiting can trigger a resource-intensive process to exit. So
although the proxy may consume minimal resources, significant resources
can be saved indirectly.
Fixes #2106
2020-05-06 13:58:57 +02:00
Daan De Meyer
eff7c2d3c9
sd-bus: Add a nicer way of specifying sd-bus vtable method arguments
...
SD_BUS_NAMES_WITH_ARGS is a less error-prone way of specifying D-Bus
method arguments.
2020-05-06 10:22:54 +02:00
Lennart Poettering
fc58c0c7bf
sysusers: be extra careful when locking accounts
...
Let's use "!*" instead of "!!" as invalid password string.
Generally, any invalid password string can be used to for locking an
account, according to shadow(5). To temporarily lock a password of an
account it is commonly implemented to prefix the original password with
a single "!", so that it can later on be unlocked again by removing the
"!", restoring the original password. Thus, the "!" marker is an
indicator for a locked password; the act of prefixing "!" to a
password string is the locking operation; and the removal of a "!"
prefix is the unlock operation. (This is also suggested in shadow(5)).
If we want to entirely lock an account we previously used "!!" as
password string. This is nice since it indicates the password is locked.
However, it is less than ideal, since applying the password unlock
operation once will change the string to "!", which is still a locked
password. Unlocking the password a second time will result in "", i.e.
the empty password, which will in many cases allow logging in without
password. And that's a problem. Hopefully, tools do not allow such
duplicate unlocking, but it's still not a nice property.
By changing our password string to "!*" we get different behaviour: the
password will appear locked. When it is unlocked the password is "*"
which is an invalid password. In that case the password is hence
unlocked but invalid, which is a much better state to be in than the
above.
This is paranoia hardening. Not more. There's no report that anyone
every unlocked an account twice and people could log in.
2020-05-06 09:44:35 +02:00
Zbigniew Jędrzejewski-Szmek
cfd508a9d6
homed: convert to the new scheme and add --bus-introspect
2020-05-06 09:13:42 +02:00
Lennart Poettering
c92391f52f
Merge pull request #15692 from keszybz/preset-cleanup
...
Make systemctl list-unit-files output more useful
2020-05-06 08:19:37 +02:00
Zbigniew Jędrzejewski-Szmek
5c08257b70
pid1: add --bus-introspect
2020-05-05 22:40:44 +02:00
Zbigniew Jędrzejewski-Szmek
f6e9aa9e45
pid1: convert to the new scheme
...
In all the other cases, I think the code was clearer with the static table.
Here, not so much. And because of the existing dump code, the vtables cannot
be made static and need to remain exported. I still think it's worth to do the
change to have the cmdline introspection, but I'm disappointed with how this
came out.
2020-05-05 22:40:37 +02:00
Zbigniew Jędrzejewski-Szmek
4faa530cf6
machined: convert to the new scheme and add --bus-introspect
2020-05-05 22:38:31 +02:00
Zbigniew Jędrzejewski-Szmek
5ceceff170
localed: convert to the new scheme and add --bus-introspect
2020-05-05 22:37:08 +02:00
Zbigniew Jędrzejewski-Szmek
670139db40
hostnamed: convert to the new scheme and add --bus-introspect
2020-05-05 22:36:54 +02:00
Zbigniew Jędrzejewski-Szmek
8b4933973e
bus-introspect: list the interfaces with "list"
...
The output is not very well formatted, but it is still useful when
testing this.
2020-05-05 22:36:38 +02:00
Zbigniew Jędrzejewski-Szmek
8d1280897b
resolved: convert to the new scheme
2020-05-05 22:36:37 +02:00
Zbigniew Jędrzejewski-Szmek
c4b7d95c46
timedated: convert to the new scheme and add --bus-introspect
2020-05-05 22:34:37 +02:00
Zbigniew Jędrzejewski-Szmek
d4cc0edfce
importd,logind: add --bus-introspect= option
2020-05-05 22:34:17 +02:00
Zbigniew Jędrzejewski-Szmek
1e9bc92dba
bus-util: add wrapper for interface introspection
2020-05-05 22:33:53 +02:00
Zbigniew Jędrzejewski-Szmek
c2b178d3ca
logind: convert to the new scheme
2020-05-05 22:33:52 +02:00
Zbigniew Jędrzejewski-Szmek
a3b7cf5013
importd: convert to the new scheme
2020-05-05 22:31:50 +02:00
Zbigniew Jędrzejewski-Szmek
6a7e98aaca
sd-bus: add helper struct for interface definitions
...
The idea is to have a static table that defines the dbus API. The vtable is
defined right next to the interface name and path because they are logically
connected.
2020-05-05 22:27:03 +02:00
Zbigniew Jędrzejewski-Szmek
31b8895af7
systemctl: do not show preset state for "static"/"alias"/"generated"/"transient" units
...
This modifies list-unit-files and status.
The output of list-unit-files would contain various lines with "static
disabled", which is just misleading, because systemctl preset will not touch
those files, so the preset configuration is not relevant. Similarly, for
"generated" and "transient" units, preset state is irrelevant. For "alias"
lines, the preset for the alias target would be used. In all cases let's just
skip preset status in those cases.
Diff for a a Fedora rawhide container:
--- $ systemctl --root=/tmp/root2 list-unit-files
+++ $ build/systemctl --root=/tmp/root2 list-unit-files
@@ -1,125 +1,125 @@
UNIT FILE STATE VENDOR PRESET
-proc-sys-fs-binfmt_misc.automount static disabled
-dev-hugepages.mount static disabled
-dev-mqueue.mount static disabled
-proc-fs-nfsd.mount static disabled
+proc-sys-fs-binfmt_misc.automount static
+dev-hugepages.mount static
+dev-mqueue.mount static
+proc-fs-nfsd.mount static
proc-sys-fs-binfmt_misc.mount disabled disabled
-sys-fs-fuse-connections.mount static disabled
-sys-kernel-config.mount static disabled
-sys-kernel-debug.mount static disabled
-sys-kernel-tracing.mount static disabled
-tmp.mount static disabled
-var-lib-nfs-rpc_pipefs.mount static disabled
+sys-fs-fuse-connections.mount static
+sys-kernel-config.mount static
+sys-kernel-debug.mount static
+sys-kernel-tracing.mount static
+tmp.mount static
+var-lib-nfs-rpc_pipefs.mount static
ostree-finalize-staged.path disabled enabled
-systemd-ask-password-console.path static disabled
-systemd-ask-password-plymouth.path static disabled
-systemd-ask-password-wall.path static disabled
+systemd-ask-password-console.path static
+systemd-ask-password-plymouth.path static
+systemd-ask-password-wall.path static
abrt-journal-core.service enabled enabled
abrt-oops.service enabled enabled
abrt-pstoreoops.service disabled disabled
abrt-vmcore.service enabled enabled
abrt-xorg.service enabled enabled
abrtd.service enabled enabled
-anaconda-direct.service static disabled
-anaconda-nm-config.service static disabled
-anaconda-noshell.service static disabled
-anaconda-pre.service static disabled
-anaconda-shell@.service static disabled
-anaconda-sshd.service static disabled
-anaconda-tmux@.service static disabled
-anaconda.service static disabled
+anaconda-direct.service static
+anaconda-nm-config.service static
+anaconda-noshell.service static
+anaconda-pre.service static
+anaconda-shell@.service static
+anaconda-sshd.service static
+anaconda-tmux@.service static
+anaconda.service static
arp-ethers.service disabled disabled
atd.service enabled enabled
auditd.service enabled enabled
-auth-rpcgss-module.service static disabled
+auth-rpcgss-module.service static
autofs.service disabled disabled
-autovt@.service enabled disabled
-blivet.service static disabled
+autovt@.service alias
+blivet.service static
blk-availability.service disabled disabled
bluetooth.service enabled enabled
-btattach-bcm@.service static disabled
+btattach-bcm@.service static
certmonger.service disabled disabled
-chrony-dnssrv@.service static disabled
+chrony-dnssrv@.service static
chrony-wait.service disabled disabled
chronyd.service enabled enabled
-clean-mount-point@.service static disabled
-cockpit-motd.service static disabled
-cockpit-wsinstance-http-redirect.service static disabled
-cockpit-wsinstance-http.service static disabled
-cockpit-wsinstance-https-factory@.service static disabled
-cockpit-wsinstance-https@.service static disabled
-cockpit.service static disabled
+clean-mount-point@.service static
+cockpit-motd.service static
+cockpit-wsinstance-http-redirect.service static
+cockpit-wsinstance-http.service static
+cockpit-wsinstance-https-factory@.service static
+cockpit-wsinstance-https@.service static
+cockpit.service static
console-getty.service disabled disabled
-container-getty@.service static disabled
+container-getty@.service static
dbus-broker.service enabled enabled
dbus-daemon.service disabled disabled
-dbus-org.bluez.service enabled disabled
-dbus-org.fedoraproject.FirewallD1.service enabled disabled
-dbus-org.freedesktop.home1.service static disabled
-dbus-org.freedesktop.hostname1.service static disabled
-dbus-org.freedesktop.locale1.service static disabled
-dbus-org.freedesktop.login1.service static disabled
-dbus-org.freedesktop.ModemManager1.service enabled disabled
-dbus-org.freedesktop.nm-dispatcher.service enabled disabled
-dbus-org.freedesktop.portable1.service static disabled
-dbus-org.freedesktop.timedate1.service static disabled
-dbus.service enabled disabled
+dbus-org.bluez.service alias
+dbus-org.fedoraproject.FirewallD1.service alias
+dbus-org.freedesktop.home1.service alias
+dbus-org.freedesktop.hostname1.service alias
+dbus-org.freedesktop.locale1.service alias
+dbus-org.freedesktop.login1.service alias
+dbus-org.freedesktop.ModemManager1.service alias
+dbus-org.freedesktop.nm-dispatcher.service alias
+dbus-org.freedesktop.portable1.service alias
+dbus-org.freedesktop.timedate1.service alias
+dbus.service alias
dbxtool.service enabled enabled
debug-shell.service disabled disabled
-dm-event.service static enabled
+dm-event.service static
dmraid-activation.service enabled enabled
-dnf-makecache.service static disabled
+dnf-makecache.service static
dnsmasq.service disabled disabled
-dracut-cmdline.service static disabled
-dracut-initqueue.service static disabled
-dracut-mount.service static disabled
-dracut-pre-mount.service static disabled
-dracut-pre-pivot.service static disabled
-dracut-pre-trigger.service static disabled
-dracut-pre-udev.service static disabled
-dracut-shutdown.service static disabled
+dracut-cmdline.service static
+dracut-initqueue.service static
+dracut-mount.service static
+dracut-pre-mount.service static
+dracut-pre-pivot.service static
+dracut-pre-trigger.service static
+dracut-pre-udev.service static
+dracut-shutdown.service static
ead.service disabled disabled
-emergency.service static disabled
+emergency.service static
fancontrol.service disabled disabled
firewalld.service enabled enabled
-fprintd.service static disabled
-fstrim.service static disabled
+fprintd.service static
+fstrim.service static
getty@.service enabled enabled
-grub-boot-indeterminate.service static disabled
+grub-boot-indeterminate.service static
gssproxy.service disabled disabled
import-state.service enabled enabled
initial-setup-reconfiguration.service disabled disabled
initial-setup.service enabled disabled
-initrd-cleanup.service static disabled
-initrd-parse-etc.service static disabled
-initrd-switch-root.service static disabled
-initrd-udevadm-cleanup-db.service static disabled
-instperf.service static disabled
+initrd-cleanup.service static
+initrd-parse-etc.service static
+initrd-switch-root.service static
+initrd-udevadm-cleanup-db.service static
+instperf.service static
io.podman.service disabled disabled
irqbalance.service enabled enabled
-iscsi-shutdown.service static disabled
+iscsi-shutdown.service static
iscsi.service enabled disabled
iscsid.service disabled disabled
iscsiuio.service disabled disabled
iwd.service disabled disabled
kdump.service disabled disabled
-kmod-static-nodes.service static disabled
-ldconfig.service static disabled
+kmod-static-nodes.service static
+ldconfig.service static
lm_sensors.service enabled enabled
loadmodules.service disabled disabled
-logrotate.service static disabled
-lvm2-lvmpolld.service static enabled
+logrotate.service static
+lvm2-lvmpolld.service static
lvm2-monitor.service enabled enabled
-lvm2-pvscan@.service static disabled
-man-db-cache-update.service static disabled
+lvm2-pvscan@.service static
+man-db-cache-update.service static
man-db-restart-cache-update.service disabled disabled
-mdadm-grow-continue@.service static disabled
-mdadm-last-resort@.service static disabled
-mdmon@.service static disabled
+mdadm-grow-continue@.service static
+mdadm-last-resort@.service static
+mdmon@.service static
mdmonitor.service enabled enabled
-mlocate-updatedb.service static disabled
+mlocate-updatedb.service static
ModemManager.service enabled enabled
-modprobe@.service static disabled
+modprobe@.service static
multipathd.service enabled enabled
ndctl-monitor.service disabled disabled
NetworkManager-dispatcher.service enabled enabled
@@ -127,53 +127,53 @@
NetworkManager.service enabled enabled
nfs-blkmap.service disabled disabled
nfs-convert.service enabled disabled
-nfs-idmapd.service static disabled
-nfs-mountd.service static disabled
+nfs-idmapd.service static
+nfs-mountd.service static
nfs-server.service disabled disabled
-nfs-utils.service static disabled
-nfsdcld.service static disabled
+nfs-utils.service static
+nfsdcld.service static
nftables.service disabled disabled
nis-domainname.service disabled disabled
oddjobd.service disabled disabled
openhpid.service disabled disabled
-ostree-finalize-staged.service static disabled
-ostree-prepare-root.service static disabled
+ostree-finalize-staged.service static
+ostree-prepare-root.service static
ostree-remount.service enabled enabled
-packagekit-offline-update.service static disabled
-packagekit.service static disabled
+packagekit-offline-update.service static
+packagekit.service static
pcscd.service indirect disabled
-plymouth-halt.service static disabled
-plymouth-kexec.service static disabled
-plymouth-poweroff.service static disabled
-plymouth-quit-wait.service static disabled
-plymouth-quit.service static disabled
-plymouth-read-write.service static disabled
-plymouth-reboot.service static disabled
-plymouth-start.service static disabled
-plymouth-switch-root.service static disabled
+plymouth-halt.service static
+plymouth-kexec.service static
+plymouth-poweroff.service static
+plymouth-quit-wait.service static
+plymouth-quit.service static
+plymouth-read-write.service static
+plymouth-reboot.service static
+plymouth-start.service static
+plymouth-switch-root.service static
podman.service disabled disabled
-polkit.service static enabled
+polkit.service static
psacct.service disabled disabled
qemu-guest-agent.service enabled enabled
-quotaon.service static disabled
+quotaon.service static
raid-check.service disabled disabled
-rc-local.service static disabled
+rc-local.service static
rdisc.service disabled disabled
-realmd.service static disabled
-rescue.service static disabled
+realmd.service static
+rescue.service static
rngd.service enabled enabled
-rpc-gssd.service static disabled
-rpc-statd-notify.service static disabled
-rpc-statd.service static disabled
+rpc-gssd.service static
+rpc-statd-notify.service static
+rpc-statd.service static
rpcbind.service disabled disabled
rsyslog.service enabled enabled
selinux-autorelabel-mark.service enabled enabled
-selinux-autorelabel.service static disabled
+selinux-autorelabel.service static
serial-getty@.service disabled disabled
smartd.service enabled enabled
sshd-keygen@.service disabled disabled
sshd.service enabled enabled
-sshd@.service static disabled
+sshd@.service static
sssd-autofs.service indirect disabled
sssd-kcm.service indirect disabled
sssd-nss.service indirect disabled
@@ -182,84 +182,84 @@
sssd-ssh.service indirect disabled
sssd-sudo.service indirect disabled
sssd.service enabled enabled
-system-update-cleanup.service static disabled
-systemd-ask-password-console.service static disabled
-systemd-ask-password-plymouth.service static disabled
-systemd-ask-password-wall.service static disabled
-systemd-backlight@.service static disabled
-systemd-binfmt.service static disabled
-systemd-bless-boot.service static disabled
+system-update-cleanup.service static
+systemd-ask-password-console.service static
+systemd-ask-password-plymouth.service static
+systemd-ask-password-wall.service static
+systemd-backlight@.service static
+systemd-binfmt.service static
+systemd-bless-boot.service static
systemd-boot-check-no-failures.service disabled disabled
-systemd-boot-system-token.service static disabled
-systemd-coredump@.service static disabled
-systemd-exit.service static disabled
-systemd-firstboot.service static disabled
-systemd-fsck-root.service static disabled
-systemd-fsck@.service static disabled
-systemd-halt.service static disabled
-systemd-hibernate-resume@.service static disabled
-systemd-hibernate.service static disabled
-systemd-homed.service static disabled
-systemd-hostnamed.service static disabled
-systemd-hwdb-update.service static disabled
-systemd-hybrid-sleep.service static disabled
-systemd-initctl.service static disabled
-systemd-journal-catalog-update.service static disabled
-systemd-journal-flush.service static disabled
-systemd-journald.service static disabled
-systemd-journald@.service static disabled
-systemd-kexec.service static disabled
-systemd-localed.service static disabled
-systemd-logind.service static disabled
-systemd-machine-id-commit.service static disabled
-systemd-modules-load.service static disabled
+systemd-boot-system-token.service static
+systemd-coredump@.service static
+systemd-exit.service static
+systemd-firstboot.service static
+systemd-fsck-root.service static
+systemd-fsck@.service static
+systemd-halt.service static
+systemd-hibernate-resume@.service static
+systemd-hibernate.service static
+systemd-homed.service static
+systemd-hostnamed.service static
+systemd-hwdb-update.service static
+systemd-hybrid-sleep.service static
+systemd-initctl.service static
+systemd-journal-catalog-update.service static
+systemd-journal-flush.service static
+systemd-journald.service static
+systemd-journald@.service static
+systemd-kexec.service static
+systemd-localed.service static
+systemd-logind.service static
+systemd-machine-id-commit.service static
+systemd-modules-load.service static
systemd-network-generator.service disabled disabled
systemd-networkd-wait-online.service disabled disabled
systemd-networkd.service disabled disabled
-systemd-portabled.service static disabled
-systemd-poweroff.service static disabled
+systemd-portabled.service static
+systemd-poweroff.service static
systemd-pstore.service disabled enabled
-systemd-quotacheck.service static disabled
-systemd-random-seed.service static disabled
-systemd-reboot.service static disabled
-systemd-remount-fs.service static disabled
-systemd-repart.service static disabled
+systemd-quotacheck.service static
+systemd-random-seed.service static
+systemd-reboot.service static
+systemd-remount-fs.service static
+systemd-repart.service static
systemd-resolved.service disabled disabled
-systemd-rfkill.service static disabled
-systemd-suspend-then-hibernate.service static disabled
-systemd-suspend.service static disabled
-systemd-sysctl.service static disabled
-systemd-sysusers.service static disabled
+systemd-rfkill.service static
+systemd-suspend-then-hibernate.service static
+systemd-suspend.service static
+systemd-sysctl.service static
+systemd-sysusers.service static
systemd-time-wait-sync.service disabled disabled
-systemd-timedated.service static disabled
+systemd-timedated.service static
systemd-timesyncd.service disabled disabled
-systemd-tmpfiles-clean.service static disabled
-systemd-tmpfiles-setup-dev.service static disabled
-systemd-tmpfiles-setup.service static disabled
-systemd-udev-settle.service static disabled
-systemd-udev-trigger.service static disabled
-systemd-udevd.service static disabled
-systemd-update-done.service static disabled
-systemd-update-utmp-runlevel.service static disabled
-systemd-update-utmp.service static disabled
-systemd-user-sessions.service static disabled
-systemd-userdbd.service static disabled
-systemd-vconsole-setup.service static disabled
-systemd-volatile-root.service static disabled
-teamd@.service static disabled
+systemd-tmpfiles-clean.service static
+systemd-tmpfiles-setup-dev.service static
+systemd-tmpfiles-setup.service static
+systemd-udev-settle.service static
+systemd-udev-trigger.service static
+systemd-udevd.service static
+systemd-update-done.service static
+systemd-update-utmp-runlevel.service static
+systemd-update-utmp.service static
+systemd-user-sessions.service static
+systemd-userdbd.service static
+systemd-vconsole-setup.service static
+systemd-volatile-root.service static
+teamd@.service static
udisks2.service enabled enabled
-user-runtime-dir@.service static disabled
-user@.service static disabled
+user-runtime-dir@.service static
+user@.service static
winbind.service disabled disabled
zram-swap.service enabled disabled
-zram.service static disabled
-system-cockpithttps.slice static disabled
-system-systemd\x2dcryptsetup.slice static disabled
-user.slice static disabled
-cockpit-wsinstance-http-redirect.socket static disabled
-cockpit-wsinstance-http.socket static disabled
-cockpit-wsinstance-https-factory.socket static disabled
-cockpit-wsinstance-https@.socket static disabled
+zram.service static
+system-cockpithttps.slice static
+system-systemd\x2dcryptsetup.slice static
+user.slice static
+cockpit-wsinstance-http-redirect.socket static
+cockpit-wsinstance-http.socket static
+cockpit-wsinstance-https-factory.socket static
+cockpit-wsinstance-https@.socket static
cockpit.socket enabled enabled
dbus.socket enabled enabled
dm-event.socket enabled enabled
@@ -280,95 +280,95 @@
sssd-pam.socket disabled disabled
sssd-ssh.socket disabled disabled
sssd-sudo.socket disabled disabled
-syslog.socket static disabled
-systemd-coredump.socket static disabled
-systemd-initctl.socket static disabled
-systemd-journald-audit.socket static disabled
-systemd-journald-dev-log.socket static disabled
-systemd-journald-varlink@.socket static disabled
-systemd-journald.socket static disabled
-systemd-journald@.socket static disabled
+syslog.socket static
+systemd-coredump.socket static
+systemd-initctl.socket static
+systemd-journald-audit.socket static
+systemd-journald-dev-log.socket static
+systemd-journald-varlink@.socket static
+systemd-journald.socket static
+systemd-journald@.socket static
systemd-networkd.socket disabled disabled
-systemd-rfkill.socket static disabled
-systemd-udevd-control.socket static disabled
-systemd-udevd-kernel.socket static disabled
-systemd-userdbd.socket static disabled
-anaconda.target static disabled
-basic.target static disabled
-blockdev@.target static disabled
-bluetooth.target static enabled
-boot-complete.target static disabled
-cryptsetup-pre.target static disabled
-cryptsetup.target static disabled
-ctrl-alt-del.target enabled disabled
-default.target indirect disabled
-emergency.target static disabled
+systemd-rfkill.socket static
+systemd-udevd-control.socket static
+systemd-udevd-kernel.socket static
+systemd-userdbd.socket static
+anaconda.target static
+basic.target static
+blockdev@.target static
+bluetooth.target static
+boot-complete.target static
+cryptsetup-pre.target static
+cryptsetup.target static
+ctrl-alt-del.target alias
+default.target alias
+emergency.target static
exit.target disabled disabled
-final.target static disabled
-getty-pre.target static disabled
-getty.target static disabled
-graphical.target static disabled
+final.target static
+getty-pre.target static
+getty.target static
+graphical.target static
halt.target disabled disabled
-hibernate.target static disabled
-hybrid-sleep.target static disabled
-initrd-fs.target static disabled
-initrd-root-device.target static disabled
-initrd-root-fs.target static disabled
-initrd-switch-root.target static disabled
-initrd.target static disabled
+hibernate.target static
+hybrid-sleep.target static
+initrd-fs.target static
+initrd-root-device.target static
+initrd-root-fs.target static
+initrd-switch-root.target static
+initrd.target static
kexec.target disabled disabled
-local-fs-pre.target static disabled
-local-fs.target static disabled
+local-fs-pre.target static
+local-fs.target static
multi-user.target indirect disabled
-network-online.target static disabled
-network-pre.target static disabled
-network.target static disabled
+network-online.target static
+network-pre.target static
+network.target static
nfs-client.target enabled disabled
-nss-lookup.target static disabled
-nss-user-lookup.target static disabled
-paths.target static disabled
+nss-lookup.target static
+nss-user-lookup.target static
+paths.target static
poweroff.target disabled disabled
-printer.target static disabled
+printer.target static
reboot.target enabled enabled
remote-cryptsetup.target disabled enabled
-remote-fs-pre.target static disabled
+remote-fs-pre.target static
remote-fs.target enabled enabled
-rescue.target static disabled
-rpc_pipefs.target static disabled
-rpcbind.target static disabled
-runlevel0.target disabled disabled
-runlevel1.target static disabled
-runlevel2.target indirect disabled
-runlevel3.target indirect disabled
-runlevel4.target indirect disabled
-runlevel5.target static disabled
-runlevel6.target enabled disabled
-selinux-autorelabel.target static disabled
-shutdown.target static disabled
-sigpwr.target static disabled
-sleep.target static disabled
-slices.target static disabled
-smartcard.target static disabled
-sockets.target static disabled
-sound.target static disabled
-sshd-keygen.target static disabled
-suspend-then-hibernate.target static disabled
-suspend.target static disabled
-swap.target static disabled
-sysinit.target static disabled
-system-update-pre.target static disabled
-system-update.target static disabled
-time-set.target static disabled
-time-sync.target static disabled
-timers.target static disabled
-umount.target static disabled
+rescue.target static
+rpc_pipefs.target static
+rpcbind.target static
+runlevel0.target alias
+runlevel1.target alias
+runlevel2.target alias
+runlevel3.target alias
+runlevel4.target alias
+runlevel5.target alias
+runlevel6.target alias
+selinux-autorelabel.target static
+shutdown.target static
+sigpwr.target static
+sleep.target static
+slices.target static
+smartcard.target static
+sockets.target static
+sound.target static
+sshd-keygen.target static
+suspend-then-hibernate.target static
+suspend.target static
+swap.target static
+sysinit.target static
+system-update-pre.target static
+system-update.target static
+time-set.target static
+time-sync.target static
+timers.target static
+umount.target static
chrony-dnssrv@.timer disabled disabled
dnf-makecache.timer enabled enabled
fstrim.timer enabled enabled
logrotate.timer enabled enabled
-mdadm-last-resort@.timer static disabled
+mdadm-last-resort@.timer static
mlocate-updatedb.timer enabled enabled
raid-check.timer disabled disabled
-systemd-tmpfiles-clean.timer static disabled
+systemd-tmpfiles-clean.timer static
371 unit files listed.
In particular, this allows a meaningful comparison to be made:
$ ~/src/systemd/build/systemctl --root=/tmp/root2 list-unit-files|rg 'enabled.*disabled|disabled.*enabled'
ostree-finalize-staged.path disabled enabled
initial-setup.service enabled disabled
iscsi.service enabled disabled
nfs-convert.service enabled disabled
systemd-pstore.service disabled enabled
zram-swap.service enabled disabled
iscsid.socket enabled disabled
iscsiuio.socket enabled disabled
multipathd.socket enabled disabled
nfs-client.target enabled disabled
remote-cryptsetup.target disabled enabled
(It turns out that most of the services on this list that are enabled without a
corresponding preset are against rpm packaging and do direct 'systemctl enable'
calls in %post, instead of going through presets as they are supposed to.)
systemctl: also skip preset status in status verb
2020-05-05 22:03:53 +02:00
Zbigniew Jędrzejewski-Szmek
15d7ab87c4
systemctl: add new enablement state "alias"
...
For units which are aliases of other units, reporting preset status as
"enabled" is rather misleading. For example, dbus.service is an alias of
dbus-broker.service. In list-unit-files we'd show both as "enabled". In
particular, systemctl preset ignores aliases, so showing any preset status at
all is always going to be misleading. Let's introduce a new state "alias" and
use that for all aliases.
I was trying to avoid adding a new state, to keep compatibility with previous
behaviour, but for alias unit files it simply doesn't seem very useful to show
any of the existing states. It seems that the clearly showing that those are
aliases for other units will be easiest to understand for users.
2020-05-05 21:50:38 +02:00
Zbigniew Jędrzejewski-Szmek
9c894b8579
shared/install: rename variable for clarity
2020-05-05 21:50:38 +02:00
Zbigniew Jędrzejewski-Szmek
bce84e10f8
shared/install: print name of offending file in error
...
"Unit type slice cannot be templated."
↓
"/etc/systemd/system.control/user@.slice: unit type slice cannot be templated."
2020-05-05 21:50:38 +02:00
Zbigniew Jędrzejewski-Szmek
babccf14ce
shared/install: indent tables
2020-05-05 21:50:38 +02:00
Zbigniew Jędrzejewski-Szmek
8f7b256665
shared/install: optionally cache the preset list
...
When doing list-unit-files with --root, we would re-read the preset
list for every unit. This uses a cache to only do it once. The time
for list-unit-files goes down by about ~30%.
unit_file_query_preset() is also called from src/core/. This patch does not
touch that path, since the saving there are smaller, since preset status is
only read on demand over dbus, and caching would be more complicated.
2020-05-05 21:50:31 +02:00
Zbigniew Jędrzejewski-Szmek
c39b7821f6
systemctl: fix --root support in querying presets
...
We would always look on the host, ignoring --root.
2020-05-05 18:05:32 +02:00
Zbigniew Jędrzejewski-Szmek
4cb1015e6b
systemctl: refuse online-only ops with --root
...
It is super confusing when a command does not support --root, and is called
with it specified, and returns some bogus results. Let's just catch this
early and refuse.
2020-05-05 18:05:23 +02:00
Zbigniew Jędrzejewski-Szmek
9321e23c40
shared/verbs: split out helper to find verbs
...
It will be used later, but I think it makes the code clearer anyway.
Also change the message about ignoring to include the name for default
verbs.
2020-05-05 18:04:55 +02:00
Zbigniew Jędrzejewski-Szmek
d8b065e056
shared/verbs: add a modicum of documentation
2020-05-05 18:04:44 +02:00
Zbigniew Jędrzejewski-Szmek
ae98f726ff
systemctl: mark log-level,log-target,service-watchdogs as online-only
...
They were added in 6ab863190d
and
38fcb7f766
. I don't see a good reason to
exclude them from the online-only check.
2020-05-05 18:04:36 +02:00
Zbigniew Jędrzejewski-Szmek
77102db288
systemctl: fix hint when 'systemctl help' is given
...
Not all verbs require unit names, but that is beside the point. We need a verb
here, and help is not a valid verb.
2020-05-05 18:04:28 +02:00
Zbigniew Jędrzejewski-Szmek
eaf7ac4929
Merge pull request #15645 from poettering/calender-expression-doc-fix
...
some calendar expression fixes and documentation updates
2020-05-05 16:07:11 +02:00
Frantisek Sumsal
05c7d9bf5b
Revert "logs-show: declare [static 2] on all highlight parameters"
...
This reverts commit 5444520628
.
See: https://github.com/systemd/systemd/pull/15706
2020-05-05 16:37:45 +03:00
Zbigniew Jędrzejewski-Szmek
640ebaa952
Merge pull request #15648 from poettering/journalctl-cat-beefup
...
journalctl: honour --output-fields= in -o cat mode
2020-05-05 14:00:26 +02:00
Zbigniew Jędrzejewski-Szmek
90f1f8188b
Merge pull request #15701 from poettering/systemctl-json-table
...
systemctl: optionally output tables as json
2020-05-05 11:05:00 +02:00
Lennart Poettering
5fe4d1b514
shutdown: fix spacing in shutdown error message
2020-05-05 10:23:47 +02:00
Lennart Poettering
5444520628
logs-show: declare [static 2] on all highlight parameters
2020-05-05 09:22:27 +02:00
Lennart Poettering
4d5d1bba73
journalctl: optionally, show a different field than MESSAGE in -o cat mode
...
Fixes : #15621
2020-05-05 09:22:26 +02:00
Lennart Poettering
54ff74d273
journal: use set_contains() where appropriate
2020-05-05 09:04:30 +02:00
Motiejus Jakštys
5c4deb9a5c
nspawn: mount custom paths before writing to /etc
...
Consider such configuration:
$ systemd-nspawn --read-only --timezone=copy --resolv-conf=copy-host \
--overlay="+/etc::/etc" <...>
Assuming one wants `/` to be read-only, DNS and `/etc/localtime` to
work. One way to do it is to create an overlay filesystem in `/etc/`.
However, systemd-nspawn tries to create `/etc/resolv.conf` and
`/etc/localtime` before mounting the custom paths, while `/` (and, by
extension, `/etc`) is read-only. Thus it fails to create those files.
Mounting custom paths before modifying anything in `/etc/` makes this
possible.
Full example:
```
$ debootstrap buster /var/lib/machines/t1 http://deb.debian.org/debian
$ systemd-nspawn --private-users=false --timezone=copy --resolv-conf=copy-host --read-only --tmpfs=/var --tmpfs=/run --overlay="+/etc::/etc" -D /var/lib/machines/t1 ping -c 1 example.com
Spawning container t1 on /var/lib/machines/t1.
Press ^] three times within 1s to kill container.
ping: example.com: Temporary failure in name resolution
Container t1 failed with error code 130.
```
With the patch:
```
$ sudo ./build/systemd-nspawn --private-users=false --timezone=copy --resolv-conf=copy-host --read-only --tmpfs=/var --tmpfs=/run --overlay="+/etc::/etc" -D /var/lib/machines/t1 ping -qc 1 example.com
Spawning container t1 on /var/lib/machines/t1.
Press ^] three times within 1s to kill container.
PING example.com (93.184.216.34) 56(84) bytes of data.
--- example.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 110.912/110.912/110.912/0.000 ms
Container t1 exited successfully.
```
2020-05-05 09:02:57 +02:00
Lennart Poettering
c9c9f6f450
calendarspec: be more graceful with two kinds of calendar expressions
...
This changes the calendarspec parser to allow expressions such as
"00:05..05", i.e. a range where start and end is the same. It also
allows expressions such as "00:1-2/3", i.e. where the repetition value
does not fit even once in the specified range. With this patch both
cases will now be optimized away, i.e. the range is removed and a fixed
value is used, which is functionally equivalent.
See #15030 for an issue where the inability to parse such expressions
caused confusion.
I think it's probably better to accept these gracefully and optimizing
them away instead of refusing them with a plain EINVAL. With a tool such
as "systemd-analyze" calendar it should be easy to figure out the
normalized form with the redundant bits optimized away.
2020-05-05 08:57:14 +02:00
Lennart Poettering
05851cb9df
calendarspec: minor simplification
2020-05-05 08:57:14 +02:00
Lennart Poettering
3c6f0300ae
calendarspec: drop _pure_ from static function
...
For static functions the compiler should be able to determine this on
its own, let's not add needless decorators.
2020-05-05 08:57:14 +02:00
Lennart Poettering
80b19994a4
calendarspec: pack our flags a bit
2020-05-05 08:57:14 +02:00
Lennart Poettering
a4d6d711cf
calendarspec: encode that it's OK to store µs in 'int's
2020-05-05 08:57:14 +02:00
Lennart Poettering
49cd06fa2d
systemctl: optionally output tables in JSON format
2020-05-05 08:15:04 +02:00
Lennart Poettering
e21b76cd68
format-table: generate better JSON field names
...
Let's try to mangle table contents a bit to make them more suitable as
JSON field names. Specifically when we see "foo bar" convert this to
"foo_bar" as field name, as variable/field names are generally assumed
to be without spaces.
2020-05-05 08:13:58 +02:00
Anita Zhang
848cfa74d2
Merge pull request #15636 from poettering/sensitivity-training
...
be more careful when setting json variant + dbus message sensitive flag
2020-05-04 17:48:13 -07:00
Frantisek Sumsal
111e71c431
test: fix potential use-after-free
...
CID#1428676.
2020-05-04 17:10:18 +02:00
Evgeny Vereshchagin
80cf50120c
Merge pull request #15422 from nolange/add_zstd_coredump
...
coredump: add zstandard support for coredumps
2020-05-04 14:57:39 +03:00
Norbert Lange
ef5924aa31
coredump: add zstandard support for coredumps
...
this will hook libzstd into coredump,
using this format as default.
2020-05-04 10:59:43 +02:00
Lennart Poettering
ddd6a22a0f
basic: add STRCASE_IN_SET() which is to STR_IN_SET() what strcaseeq() is to streq()
2020-05-04 10:11:19 +02:00
Zbigniew Jędrzejewski-Szmek
fc021a5bbf
logind,importd,hostnamed,localed,timedated,machined,resolved: add option parsing stubs
...
--help and --version are implemented in the usual style.
help() prints full path, since the program is not expected to
be in $PATH.
2020-05-03 10:55:51 +02:00
Zbigniew Jędrzejewski-Szmek
7ae473268c
manager: add highlighting to --help
...
Also change the summary line to a bit more concise.
2020-05-03 10:55:51 +02:00
Zbigniew Jędrzejewski-Szmek
53f7f7fcf2
util-lib: add stub parser for --help, --version
2020-05-03 10:55:51 +02:00
Zbigniew Jędrzejewski-Szmek
ab09bf9007
importd: wrap long lines
2020-05-03 10:55:51 +02:00
Zbigniew Jędrzejewski-Szmek
b49ca3bc37
sd-bus: use STR_IN_SET() in one more place
2020-05-03 10:55:51 +02:00
Zbigniew Jędrzejewski-Szmek
2b6a1d155d
bus-introspect: move xml string defines into the .c file
2020-05-03 10:55:51 +02:00
Zbigniew Jędrzejewski-Szmek
61d0df3919
bus-introspect: write <interface> from within introspect_write_interface()
2020-05-03 10:55:51 +02:00
Frantisek Sumsal
2d4f8cf467
man: fix few spelling errors
...
Reported by Fossies.org.
2020-05-03 10:23:25 +02:00
Michal Koutný
2e4086060b
test: Fix build with !HAVE_LZ4 && HAVE_XZ
...
HUGE_SIZE was defined inconsistently.
> In file included from ../src/basic/alloc-util.h:9,
> from ../src/journal/test-compress.c:9:
> ../src/journal/test-compress.c: In function ‘main’:
> ../src/journal/test-compress.c:280:33: error: ‘HUGE_SIZE’ undeclared (first use in this function)
> 280 | assert_se(huge = malloc(HUGE_SIZE));
2020-05-02 20:04:36 +00:00
Emmanuel Garette
db1442260a
repart: fix partition maximum size segfault
...
Discovered, tracked down and fix proposed by Emmanuel Garette.
See: https://lists.freedesktop.org/archives/systemd-devel/2020-April/044435.html
(Lennart turned this into a PR)
Fixes : #15608
2020-05-01 17:31:45 +02:00
Lennart Poettering
6eb35fd695
Merge pull request #15547 from kkdwivedi/notify-barrier
...
Introduce sd_notify_barrier
2020-05-01 08:48:42 +02:00
Zbigniew Jędrzejewski-Szmek
b76ef59756
Merge pull request #13512 from msekletar/freezer
...
core: introduce support for cgroup freezer
2020-05-01 07:52:29 +02:00
Kumar Kartikeya Dwivedi
4f07ddfa9b
Introduce sd_notify_barrier
...
This adds the sd_notify_barrier function, to allow users to synchronize against
the reception of sd_notify(3) status messages. It acts as a synchronization
point, and a successful return gurantees that all previous messages have been
consumed by the manager. This can be used to eliminate race conditions where
the sending process exits too early for systemd to associate its PID to a
cgroup and attribute the status message to a unit correctly.
systemd-notify now uses this function for proper notification delivery and be
useful for NotifyAccess=all units again in user mode, or in cases where it
doesn't have a control process as parent.
Fixes : #2739
2020-05-01 03:22:47 +05:30
Lennart Poettering
a8332698d7
Merge pull request #15592 from kennylevinsen/fdpoll-standalone
...
Introduce FDPOLL=0
2020-04-30 22:32:28 +02:00
Corey Hinshaw
db72aea4a9
Add SetType method to login Session interface
2020-04-30 21:29:26 +02:00
Kenny Levinsen
3052049260
core: (De-)Serialize poll flag for fds in fdstore
...
This replaces manual string splitting and unescaping with
extract_first_word.
2020-04-30 19:42:53 +02:00
Kenny Levinsen
cb5a46b845
core: Add optional FDPOLL=0 argument to fdstore
...
A service can specify FDSTORE=1 FDPOLL=0 to request that PID1 does not
poll the fd to remove them on error. If set, fds will only be removed on
FDSTOREREMOVE=1 or when the service is done.
Fixes : #12086
2020-04-30 19:42:26 +02:00
Michal Sekletár
d9e45bc3ab
core: introduce support for cgroup freezer
...
With cgroup v2 the cgroup freezer is implemented as a cgroup
attribute called cgroup.freeze. cgroup can be frozen by writing "1"
to the file and kernel will send us a notification through
"cgroup.events" after the operation is finished and processes in the
cgroup entered quiescent state, i.e. they are not scheduled to
run. Writing "0" to the attribute file does the inverse and process
execution is resumed.
This commit exposes above low-level functionality through systemd's DBus
API. Each unit type must provide specialized implementation for these
methods, otherwise, we return an error. So far only service, scope, and
slice unit types provide the support. It is possible to check if a
given unit has the support using CanFreeze() DBus property.
Note that DBus API has a synchronous behavior and we dispatch the reply
to freeze/thaw requests only after the kernel has notified us that
requested operation was completed.
2020-04-30 19:02:51 +02:00