From: Luca Boccassi Date: Wed, 27 Aug 2025 19:16:11 +0000 (+0100) Subject: analyze: fix unit-shell/unit-gdb when target unit has exited X-Git-Tag: v258-rc4~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e91bfad241799b449df73efc30d833b9c5937001;p=thirdparty%2Fsystemd.git analyze: fix unit-shell/unit-gdb when target unit has exited Follow-up for 9a08000d186396bc8bcb8fe057720417543c3bf0 Follow-up for ad6e02e7b42db35178305614e643be7a62568d87 --- diff --git a/src/analyze/analyze-unit-gdb.c b/src/analyze/analyze-unit-gdb.c index 7c5da0b948d..4fe108f89b5 100644 --- a/src/analyze/analyze-unit-gdb.c +++ b/src/analyze/analyze-unit-gdb.c @@ -62,6 +62,8 @@ int verb_unit_gdb(int argc, char *argv[], void *userdata) { r = sd_bus_message_read(reply, "u", &pid); if (r < 0) return log_error_errno(r, "Failed to read the main PID of %s from reply: %m", unit); + if (pid == 0) + return log_error_errno(SYNTHETIC_ERRNO(ESRCH), "Unit %s has no MainPID (hint: inactive?)", unit); if (!arg_debugger) { arg_debugger = strdup(secure_getenv("SYSTEMD_DEBUGGER") ?: "gdb"); diff --git a/src/analyze/analyze-unit-shell.c b/src/analyze/analyze-unit-shell.c index 607c6af6763..a5641fdd70b 100644 --- a/src/analyze/analyze-unit-shell.c +++ b/src/analyze/analyze-unit-shell.c @@ -58,6 +58,8 @@ int verb_unit_shell(int argc, char *argv[], void *userdata) { r = sd_bus_message_read(reply, "u", &pid); if (r < 0) return log_error_errno(r, "Failed to read the main PID of %s from reply: %m", unit); + if (pid == 0) + return log_error_errno(SYNTHETIC_ERRNO(ESRCH), "Unit %s has no MainPID (hint: inactive?)", unit); _cleanup_close_ int mntns_fd = -EBADF, root_fd = -EBADF, pidns_fd = -EBADF, netns_fd = -EBADF, userns_fd = -EBADF; r = namespace_open(