!134 [sync] PR-133: uptime/w: fix print 0 user when systemd-pam is not installed
From: @openeuler-sync-bot Reviewed-by: @wangbin224 Signed-off-by: @wangbin224
This commit is contained in:
commit
74655f3ca2
@ -0,0 +1,29 @@
|
|||||||
|
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
|
||||||
|
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
From c0c707ac435d6318fa8d5542906599867877465a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chao Liu <liuchao173@huawei.com>
|
||||||
|
Date: Tue, 7 May 2024 07:20:34 +0000
|
||||||
|
Subject: [PATCH 2/2] w: Fix w print 0 user when systemd-pam is not
|
||||||
|
installed
|
||||||
|
|
||||||
|
Signed-off-by: SuperSix173 <liuchao173@huawei.com>
|
||||||
|
---
|
||||||
|
src/w.c | 53 ++++++++++++++++++++++++++---------------------------
|
||||||
|
1 file changed, 26 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/w.c b/src/w.c
|
||||||
|
index fd6e75f..8e30e5d 100644
|
||||||
|
--- a/src/w.c
|
||||||
|
+++ b/src/w.c
|
||||||
|
@@ -805,37 +805,36 @@ int main(int argc, char **argv)
|
||||||
|
printf(_(" IDLE WHAT\n"));
|
||||||
|
}
|
||||||
|
#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
|
||||||
|
- if (sd_booted() > 0) {
|
||||||
|
- char **sessions_list;
|
||||||
|
- int sessions;
|
||||||
|
- int i;
|
||||||
|
+ char **sessions_list;
|
||||||
|
+ int sessions = 0;
|
||||||
|
|
||||||
|
+ if (sd_booted() > 0)
|
||||||
|
sessions = sd_get_sessions (&sessions_list);
|
||||||
|
- if (sessions < 0 && sessions != -ENOENT)
|
||||||
|
- error(EXIT_FAILURE, -sessions, _("error getting sessions"));
|
||||||
|
-
|
||||||
|
- if (sessions >= 0) {
|
||||||
|
- for (int i = 0; i < sessions; i++) {
|
||||||
|
- char *name;
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- if ((r = sd_session_get_username(sessions_list[i], &name)) < 0)
|
||||||
|
- error(EXIT_FAILURE, -r, _("get user name failed"));
|
||||||
|
-
|
||||||
|
- if (user) {
|
||||||
|
- if (!strcmp(name, user))
|
||||||
|
- showinfo(sessions_list[i], name, NULL, longform,
|
||||||
|
- maxcmd, from, userlen, fromlen,
|
||||||
|
- ip_addresses, pids);
|
||||||
|
- } else {
|
||||||
|
- showinfo(sessions_list[i], name, NULL, longform, maxcmd,
|
||||||
|
- from, userlen, fromlen, ip_addresses, pids);
|
||||||
|
- }
|
||||||
|
- free(name);
|
||||||
|
- free(sessions_list[i]);
|
||||||
|
+
|
||||||
|
+ if (sessions < 0 && sessions != -ENOENT)
|
||||||
|
+ error(EXIT_FAILURE, -sessions, _("error getting sessions"));
|
||||||
|
+
|
||||||
|
+ if (sessions > 0) {
|
||||||
|
+ for (int i = 0; i < sessions; i++) {
|
||||||
|
+ char *name;
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
+ if ((r = sd_session_get_username(sessions_list[i], &name)) < 0)
|
||||||
|
+ error(EXIT_FAILURE, -r, _("get user name failed"));
|
||||||
|
+
|
||||||
|
+ if (user) {
|
||||||
|
+ if (!strcmp(name, user))
|
||||||
|
+ showinfo(sessions_list[i], name, NULL, longform,
|
||||||
|
+ maxcmd, from, userlen, fromlen,
|
||||||
|
+ ip_addresses, pids);
|
||||||
|
+ } else {
|
||||||
|
+ showinfo(sessions_list[i], name, NULL, longform, maxcmd,
|
||||||
|
+ from, userlen, fromlen, ip_addresses, pids);
|
||||||
|
}
|
||||||
|
- free(sessions_list);
|
||||||
|
+ free(name);
|
||||||
|
+ free(sessions_list[i]);
|
||||||
|
}
|
||||||
|
+ free(sessions_list);
|
||||||
|
} else {
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UTMPX_H
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: procps-ng
|
Name: procps-ng
|
||||||
Version: 4.0.4
|
Version: 4.0.4
|
||||||
Release: 4
|
Release: 5
|
||||||
Summary: Utilities that provide system information.
|
Summary: Utilities that provide system information.
|
||||||
License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+
|
License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+
|
||||||
URL: https://sourceforge.net/projects/procps-ng/
|
URL: https://sourceforge.net/projects/procps-ng/
|
||||||
@ -15,6 +15,8 @@ Patch3: backport-library-address-remaining-cpu-distortions-stat-api.patch
|
|||||||
Patch4: backport-uptime-fix-output-on-60-seconds.patch
|
Patch4: backport-uptime-fix-output-on-60-seconds.patch
|
||||||
Patch5: backport-ps-don-t-lose-tasks-when-sort-used-with-forest-mode.patch
|
Patch5: backport-ps-don-t-lose-tasks-when-sort-used-with-forest-mode.patch
|
||||||
Patch6: backport-acknowledge-fix-for-the-lost-tasks-ps-issue.patch
|
Patch6: backport-acknowledge-fix-for-the-lost-tasks-ps-issue.patch
|
||||||
|
Patch7: openeuler-uptime-Fix-uptime-return-0-user-when-systemd-pam-is-.patch
|
||||||
|
Patch8: openeuler-w-Fix-w-print-0-user-when-systemd-pam-is-not-install.patch
|
||||||
|
|
||||||
BuildRequires: ncurses-devel libtool autoconf automake gcc gettext-devel systemd-devel
|
BuildRequires: ncurses-devel libtool autoconf automake gcc gettext-devel systemd-devel
|
||||||
|
|
||||||
@ -97,6 +99,9 @@ ln -s %{_bindir}/pidof %{buildroot}%{_sbindir}/pidof
|
|||||||
%{_mandir}/man*
|
%{_mandir}/man*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu May 9 2024 Liu Chao <liuchao173@huawei.com> - 4.0.4-5
|
||||||
|
- uptime/w: fix print 0 user when systemd-pam is not installed
|
||||||
|
|
||||||
* Thu Apr 25 2024 yinyongkang <yinyongkang@kylinos.cn> - 4.0.4-4
|
* Thu Apr 25 2024 yinyongkang <yinyongkang@kylinos.cn> - 4.0.4-4
|
||||||
- ps: don't lose tasks when --sort used with forest mode
|
- ps: don't lose tasks when --sort used with forest mode
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user