]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
5 years agoMerge pull request #10902 from poettering/highlight-status
Zbigniew Jędrzejewski-Szmek [Tue, 27 Nov 2018 11:53:43 +0000 (12:53 +0100)] 
Merge pull request #10902 from poettering/highlight-status

Highlight status

5 years agoMerge pull request #10813 from poettering/cgroup-exec-start-pre
Lennart Poettering [Tue, 27 Nov 2018 09:29:17 +0000 (10:29 +0100)] 
Merge pull request #10813 from poettering/cgroup-exec-start-pre

make sure ExecStartPre= and Delegate=yes mix well

5 years agotree-wide: use IOVEC_MAKE() at many places
Lennart Poettering [Mon, 26 Nov 2018 20:52:36 +0000 (21:52 +0100)] 
tree-wide: use IOVEC_MAKE() at many places

5 years agoMerge pull request #10949 from yuwata/man-improve-unset
Zbigniew Jędrzejewski-Szmek [Tue, 27 Nov 2018 09:04:20 +0000 (10:04 +0100)] 
Merge pull request #10949 from yuwata/man-improve-unset

man: slightly update man pages of network related units

5 years agoman: update explanation for boolean options 10949/head
Yu Watanabe [Tue, 27 Nov 2018 06:07:58 +0000 (15:07 +0900)] 
man: update explanation for boolean options

5 years agoman: improve the explanation of "Defaults to unset"
Yu Watanabe [Tue, 27 Nov 2018 05:40:25 +0000 (14:40 +0900)] 
man: improve the explanation of "Defaults to unset"

5 years agotest: add test for setting service manager environment variables
Lennart Poettering [Mon, 26 Nov 2018 20:16:27 +0000 (21:16 +0100)] 
test: add test for setting service manager environment variables

This is a follow-up for #10594. I somehow forgot to commit this when I
worked on that.

5 years agoMerge pull request #10947 from poettering/sd-radv-fixes
Yu Watanabe [Tue, 27 Nov 2018 05:24:43 +0000 (14:24 +0900)] 
Merge pull request #10947 from poettering/sd-radv-fixes

sd-radv fixes

5 years agojournald: don't try to rotate user journals in /var/log/journal/ if we are still...
Lennart Poettering [Mon, 26 Nov 2018 16:48:22 +0000 (17:48 +0100)] 
journald: don't try to rotate user journals in /var/log/journal/ if we are still in log-to-runtime-journal mode

Fixes: #10879
5 years agonetworkd: Add support for ERSPAN tunnel
Susant Sahani [Mon, 26 Nov 2018 11:50:09 +0000 (17:20 +0530)] 
networkd: Add support for ERSPAN tunnel

Please see: https://patchwork.ozlabs.org/patch/800327/
```
[NetDev]
Name=erspan-test
Kind=erspan

[Tunnel]
Independent=true
ERSPANIndex=123
Local = 172.16.1.200
Remote = 172.16.1.100
Key=101
SerializeTunneledPackets=true
```

5 years agoFirst restructuration of Logitech mice in 70-mouse.hwdb
Claudius Ellsel [Mon, 26 Nov 2018 20:10:42 +0000 (21:10 +0100)] 
First restructuration of Logitech mice in 70-mouse.hwdb

Untested, just carefully copy and pasted under the created sections. First approach to #10941

5 years agosd-radv: use struct initializers 10947/head
Lennart Poettering [Mon, 26 Nov 2018 21:13:36 +0000 (22:13 +0100)] 
sd-radv: use struct initializers

5 years agosd-radv: per our CODING_STYLE don't use 'bool' in public headers
Lennart Poettering [Mon, 26 Nov 2018 21:13:15 +0000 (22:13 +0100)] 
sd-radv: per our CODING_STYLE don't use 'bool' in public headers

5 years agosd-radv: no need to initialize r to zero
Lennart Poettering [Mon, 26 Nov 2018 21:12:53 +0000 (22:12 +0100)] 
sd-radv: no need to initialize r to zero

