30 lines
988 B
Diff
30 lines
988 B
Diff
|
|
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
|
||
|
|
|