diff --git a/src/core/execute.c b/src/core/execute.c index e1f8d9a31b..9d10088901 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -4136,13 +4136,17 @@ static int exec_child( } } - if (context->utmp_id) + if (context->utmp_id) { + const char *line = context->tty_path ? + (path_startswith(context->tty_path, "/dev/") ?: context->tty_path) : + NULL; utmp_put_init_process(context->utmp_id, getpid_cached(), getsid(0), - context->tty_path, + line, context->utmp_mode == EXEC_UTMP_INIT ? INIT_PROCESS : context->utmp_mode == EXEC_UTMP_LOGIN ? LOGIN_PROCESS : USER_PROCESS, username); + } if (uid_is_valid(uid)) { r = chown_terminal(STDIN_FILENO, uid);