From c06bcd4d687a43e295ca626a6793631c8d354eac Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 5 May 2020 18:27:37 +0200 Subject: [PATCH] homed: allow overriding homework path via env var Let's make debugging a bit easier: when invoking homed from the build tree it's now possible to make sure homed invokes the build tree's homework binary by setting an env var. --- src/home/homed-home.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/home/homed-home.c b/src/home/homed-home.c index c98e18c686..07356e60c4 100644 --- a/src/home/homed-home.c +++ b/src/home/homed-home.c @@ -1002,6 +1002,8 @@ static int home_start_work(Home *h, const char *verb, UserRecord *hr, UserRecord if (r < 0) return r; if (r == 0) { + const char *homework; + /* Child */ if (setenv("NOTIFY_SOCKET", "/run/systemd/home/notify", 1) < 0) { @@ -1017,7 +1019,11 @@ static int home_start_work(Home *h, const char *verb, UserRecord *hr, UserRecord stdin_fd = stdout_fd = -1; /* have been invalidated by rearrange_stdio() */ - execl(SYSTEMD_HOMEWORK_PATH, SYSTEMD_HOMEWORK_PATH, verb, NULL); + /* Allow overriding the homework path via an environment variable, to make debugging + * easier. */ + homework = getenv("SYSTEMD_HOMEWORK_PATH") ?: SYSTEMD_HOMEWORK_PATH; + + execl(homework, homework, verb, NULL); log_error_errno(errno, "Failed to invoke " SYSTEMD_HOMEWORK_PATH ": %m"); _exit(EXIT_FAILURE); }