Commit Graph
49142 Commits
Author SHA1 Message Date
Michal Sekletar f5b72af50d service: allow MainPID= updates during stop of the service
Example use case is a migration of MainPID to an auxiliary scope.
2024-04-23 11:41:10 +02:00
Lennart Poettering c65bd6cc7e systemctl: set reboot argument for most forms of shutdown, not just plain reboots
This doesn't hurt anyway, and is useful now that we propagate the string
via sd_notify() too.
2024-04-23 11:04:08 +02:00
Lennart Poettering 8c081ae84b shutdown: send an sd_notify() message on shutdown with the shutdown reason and boot param
This is kinda nice in containers, to exfiltrate a string from the
container on shutdown.
2024-04-23 11:04:08 +02:00
Lennart Poettering 965d7f6eaa systemctl: add forgotten --after/--before to --help text
Follow-up for: afba41995d
2024-04-23 10:02:17 +02:00
Lennart Poettering ede3a1461e systemctl: add forgotten --reboot-argument= to --help text
Follow-up for: dae710bef1
2024-04-23 10:02:17 +02:00
Lennart Poettering fd0b87757e systemctl: add forgotten --message= to --help text
Follow-up for: 9ef15026c0
2024-04-23 09:59:39 +02:00
Luca Boccassi 8d1d8dfaed Merge pull request #32413 from yuwata/network-radv-validator
network/radv: several cleanups for validating configs
2024-04-23 01:02:34 +02:00
Mike Yuan 4a77d4ceb9 kernel-install/60-ukify: also search in {/run,/usr/local/lib}/kernel/
After db26d8025e,
kernel-install takes config files under /run/
and /usr/local/lib/ into account too. The same
should apply to ukify.

Note that ukify when invoked alone searches under
/run/systemd/, /etc/systemd/, /usr/local/lib/systemd/,
and /usr/lib/systemd/, respectively, which is against
our usual order...
2024-04-22 22:38:11 +02:00
Sam Leonard c9e89db860 machined: fix invalid edge case in machine_new 2024-04-22 22:37:05 +02:00
Yu Watanabe c6aadfdd32 ukify: swap the ordering of config search paths
Let's follow our usual ordering.

Follow-up for a05fa30f88.
2024-04-22 20:38:16 +02:00
Lennart Poettering 8b2f2a568d test: ensure all architecture ids we define definitely fit into .v/ patterns
Just some safety checks so that we never regress on this: make sure all
architectur IDs we define are embeddable safely in .v/ entry file names.
2024-04-22 20:28:33 +02:00
Daan De Meyer e660fee2d0 Merge pull request #32392 from DaanDeMeyer/executor-log-level
core: Set a sensible systemd-executor log level in test runs
2024-04-22 19:26:52 +02:00
Yu Watanabe a05381d58b network/radv: drop unnecessary conditions
sd_radv_set_xyz() will handle invalid values gracefully.
2024-04-23 02:06:33 +09:00
Yu Watanabe c6ffb8789c network/radv: warn about non-zero preference with zero lifetime
Note that the misconfiguration will be handled gracefully. So it is not
necessary to adjust value here. Let's only warn about that.
2024-04-23 02:05:41 +09:00
Yu Watanabe efe96c34a0 network/radv: verify [IPv6Prefix] section or friends in network_adjust_radv()
Previously, network_drop_invalid_pref64_prefixes() was never called.
This also fixes that.
2024-04-23 02:04:18 +09:00
Luca Boccassi f149e68290 Merge pull request #32396 from YHNdnzj/verb-required
shared/verbs: show list of verbs when missing
2024-04-22 18:14:10 +02:00
Daan De Meyer 827004df94 mount-util: Silence noisy trace log message 2024-04-22 18:01:06 +02:00
Lennart Poettering f92868db4e Merge pull request #32369 from DaanDeMeyer/serial
terminal-util: Enable line wrapping in reset_terminal_fd()
2024-04-22 17:48:14 +02:00
Lennart Poettering 29ba6bddc5 Merge pull request #32399 from poettering/doc-fixes-256
various documentation fixes (plus minor other work)
2024-04-22 17:41:39 +02:00
Mike Yuan 9d43e0335f nspawn: fix typo
Follow-up for edd3d4d7c2
2024-04-22 23:00:22 +08:00
Daan De Meyer 90265bcf92 core: Set a sensible systemd-executor log level in test runs 2024-04-22 16:12:14 +02:00
Luca Boccassi edd3d4d7c2 nspawn: ensure single-process container running as --user can access credentials
When starting a container with --user, the new uid will be resolved and switched to
only in the inner child, at the end of the setup, by spawning getent. But the
credentials are set up in the outer child, long before the user is resolvable,
and the directories/files are made only readable by root and read-only, which
means they cannot be changed later and made visible to the user.

