procps-ng/openeuler-uptime-Fix-uptime-return-0-user-when-systemd-pam-is-.patch

30 lines
988 B
Diff
Raw Permalink Normal View History

From 600cc2dff859aac525d62000316d957846da4a66 Mon Sep 17 00:00:00 2001
From: Chao Liu <liuchao173@huawei.com>
Date: Tue, 7 May 2024 03:42:34 +0000
Subject: [PATCH 1/2] uptime: Fix uptime return 0 user when systemd-pam is not
installed
When systemd-pam is not installed, systemd won't create files in /run/systemd/sessions/ and sd_get_sessions will return 0. However, the actual number of users is not 0. When sd_get_sessions return 0, uptime should use getutxent for statistics.
---
library/uptime.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/library/uptime.c b/library/uptime.c
index 52720cbc..0db38ee5 100644
--- a/library/uptime.c
+++ b/library/uptime.c
@@ -71,7 +71,9 @@ PROCPS_EXPORT int procps_users(void)
#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
if (sd_booted() > 0)
- return sd_get_sessions(NULL);
+ numuser = sd_get_sessions(NULL);
+ if (numuser > 0)
+ return numuser;
#endif
setutent();
--
2.33.0