5 years agosd-radv: make sure we can deal with in_addr_to_string() failing
Lennart Poettering [Mon, 26 Nov 2018 21:12:38 +0000 (22:12 +0100)] 
sd-radv: make sure we can deal with in_addr_to_string() failing

5 years agosd-radv: when receiving a too short packet, make sure we dequeue it
Lennart Poettering [Mon, 26 Nov 2018 21:12:07 +0000 (22:12 +0100)] 
sd-radv: when receiving a too short packet, make sure we dequeue it

5 years agosd-radv: propagate OOM, it's reason to fail
Lennart Poettering [Mon, 26 Nov 2018 21:11:12 +0000 (22:11 +0100)] 
sd-radv: propagate OOM, it's reason to fail

5 years agosd-radv: follow our usualy rule that destructors can take NULL
Lennart Poettering [Mon, 26 Nov 2018 21:09:57 +0000 (22:09 +0100)] 
sd-radv: follow our usualy rule that destructors can take NULL

5 years agosd-radv: simplify IPv6 address is-null check
Lennart Poettering [Mon, 26 Nov 2018 20:54:52 +0000 (21:54 +0100)] 
sd-radv: simplify IPv6 address is-null check

5 years agosd-radv: drop const from non-ptr argument
Lennart Poettering [Mon, 26 Nov 2018 20:54:31 +0000 (21:54 +0100)] 
sd-radv: drop const from non-ptr argument

5 years agosd-radv: use ether_addr_is_null() where appropriate
Lennart Poettering [Mon, 26 Nov 2018 20:53:26 +0000 (21:53 +0100)] 
sd-radv: use ether_addr_is_null() where appropriate

5 years agounits: make fsck/grows/makefs/makeswap units conflict against shutdown.target
Lennart Poettering [Mon, 26 Nov 2018 16:38:52 +0000 (17:38 +0100)] 
units: make fsck/grows/makefs/makeswap units conflict against shutdown.target

They are the only units we shipped/generated where this was missing really. Let's fix these.

Follow-up for: #10933

5 years agotree-wide: use SWAP_TWO a bit more
Lennart Poettering [Mon, 26 Nov 2018 18:10:26 +0000 (19:10 +0100)] 
tree-wide: use SWAP_TWO a bit more

5 years agotest-network: add tests for #5430 and GatewayOnLink=
Yu Watanabe [Mon, 26 Nov 2018 06:46:55 +0000 (15:46 +0900)] 
test-network: add tests for #5430 and GatewayOnLink=

5 years agoMerge pull request #10928 from yuwata/fix-9940
Lennart Poettering [Mon, 26 Nov 2018 17:46:47 +0000 (18:46 +0100)] 
Merge pull request #10928 from yuwata/fix-9940