When this particular combination is specified, it is obvious the caller wants
the single-process container to be able to use credentials, so make them world
readable only in that specific case.

Fixes https://github.com/systemd/systemd/issues/31794
2024-04-22 15:47:44 +02:00
Daan De Meyer f57705d67d terminal-util: Enable line wrapping in reset_terminal_fd()
The qemu seabios firmware disables serial console line wrapping. Let's
make sure we re-enable it again when we reset a terminal to some sane
defaults.

To avoid potentially blocking on writing to the terminal, we put it
in nonblocking mode and add a timeout of 50ms.
2024-04-22 15:28:26 +02:00
Daan De Meyer e6724664c3 fd-util: Return 1 from fd_nonblock() if we actually change the mode 2024-04-22 15:28:26 +02:00
Lennart Poettering c903d3df6f resolved: tighten the rules a bit on valid DNS-SD service identifiers
Let's insist that the ID is suitable for inclusion in a filename, as one
of the most basic of requirements.
2024-04-22 15:16:54 +02:00
Lennart Poettering 0ef0e2691a resolved: rename DnssdService "name" field to "id"
"name" is a bit confusing since this field is *not* the DNS-SD service
identifier, bust just some string derived from the .dnssd filename that
is used as handle for the service. Let's hence give it a better name:
"id".

While we are at it, switch from basename() to path_extract_filename().
2024-04-22 15:16:54 +02:00
Lennart Poettering 407630164e resolved: rename DnssdService.filename field to .path
It contains a full path, not just a filename, hence name it
appropriately.
2024-04-22 15:16:54 +02:00
Luca Boccassi 93cb78aee2 core: add ExecMainHandoverTimestamp property recording time-of-execve
Enable the exec_fd logic for Type=notify* services too, and change it
to send a timestamp instead of a '1' byte. Record the timestamp in a
new ExecMainHandoverTimestamp property so that users can track accurately
when control is handed over from systemd to the service payload, so
that latency and startup performance can be trivially and accurately
tracked and attributed.
2024-04-22 15:16:05 +02:00
Mike Yuan adaf1f7ea3 shared/verbs: show list of verbs when missing
Replaces #32062

As discussed in #32062, making 'help' the default verb
is not very appealing for two reasons:

1) If the verb is missing, showing a help which is pages long
   isn't really helpful to locate the problem.
   (https://github.com/systemd/systemd/pull/32062#issuecomment-2064997158)

2) We want to reserve the right to set default verbs to be
   more useful ones, instead of help. E.g. 'busctl' lists all
   bus peers by default.

So, when there are more than 2 verbs, let's instead add
the list of available verbs to the "Command verb required"
message, that serves as a hint. That way we try to be friendlier
to users, but still make the problem obvious.
2024-04-22 20:42:35 +08:00
Mike Yuan 48fb49f1bd shared/verbs: minor modernization 2024-04-22 20:35:51 +08:00
Luca Boccassi f64222b748 Merge pull request #32347 from yuwata/sd-radv-reachable-time
sd-radv: allow to configure reachable time
2024-04-22 14:04:25 +02:00
Daan De Meyer 1b889631ed core: Check for TERM=dumb in show_status()
We shouldn't try to use any ANSI escape sequences if TERM=dumb.
Also, the "\r\n" we output can get interpreted as a double newline
(for example by Github Actions), so let's output just "\n" when
TERM=dumb to clean up the CI logs.
2024-04-22 13:27:27 +02:00
Luca Boccassi c3411932b1 Merge pull request #32389 from keszybz/bin-sbin-merge
Try PATH without sbin even if compiled with split-bin=true
2024-04-22 13:07:48 +02:00
Lennart Poettering 21a3bc6b9f tpm2-util: add generic wrapper tpm2_context_new_or_warn() that wrpas tpm2_context_new and logs about errors
We so far just print a short log message that is not very useful, let's
add some recognizable error codes, and output better log messages if we
can't get TPM stuff to work.

Fixes: #31925
2024-04-22 12:40:09 +02:00
Yu Watanabe 2fa480592d sd-event: fix fd leak when fd is owned by IO event source
When an IO event source owns relevant fd, replacing with a new fd leaks
the previously assigned fd.
===
sd_event_add_io(event, &s, fd, ...);
sd_event_source_set_io_fd_own(s, true);
sd_event_source_set_io_fd(s, new_fd);  <-- The previous fd is not closed.
sd_event_source_unref(s);  <-- new_fd is closed as expected.
===

