From d91b13806f41131fe55ece6027fa762f5da016ac Mon Sep 17 00:00:00 2001 From: Pere Orga Date: Tue, 9 Aug 2011 04:09:17 +0200 Subject: [PATCH] uptime: add config flag to allow displaying the number of users currently logged on Signed-off-by: Pere Orga Signed-off-by: Denys Vlasenko --- procps/Config.src | 9 --------- procps/uptime.c | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/procps/Config.src b/procps/Config.src index 3e7df0b81..570b026da 100644 --- a/procps/Config.src +++ b/procps/Config.src @@ -194,15 +194,6 @@ config FEATURE_SHOW_THREADS Enables the ps -T option, showing of threads in pstree, and 'h' command in top. -config UPTIME - bool "uptime" - default y - select PLATFORM_LINUX #sysinfo() - help - uptime gives a one line display of the current time, how long - the system has been running, how many users are currently logged - on, and the system load averages for the past 1, 5, and 15 minutes. - config WATCH bool "watch" default y diff --git a/procps/uptime.c b/procps/uptime.c index 74323625d..c3a2740e1 100644 --- a/procps/uptime.c +++ b/procps/uptime.c @@ -7,14 +7,29 @@ * Licensed under GPLv2, see file LICENSE in this source tree. */ -/* This version of uptime doesn't display the number of users on the system, - * since busybox init doesn't mess with utmp. For folks using utmp that are - * just dying to have # of users reported, feel free to write it as some type - * of CONFIG_FEATURE_UTMP_SUPPORT #define +/* 2011 Pere Orga + * + * Added FEATURE_UPTIME_UTMP_SUPPORT flag. */ /* getopt not needed */ +//config:config UPTIME +//config: bool "uptime" +//config: default y +//config: select PLATFORM_LINUX #sysinfo() +//config: help +//config: uptime gives a one line display of the current time, how long +//config: the system has been running, how many users are currently logged +//config: on, and the system load averages for the past 1, 5, and 15 minutes. +//config: +//config:config FEATURE_UPTIME_UTMP_SUPPORT +//config: bool "Support for showing the number of users" +//config: default y +//config: depends on UPTIME && FEATURE_UTMP +//config: help +//config: Makes uptime display the number of users currently logged on. + //usage:#define uptime_trivial_usage //usage: "" //usage:#define uptime_full_usage "\n\n" @@ -64,6 +79,18 @@ int uptime_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) else printf("%d min, ", upminutes); +#if ENABLE_FEATURE_UPTIME_UTMP_SUPPORT +{ + struct utmp *ut; + int users = 0; + while ((ut = getutent())) { + if ((ut->ut_type == USER_PROCESS) && (ut->ut_name[0] != '\0')) + users++; + } + printf("%d users, ", users); +} +#endif + printf("load average: %ld.%02ld, %ld.%02ld, %ld.%02ld\n", LOAD_INT(info.loads[0]), LOAD_FRAC(info.loads[0]), LOAD_INT(info.loads[1]), LOAD_FRAC(info.loads[1]), -- 2.25.1