network: also load foo.netdev.d/*.conf

5 years agoman: link Delegate= documentation up with the markdown docs 10813/head
Lennart Poettering [Fri, 16 Nov 2018 19:29:02 +0000 (20:29 +0100)] 
man: link Delegate= documentation up with the markdown docs

5 years agodocs: document the .control/ subcgroup contract in the docs
Lennart Poettering [Fri, 16 Nov 2018 19:25:54 +0000 (20:25 +0100)] 
docs: document the .control/ subcgroup contract in the docs

5 years agocore: when Delegate=yes is set for a unit, run ExecStartPre= and friends in a subcgro...
Lennart Poettering [Fri, 16 Nov 2018 19:19:07 +0000 (20:19 +0100)] 
core: when Delegate=yes is set for a unit, run ExecStartPre= and friends in a subcgroup of the unit

Otherwise we might conflict with the "no-processes-in-inner-cgroup" rule
of cgroupsv2. Consider nspawn starting up and initializing its cgroup
hierarchy with "supervisor/" and "payload/" as subcgroup, with itself
moved into the former and the payload into the latter. Now, if an
ExecStartPre= is run right after it cannot be placed in the main cgroup,
because that is now in inner cgroup with populated children.

Hence, let's run these helpers in another sub-cgroup .control/ below it.

This is somewhat ugly since it weakens the clear separation of
ownership, but given that this is an explicit contract, and double opt-in should be acceptable.

Fixes: #10482
5 years agounit: tweak status output a bit 10902/head
Lennart Poettering [Fri, 23 Nov 2018 16:46:25 +0000 (17:46 +0100)] 
unit: tweak status output a bit

Let's highlight the unit description string in the status updates, to
separate them a bit more the english sentence they are part of, and thus
make the different casing less surprising.

5 years agoshow-status: use free_and_replace() where we can
Lennart Poettering [Fri, 23 Nov 2018 16:19:24 +0000 (17:19 +0100)] 
show-status: use free_and_replace() where we can

5 years agoshow-status: fold two bool flags function arguments into a flags
Lennart Poettering [Fri, 23 Nov 2018 16:18:48 +0000 (17:18 +0100)] 
show-status: fold two bool flags function arguments into a flags
parameter

5 years agoMerge pull request #10919 from yuwata/sd-device-monitor-fixes
Lennart Poettering [Mon, 26 Nov 2018 17:08:41 +0000 (18:08 +0100)] 
Merge pull request #10919 from yuwata/sd-device-monitor-fixes

sd-device-monitor: several fixes

5 years agogenerator.c: systemd-fsck-root.service conflict with shutdown.target
Harald Hoyer [Mon, 26 Nov 2018 10:41:29 +0000 (11:41 +0100)] 
generator.c: systemd-fsck-root.service conflict with shutdown.target

Otherwise a "reboot" or "poweroff" in the initramfs will have to wait
until systemd-fsck-root.service has completed, which might never happen
if the root device never shows up.

5 years agotest-network: add one more test for netdev dropin .conf files 10928/head
Yu Watanabe [Mon, 26 Nov 2018 13:05:48 +0000 (22:05 +0900)] 
test-network: add one more test for netdev dropin .conf files

For netdev, config files are loaded twice, and the first time,
only Match and NetDev setions are read. So, the test given by
the previous commit covers only the second loading.
This adds another test that also covers the first loading.

5 years agoMerge pull request #10901 from poettering/startswith-list
Yu Watanabe [Mon, 26 Nov 2018 13:40:51 +0000 (22:40 +0900)] 
Merge pull request #10901 from poettering/startswith-list

add new STARTSWITH_SET() macro

5 years agoMerge pull request #10927 from yuwata/udev-ctrl-cleanup
Lennart Poettering [Mon, 26 Nov 2018 13:23:28 +0000 (14:23 +0100)] 
Merge pull request #10927 from yuwata/udev-ctrl-cleanup

udev: update log messages and fix coding style issues

5 years agoMerge pull request #10925 from yuwata/sd-boot-fixes
Lennart Poettering [Mon, 26 Nov 2018 13:20:36 +0000 (14:20 +0100)] 
Merge pull request #10925 from yuwata/sd-boot-fixes

sd-boot: fixes trailing whitespace trimming and updates document

5 years agoMerge pull request #10910 from yuwata/list-cleanups
Lennart Poettering [Mon, 26 Nov 2018 13:19:03 +0000 (14:19 +0100)] 
Merge pull request #10910 from yuwata/list-cleanups

basic/list: tiny fixes

5 years agoMerge pull request #10909 from yuwata/import-cleanups
Lennart Poettering [Mon, 26 Nov 2018 13:18:23 +0000 (14:18 +0100)] 
Merge pull request #10909 from yuwata/import-cleanups

Import: cleanups

5 years agoMerge pull request #10894 from poettering/root-cgroup-fix
Lennart Poettering [Mon, 26 Nov 2018 13:13:01 +0000 (14:13 +0100)] 
Merge pull request #10894 from poettering/root-cgroup-fix

A multitude of cgroup fixes

5 years agoterminal-util: use PATH_STARTSWITH_SET() instead of plain startswith() where appropriate 10901/head
Lennart Poettering [Fri, 23 Nov 2018 15:53:39 +0000 (16:53 +0100)] 
terminal-util: use PATH_STARTSWITH_SET() instead of plain startswith() where appropriate

After all, we deal with paths here.

5 years agojournal-upload: use static initialization
Lennart Poettering [Fri, 23 Nov 2018 15:52:43 +0000 (16:52 +0100)] 
journal-upload: use static initialization

5 years agojournal-remote: shorten code a bit by using strcspn()
Lennart Poettering [Fri, 23 Nov 2018 15:52:26 +0000 (16:52 +0100)] 
journal-remote: shorten code a bit by using strcspn()

5 years agotree-wide: port more code over to PATH_STARTSWITH_SET()
Lennart Poettering [Fri, 23 Nov 2018 15:51:53 +0000 (16:51 +0100)] 
tree-wide: port more code over to PATH_STARTSWITH_SET()

5 years agopath-util: beef up PATH_STARTSWITH_SET() macro a bit
Lennart Poettering [Fri, 23 Nov 2018 15:50:39 +0000 (16:50 +0100)] 
path-util: beef up PATH_STARTSWITH_SET() macro a bit

Let's remove duplicate evaluation, and let's return the result of the
succesful path_startswith() call, i.e. the suffix to the matching
prefix.

5 years agotree-wide: port over more cases to STR_IN_SET()
Lennart Poettering [Fri, 23 Nov 2018 15:31:04 +0000 (16:31 +0100)] 
tree-wide: port over more cases to STR_IN_SET()

5 years agotree-wide: port various places over to STARTSWITH_SET()
Lennart Poettering [Fri, 23 Nov 2018 15:30:23 +0000 (16:30 +0100)] 
tree-wide: port various places over to STARTSWITH_SET()

5 years agostrv: add new macro STARTSWITH_SET()
Lennart Poettering [Fri, 23 Nov 2018 15:27:15 +0000 (16:27 +0100)] 
strv: add new macro STARTSWITH_SET()

This is to startswith() what PATH_STARTSWITH_SET() is to
path_startswith().

Or in other words, checks if the specified string has any of the listed
prefixes, and if so, returns the remainder of the string.

5 years agoupdate TODO
Lennart Poettering [Mon, 26 Nov 2018 12:41:07 +0000 (13:41 +0100)] 
update TODO

5 years agotests: add a fuzzer for the udev rules parser (#10929)
Evgeny Vereshchagin [Mon, 26 Nov 2018 09:14:30 +0000 (12:14 +0300)] 
tests: add a fuzzer for the udev rules parser (#10929)

5 years agotest-network: add tests for dropin .conf files
Yu Watanabe [Mon, 26 Nov 2018 06:01:01 +0000 (15:01 +0900)] 
test-network: add tests for dropin .conf files

5 years agonetwork: also load foo.netdev.d/*.conf
Yu Watanabe [Mon, 26 Nov 2018 05:25:50 +0000 (14:25 +0900)] 
network: also load foo.netdev.d/*.conf

Fixes #9940.

5 years agoudevd: do not call udev_ctrl_enable_receiving() if the socket is passed from pid1 10919/head
Yu Watanabe [Mon, 26 Nov 2018 02:57:48 +0000 (11:57 +0900)] 
udevd: do not call udev_ctrl_enable_receiving() if the socket is passed from pid1

Before c4b69e990f962128cc6975e36e91e9ad838fa2c4, if the socket fd is
passed from pid1, `udev_ctrl_enable_receiving()` was not called.
Let's preserve the original logic.

5 years agoudev: drop duplicate whitespaces 10927/head
Yu Watanabe [Mon, 26 Nov 2018 02:53:21 +0000 (11:53 +0900)] 
udev: drop duplicate whitespaces

5 years agoudev-ctrl: update log messages
Yu Watanabe [Mon, 26 Nov 2018 02:52:40 +0000 (11:52 +0900)] 
udev-ctrl: update log messages

5 years agoudev-rules: include device sysname in log messages
Yu Watanabe [Mon, 26 Nov 2018 02:37:29 +0000 (11:37 +0900)] 
udev-rules: include device sysname in log messages

5 years agoudev-ctrl: fix coding style isuues
Yu Watanabe [Fri, 23 Nov 2018 19:46:27 +0000 (04:46 +0900)] 
udev-ctrl: fix coding style isuues

5 years agoMerge pull request #10926 from AsciiWolf/copyright
Yu Watanabe [Mon, 26 Nov 2018 00:33:32 +0000 (09:33 +0900)] 
Merge pull request #10926 from AsciiWolf/copyright

Drop my copyright

5 years agomkosi: drop my copyright 10926/head
AsciiWolf [Sun, 25 Nov 2018 23:30:28 +0000 (00:30 +0100)] 
mkosi: drop my copyright

5 years agopo: drop my copyright (cs.po)
AsciiWolf [Sun, 25 Nov 2018 23:26:03 +0000 (00:26 +0100)] 
po: drop my copyright (cs.po)

5 years agoman: systemd-boot does not read loader.conf.d/*.conf 10925/head
Yu Watanabe [Sun, 25 Nov 2018 21:58:28 +0000 (06:58 +0900)] 
man: systemd-boot does not read loader.conf.d/*.conf

Fixes #10923.

5 years agosd-boot: fix trailing whitespace trimming
Yu Watanabe [Sun, 25 Nov 2018 21:43:33 +0000 (06:43 +0900)] 
sd-boot: fix trailing whitespace trimming

Fixes #10922.

5 years agohwdb: Add ACCEL_MOUNT_MATRIX for Trekstor T13B tablet
Marian Cepok [Sat, 24 Nov 2018 12:24:39 +0000 (13:24 +0100)] 
hwdb: Add ACCEL_MOUNT_MATRIX for Trekstor T13B tablet

5 years agoudevd: do not set buffer size if the socket is passed from pid1
Yu Watanabe [Sun, 25 Nov 2018 06:04:26 +0000 (15:04 +0900)] 
udevd: do not set buffer size if the socket is passed from pid1

Before c4b69e990f962128cc6975e36e91e9ad838fa2c4, if the socket fd is
passed from pid1, `udev_monitor_set_receive_buffer_size()` (now it is
a wrapper of `sd_device_monitor_set_receive_buffer_size()`) was not
called. Let's preserve the original logic.

5 years agosd-device: do not call device_monitor_enable_receiving() for passed fd from pid1
Yu Watanabe [Sun, 25 Nov 2018 05:52:24 +0000 (14:52 +0900)] 
sd-device: do not call device_monitor_enable_receiving() for passed fd from pid1

Before c4b69e990f962128cc6975e36e91e9ad838fa2c4, if the socket fd is
passed from pid1, `udev_monitor_enable_receiving()` (now it is a wrapper
of `device_monitor_enable_receiving`) was not called.
Let's preserve the original logic.

Fixes #10754.

5 years agosd-device: check whether filter is updated or not in sd_device_monitor_filter_update()
Yu Watanabe [Sun, 25 Nov 2018 05:44:46 +0000 (14:44 +0900)] 
sd-device: check whether filter is updated or not in sd_device_monitor_filter_update()

5 years agosd-device: update log message
Yu Watanabe [Sun, 25 Nov 2018 05:06:56 +0000 (14:06 +0900)] 
sd-device: update log message

5 years agosd-device: fix return value on error path
Yu Watanabe [Sun, 25 Nov 2018 05:06:27 +0000 (14:06 +0900)] 
sd-device: fix return value on error path

5 years agounits: order systemd-rfkill.socket after /var/lib/systemd/rfkill (#10904)
Lennart Poettering [Sat, 24 Nov 2018 14:59:37 +0000 (15:59 +0100)] 
units: order systemd-rfkill.socket after /var/lib/systemd/rfkill (#10904)

Otherwise we might install the socket unit early, but the service
backing it late, and then end up in strange loops when we enter rescue
mode, because we saw an event on /dev/rfkill but really can't dispatch
it nor flush it.

Fixes: #9171
5 years agotests: skip test-execute on TravisCI under ASan
Evgeny Vereshchagin [Fri, 23 Nov 2018 17:26:02 +0000 (18:26 +0100)] 
tests: skip test-execute on TravisCI under ASan

Unfortunately, f5f9a580dd4a3cf487b didn't help much and now
the next subtest gets stuck from time to time. Let's skip
test-execute altogether so as not to bother anybody with
spurious failures.

https://github.com/systemd/systemd/issues/10696 is still open.
Everybody is welcome to share ideas :-)

5 years agoFix a few docs typos (#10907)
nikolas [Fri, 23 Nov 2018 19:28:39 +0000 (14:28 -0500)] 
Fix a few docs typos (#10907)

Found with [codespell](https://github.com/codespell-project/codespell)

5 years agobasic/list: fix minor coding style issue 10910/head
Yu Watanabe [Fri, 23 Nov 2018 19:26:10 +0000 (04:26 +0900)] 
basic/list: fix minor coding style issue

5 years agobasic/list: add missing header
Yu Watanabe [Fri, 23 Nov 2018 19:25:00 +0000 (04:25 +0900)] 
basic/list: add missing header

Some macros use assert() which is (re)defined in macro.h

5 years agoimport: use structured initializers 10909/head
Yu Watanabe [Fri, 23 Nov 2018 18:52:35 +0000 (03:52 +0900)] 
import: use structured initializers

5 years agoimport: use _cleanup_ attribute for CURL object
Yu Watanabe [Fri, 23 Nov 2018 18:14:32 +0000 (03:14 +0900)] 
import: use _cleanup_ attribute for CURL object

5 years agoFix typo in hacking guide: "no possible" -> "not possible" (#10905)
nikolas [Fri, 23 Nov 2018 18:01:50 +0000 (13:01 -0500)] 
Fix typo in hacking guide: "no possible" -> "not possible" (#10905)

5 years agoanalyze: Fix build without seccomp (#10899)
Michal Koutný [Fri, 23 Nov 2018 17:40:32 +0000 (18:40 +0100)] 
analyze: Fix build without seccomp (#10899)

5 years agotests: add a fuzzer for server_process_native_file
Evgeny Vereshchagin [Thu, 22 Nov 2018 23:27:19 +0000 (00:27 +0100)] 
tests: add a fuzzer for server_process_native_file

5 years agodhcp6-client: handle IAID with value zero
Thomas Haller [Fri, 23 Nov 2018 12:42:13 +0000 (13:42 +0100)] 
dhcp6-client: handle IAID with value zero

config_parse_iaid(), dhcp_identifier_set_iaid() and sd_dhcp6_client_set_iaid() all
allow for the IAID to be zero. Also, RFC 3315 makes no mention that zero
would be invalid.

However, client_ensure_iaid() would take an IAID of zero as a sign that
the values was unset. Fix that by keeping track whether IAID is
initialized.

5 years agoMerge pull request #10887 from poettering/run-love
Lennart Poettering [Fri, 23 Nov 2018 15:00:16 +0000 (16:00 +0100)] 
Merge pull request #10887 from poettering/run-love

systemd-run: modernizations, some new switches and let's set $INVOCATION_ID

5 years agoMerge pull request #10893 from keszybz/udev-cleanup-followup
Yu Watanabe [Fri, 23 Nov 2018 14:48:44 +0000 (23:48 +0900)] 
Merge pull request #10893 from keszybz/udev-cleanup-followup

Udev cleanup follow-ups

5 years agotest: extend testcase to ensure controller membership doesn't regress 10894/head
Lennart Poettering [Fri, 23 Nov 2018 00:15:19 +0000 (01:15 +0100)] 
test: extend testcase to ensure controller membership doesn't regress

5 years agocgroup: when we unload a unit, also update all its parent's members mask
Lennart Poettering [Fri, 23 Nov 2018 00:13:47 +0000 (01:13 +0100)] 
cgroup: when we unload a unit, also update all its parent's members mask

This way we can corectly ensure that when a unit that requires some
controller goes away, we propagate the removal of it all the way up, so
that the controller is turned off in all the parents too.

5 years agocgroup: drastically simplify caching of cgroups members mask
Lennart Poettering [Fri, 23 Nov 2018 00:07:34 +0000 (01:07 +0100)] 
cgroup: drastically simplify caching of cgroups members mask

Previously we tried to be smart: when a new unit appeared and it only
added controllers to the cgroup mask we'd update the cached members mask
in all parents by ORing in the controller flags in their cached values.
Unfortunately this was quite broken, as we missed some conditions when
this cache had to be reset (for example, when a unit got unloaded),
moreover the optimization doesn't work when a controller is removed
anyway (as in that case there's no other way for the parent to iterate
though all children if any other, remaining child unit still needs it).
Hence, let's simplify the logic substantially: instead of updating the
cache on the right events (which we didn't get right), let's simply
invalidate the cache, and generate it lazily when we encounter it later.
This should actually result in better behaviour as we don't have to
calculate the new members mask for a whole subtree whever we have the
suspicion something changed, but can delay it to the point where we
actually need the members mask.

This allows us to simplify things quite a bit, which is good, since
validating this cache for correctness is hard enough.

Fixes: #9512
5 years agocgroup: extend comment on what unit_release_cgroup() is for
Lennart Poettering [Fri, 23 Nov 2018 00:07:14 +0000 (01:07 +0100)] 
cgroup: extend comment on what unit_release_cgroup() is for

5 years agocgroup: extend reasons when we realize the enable mask
Lennart Poettering [Fri, 23 Nov 2018 00:03:18 +0000 (01:03 +0100)] 
cgroup: extend reasons when we realize the enable mask

After creating a cgroup we need to initialize its
"cgroup.subtree_control" file with the controllers its children want to
use. Currently we do so whenever the mkdir() on the cgroup succeeded,
i.e. when we know the cgroup is "fresh". Let's update the condition
slightly that we also do so when internally we assume a cgroup doesn't
exist yet, even if it already does (maybe left-over from a previous
run).

This shouldn't change anything IRL but make things a bit more robust.

5 years agocgroup: tighten call that detects whether we need to realize a unit's cgroup a bit...
Lennart Poettering [Fri, 23 Nov 2018 00:02:17 +0000 (01:02 +0100)] 
cgroup: tighten call that detects whether we need to realize a unit's cgroup a bit, and comment why

5 years agocgroup: document what the various masks variables are used for
Lennart Poettering [Thu, 22 Nov 2018 23:49:31 +0000 (00:49 +0100)] 
cgroup: document what the various masks variables are used for

5 years agocgroup: extend cg_mask_supported() comment a bit
Lennart Poettering [Thu, 22 Nov 2018 23:48:31 +0000 (00:48 +0100)] 
cgroup: extend cg_mask_supported() comment a bit

5 years agocgroup: simplify check whether it makes sense to realize a cgroup
Lennart Poettering [Thu, 22 Nov 2018 21:11:07 +0000 (22:11 +0100)] 
cgroup: simplify check whether it makes sense to realize a cgroup

5 years agocgroup: in unit_invalidate_cgroup() actually modify invalidation mask
Lennart Poettering [Thu, 22 Nov 2018 21:02:53 +0000 (22:02 +0100)] 
cgroup: in unit_invalidate_cgroup() actually modify invalidation mask

Previously this would manipulate the realization mask for invalidating
the realization. This is a bit ugly though as the realization mask's
primary purpose to is to reflect in which hierarchies a cgroup currently
exists, and it's probably a good idea to keep that in sync with
realities.

We nowadays have the an explicit fields for invalidating cgroup
controller information, the "cgroup_invalidated_mask", let's use this
one instead.

The effect is pretty much the same, as the main consumer of these masks
(unit_has_mask_realize()) checks both anyway.

5 years agocgroup: be more careful with which controllers we can enable/disable on a cgroup
Lennart Poettering [Thu, 22 Nov 2018 20:45:33 +0000 (21:45 +0100)] 
cgroup: be more careful with which controllers we can enable/disable on a cgroup

This changes cg_enable_everywhere() to return which controllers are
enabled for the specified cgroup. This information is then used to
correctly track the enablement mask currently in effect for a unit.
Moreover, when we try to turn off a controller, and this works, then
this is indicates that the parent unit might succesfully turn it off
now, too as our unit might have kept it busy.

So far, when realizing cgroups, i.e. when syncing up the kernel
representation of relevant cgroups with our own idea we would strictly
work from the root to the leaves. This is generally a good approach, as
when controllers are enabled this has to happen in root-to-leaves order.
However, when controllers are disabled this has to happen in the
opposite order: in leaves-to-root order (this is because controllers can
only be enabled in a child if it is already enabled in the parent, and
if it shall be disabled in the parent then it has to be disabled in the
child first, otherwise it is considered busy when it is attempted to
remove it in the parent).

To make things complicated when invalidating a unit's cgroup membershup
systemd can actually turn off some controllers previously turned on at
the very same time as it turns on other controllers previously turned
off. In such a case we have to work up leaves-to-root *and*
root-to-leaves right after each other. With this patch this is
implemented: we still generally operate root-to-leaves, but as soon as
we noticed we successfully turned off a controller previously turned on
for a cgroup we'll re-enqueue the cgroup realization for all parents of
a unit, thus implementing leaves-to-root where necessary.

5 years agopid1,sd-device: use PATH_STARTSWITH_SET more 10893/head
Zbigniew Jędrzejewski-Szmek [Fri, 23 Nov 2018 08:24:26 +0000 (09:24 +0100)] 
pid1,sd-device: use PATH_STARTSWITH_SET more

5 years agobasic/path-util: add missing header
Zbigniew Jędrzejewski-Szmek [Fri, 23 Nov 2018 08:23:19 +0000 (09:23 +0100)] 
basic/path-util: add missing header

PATH_STARTSWITH_SET uses STRV_FOREACH...

5 years agorun: set $INVOCATION_ID for scope units 10887/head
Lennart Poettering [Thu, 22 Nov 2018 19:40:00 +0000 (20:40 +0100)] 
run: set $INVOCATION_ID for scope units

Services invoked by PID1 have $INVOCATION_ID initialized, hence let's do
that for scope units (where the payload process is invoked by us on the
client side) too, to minimize needless differences.

Fixes: #8082
5 years agorun: port to static destructors
Lennart Poettering [Thu, 22 Nov 2018 18:34:15 +0000 (19:34 +0100)] 
run: port to static destructors

5 years agorun: port to DEFINE_MAIN_FUNCTION()
Lennart Poettering [Thu, 22 Nov 2018 18:30:03 +0000 (19:30 +0100)] 
run: port to DEFINE_MAIN_FUNCTION()

5 years agorun: add new --shell switch for spawning a shell as service
Lennart Poettering [Thu, 22 Nov 2018 18:24:48 +0000 (19:24 +0100)] 
run: add new --shell switch for spawning a shell as service

I keep running "systemd-run -t /bin/bash" to quickly get a shell running
in service context. I suspect I am not the only one, hence let's add a
shortcut for it. While we are at it, let's make it smarter, and
automatically inherit the $SHELL of the invoking user as well as the
working directory, and let's imply --pty. --shell (or -S) is hence
equivalent to "-t -d $SHELL".

5 years agorun: add a switch for specifiying the working directory of a service
Lennart Poettering [Thu, 22 Nov 2018 11:07:25 +0000 (12:07 +0100)] 
run: add a switch for specifiying the working directory of a service

I find myself testing service management quite often with "systemd-run
-t /bin/bash". For that it is handy if the invoked shell would use the
working directory I am currently in. Hence introduce a shorthand for
that:

        $ systemd-run -dt /bin/bash

This will automatically insert a WorkingDirectory= property into the
transient service, pointing to the working directory of the caller.

5 years agocgroup: tweak log message, so that it doesn't claim we always enable controllers...
Lennart Poettering [Thu, 22 Nov 2018 11:02:13 +0000 (12:02 +0100)] 
cgroup: tweak log message, so that it doesn't claim we always enable controllers when we actually disable them