uptime: add config flag to allow displaying the number of users currently logged on
authorPere Orga <gotrunks@gmail.com>
Tue, 9 Aug 2011 02:09:17 +0000 (04:09 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 9 Aug 2011 02:09:17 +0000 (04:09 +0200)
Signed-off-by: Pere Orga <gotrunks@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
procps/Config.src
procps/uptime.c

index 3e7df0b81cfe71f0371c82aaa72581bad9ee57d9..570b026da50e6d618b364d8d202132f22b4779a1 100644 (file)
@@ -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
index 74323625db0f4e9c3a2f6ab761509ed80d6d9ea1..c3a2740e1b1a506cb2041e3c5b45fc87e912dd22 100644 (file)
@@ -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]),