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>
This commit is contained in:
Pere Orga 2011-08-09 04:09:17 +02:00 committed by Denys Vlasenko
parent 7485086f1e
commit d91b13806f
2 changed files with 31 additions and 13 deletions

View File

@ -194,15 +194,6 @@ config FEATURE_SHOW_THREADS
Enables the ps -T option, showing of threads in pstree, Enables the ps -T option, showing of threads in pstree,
and 'h' command in top. 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 config WATCH
bool "watch" bool "watch"
default y default y

View File

@ -7,14 +7,29 @@
* Licensed under GPLv2, see file LICENSE in this source tree. * Licensed under GPLv2, see file LICENSE in this source tree.
*/ */
/* This version of uptime doesn't display the number of users on the system, /* 2011 Pere Orga <gotrunks@gmail.com>
* 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 * Added FEATURE_UPTIME_UTMP_SUPPORT flag.
* of CONFIG_FEATURE_UTMP_SUPPORT #define
*/ */
/* getopt not needed */ /* 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:#define uptime_trivial_usage
//usage: "" //usage: ""
//usage:#define uptime_full_usage "\n\n" //usage:#define uptime_full_usage "\n\n"
@ -64,6 +79,18 @@ int uptime_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
else else
printf("%d min, ", upminutes); 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", printf("load average: %ld.%02ld, %ld.%02ld, %ld.%02ld\n",
LOAD_INT(info.loads[0]), LOAD_FRAC(info.loads[0]), LOAD_INT(info.loads[0]), LOAD_FRAC(info.loads[0]),
LOAD_INT(info.loads[1]), LOAD_FRAC(info.loads[1]), LOAD_INT(info.loads[1]), LOAD_FRAC(info.loads[1]),