diff options
author | Pere Orga <gotrunks@gmail.com> | 2011-08-09 04:09:17 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2011-08-09 04:09:17 +0200 |
commit | d91b13806f41131fe55ece6027fa762f5da016ac (patch) | |
tree | 58f56e6a1c0f31794bb1e435f1d4fba2456156ee | |
parent | 7485086f1eca78998d6cd31b0ce18a8a8ea3fc35 (diff) | |
download | busybox-d91b13806f41131fe55ece6027fa762f5da016ac.tar.gz |
uptime: add config flag to allow displaying the number of users currently logged on
Signed-off-by: Pere Orga <gotrunks@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | procps/Config.src | 9 | ||||
-rw-r--r-- | 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 <gotrunks@gmail.com> + * + * 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]), |