Without the change, valgrind reports the leak:
==998589==
==998589== FILE DESCRIPTORS: 4 open (3 std) at exit.
==998589== Open file descriptor 4:
==998589==    at 0x4F119AB: pipe2 (in /usr/lib64/libc.so.6)
==998589==    by 0x408830: test_sd_event_source_set_io_fd (test-event.c:862)
==998589==    by 0x403302: run_test_table (tests.h:171)
==998589==    by 0x408E31: main (test-event.c:935)
==998589==
==998589==
==998589== HEAP SUMMARY:
==998589==     in use at exit: 0 bytes in 0 blocks
==998589==   total heap usage: 33,305 allocs, 33,305 frees, 1,283,581 bytes allocated
==998589==
==998589== All heap blocks were freed -- no leaks are possible
==998589==
==998589== For lists of detected and suppressed errors, rerun with: -s
==998589== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
2024-04-22 18:30:12 +08:00
Yu Watanabe 59d475ba40 network/radv: introduce ReachableTimeSec= setting
To make the reachable time in the RA header sent by networkd
configurable.
2024-04-22 18:41:37 +09:00
Yu Watanabe bc50700c7e sd-radv: allow to configure reachable time in RA header 2024-04-22 18:40:10 +09:00
Lennart Poettering b7866fa6aa Merge pull request #31987 from flatcar-hub/krnowak/usr-perm-check
sysext: Fix issues with merged hierarchy mode
2024-04-22 11:14:35 +02:00
Zbigniew Jędrzejewski-Szmek c1fa6427f2 sd-path: rename output param
As requested in review.
2024-04-22 09:55:17 +02:00
Zbigniew Jędrzejewski-Szmek 0f36a4c897 Try path without sbin even if compiled with split-bin=true
I'm working on the transition to merged sbin in Fedora. While the transition is
happening (and probably for a while after), we need to compile systemd with
split-bin=true to support systems upgraded from previous versions. But when the
system has been upgraded and already has /usr/sbin that is a symlink, be nice
and give $PATH without sbin.

We check for both /usr/sbin and /usr/local/sbin. If either exists and is not a
symlink to ./bin, we retain previous behaviour. This means that if both are
converted, we get the same behaviour as split-bin=false, and otherwise we
get the same behaviour as before.

sd-path uses the same logic. This is not a hot path, so I got rid of the nulstr
macros that duplicated the logic.
2024-04-22 09:53:24 +02:00
Daan De Meyer 7a7d7a2e22 test: Don't allocate scope if already running in unit with delegated cgroup
If we're already running in a unit with delegation turned on, let's
skip allocation of a scope unit and cgroup subroot. This allows journald
to correctly attribute the logs of all subprocesses spawned by tests such
as test-execute to the test-execute service when the test is running in a service.
2024-04-22 09:42:29 +02:00
Daan De Meyer b8c6c35804 test: Use log_setup()
Specifically, this will make tests log to the journal if stderr is
connected to the journal. This means we get proper log priorities
and such compared to if we just logged to stderr.
2024-04-22 09:42:29 +02:00
Daan De Meyer 26d79ab86d test-execute: Use new assertion macros 2024-04-22 09:42:29 +02:00
Daan De Meyer dd8e82f0d6 test: Add ASSERT_ERROR() and ASSERT_ERROR_ERRNO()
For when we expect something to fail with a specific error.
2024-04-22 09:42:29 +02:00
Daan De Meyer 949d967964 test: Make sure test_fdset_close_others does not affect logging fds 2024-04-22 09:42:29 +02:00
Daan De Meyer 4b3e5fd91f test-bpf-restrict-fs: Add @application to allowed filesystems as well
We might be booting from virtiofs which is fuse so we need @application
as well.
2024-04-22 09:42:28 +02:00
Daan De Meyer cbfc550000 test-bpf-firewall: Skip if ping is not available 2024-04-22 09:42:28 +02:00
Luca Boccassi 8f0de5c433 Merge pull request #32372 from yuwata/sd-radv-trivial-cleanups
sd-radv: several trivial cleanups
2024-04-20 15:24:02 +02:00
Mike Yuan f8598699e7 Merge pull request #32370 from YHNdnzj/vpick-check-early
shared/vpick: some minor cleanups
2024-04-20 21:02:37 +08:00
Luca Boccassi 6e6deacc61 Merge pull request #32359 from poettering/vmspawn-hyperv-enlight
some hyperv related enhancement in detect-virt + vmspawn
2024-04-20 14:40:14 +02:00