summaryrefslogtreecommitdiff
path: root/src/debug-generator
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-12-03 14:48:27 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-12-03 14:48:27 +0100
commit23e5e79a51f92c1b0ab3812e0efe65055d5d3a8a (patch)
treea79e13cb02bd0c345e1d5932f12a448835bca148 /src/debug-generator
parent2b1daf24dc82dcadf584b2a7ea2801bd9710f894 (diff)
downloadsystemd-23e5e79a51f92c1b0ab3812e0efe65055d5d3a8a.tar.gz
initrd: fix systemd.debug-shell & friends
They would get assigned to an inactive target in the initramfs.
Diffstat (limited to 'src/debug-generator')
-rw-r--r--src/debug-generator/debug-generator.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/debug-generator/debug-generator.c b/src/debug-generator/debug-generator.c
index bc8714c4c7..4e41eca352 100644
--- a/src/debug-generator/debug-generator.c
+++ b/src/debug-generator/debug-generator.c
@@ -126,7 +126,15 @@ static int generate_wants_symlinks(void) {
STRV_FOREACH(u, arg_wants) {
_cleanup_free_ char *p = NULL, *f = NULL;
- const char *target = arg_default_unit ?: SPECIAL_DEFAULT_TARGET;
+ const char *target;
+
+ /* This should match what do_queue_default_job() in core/main.c does. */
+ if (arg_default_unit)
+ target = arg_default_unit;
+ else if (in_initrd())
+ target = SPECIAL_INITRD_TARGET;
+ else
+ target = SPECIAL_DEFAULT_TARGET;
p = strjoin(arg_dest, "/", target, ".wants/", *u);
if (!p)