]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
last: tell verbally system is still running
authorSami Kerola <kerolasa@iki.fi>
Wed, 28 Aug 2013 17:53:22 +0000 (18:53 +0100)
committerSami Kerola <kerolasa@iki.fi>
Thu, 29 Aug 2013 17:14:10 +0000 (18:14 +0100)
Use of uptime time stamp as previous boot login time makes the output not
constant, which is rather difficult to test.  Verbal message 'system is
still running' makes testing easy, and noticing which boot is still
running clear to a person.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
login-utils/last.c
tests/expected/last/last

index 73a4b4791de17d81d2333594ca27f775e382cd49..419162e29805c198d5f0fbce71085003b2024801 100644 (file)
@@ -370,7 +370,7 @@ static void trim_trailing_spaces(char *s)
  */
 static int list(const struct last_control *ctl, struct utmp *p, time_t t, int what)
 {
-       time_t          secs, tmp;
+       time_t          secs, tmp, epoch;
        char            logintime[LAST_TIMESTAMP_LEN];
        char            logouttime[LAST_TIMESTAMP_LEN];
        char            length[LAST_TIMESTAMP_LEN];
@@ -421,7 +421,16 @@ static int list(const struct last_control *ctl, struct utmp *p, time_t t, int wh
        mins  = (secs / 60) % 60;
        hours = (secs / 3600) % 24;
        days  = secs / 86400;
-       if (days)
+
+       epoch = time(NULL);
+       if (t == epoch) {
+               if (ctl->fulltime)
+                       sprintf(logouttime, "  still running");
+               else {
+                       sprintf(logouttime, "  still");
+                       sprintf(length, "running");
+               }
+       } else if (days)
                sprintf(length, "(%d+%02d:%02d)", days, hours, mins);
        else
                sprintf(length, " (%02d:%02d)", hours, mins);
index baa6ebcd1e6b3f4a5f7767894636626203caa259..2ff5cc19bbf5fb400ce6d175301fb8bc548b4ff0 100644 (file)
@@ -1,7 +1,7 @@
 ~~~ basic output ~~~
 rick     long         never-gonna-logo Thu Jan  1 00:00 - 03:14 (24855+03:14)
 torvalds linux        hobby            Mon Aug 26 00:57   still logged in
-reboot   system boot  system-name      Wed Aug 28 18:00 - 18:50  (00:50)
+reboot   system boot  system-name      Wed Aug 28 18:00   still running
 reboot   system boot  system-name      Wed Aug 28 16:00 - 17:00  (01:00)
 IPv4     root         dns-server       Wed Aug 28 13:00 - 14:00  (01:00)
 nonvalid foo          zero             Wed Aug 28 12:00 - down   (03:00)
@@ -18,7 +18,7 @@ wtmp begins Wed Aug 28 03:00:00 2013
 ~~~ include system ~~~
 rick     long         never-gonna-logo Thu Jan  1 00:00 - 03:14 (24855+03:14)
 torvalds linux        hobby            Mon Aug 26 00:57   still logged in
-reboot   system boot  system-name      Wed Aug 28 18:00 - 18:50  (00:50)
+reboot   system boot  system-name      Wed Aug 28 18:00   still running
 shutdown system down  system-name      Wed Aug 28 17:00 - 18:00  (01:00)
 reboot   system boot  system-name      Wed Aug 28 16:00 - 17:00  (01:00)
 shutdown system down  system-name      Wed Aug 28 15:00 - 16:00  (01:00)
@@ -57,7 +57,7 @@ wtmp begins Wed Aug 28 03:00:00 2013
 ~~~ full times ~~~
 rick     long         never-gonna-logo Thu Jan  1 00:00:00 1970 - Tue Jan 19 03:14:07 2038 (24855+03:14)
 torvalds linux        hobby            Mon Aug 26 00:57:08 1991   still logged in
-reboot   system boot  system-name      Wed Aug 28 18:00:00 2013 - Wed Aug 28 18:50:27 2013  (00:50)
+reboot   system boot  system-name      Wed Aug 28 18:00:00 2013   still running
 reboot   system boot  system-name      Wed Aug 28 16:00:00 2013 - Wed Aug 28 17:00:00 2013  (01:00)
 IPv4     root         dns-server       Wed Aug 28 13:00:00 2013 - Wed Aug 28 14:00:00 2013  (01:00)
 nonvalid foo          zero             Wed Aug 28 12:00:00 2013 - down                      (03:00)
@@ -74,7 +74,7 @@ wtmp begins Wed Aug 28 03:00:00 2013
 ~~~ no time ~~~
 rick     long         never-gonna-logo   (24855+03:14)
 torvalds linux        hobby              logged in
-reboot   system boot  system-name         (00:50)
+reboot   system boot  system-name        running
 reboot   system boot  system-name         (01:00)
 IPv4     root         dns-server          (01:00)
 nonvalid foo          zero                (03:00)
@@ -91,7 +91,7 @@ wtmp begins Wed Aug 28 03:00:00 2013
 ~~~ iso-8601 time ~~~
 rick     long         never-gonna-logout 1970-01-01T00:00:00+0000 - 2038-01-19T03:14:07+0000 (24855+03:14)
 torvalds linux        hobby            1991-08-26T00:57:08+0000   still logged in
-reboot   system boot  system-name      2013-08-28T18:00:00+0000 - 2013-08-28T18:50:27+0000  (00:50)
+reboot   system boot  system-name      2013-08-28T18:00:00+0000   still running
 reboot   system boot  system-name      2013-08-28T16:00:00+0000 - 2013-08-28T17:00:00+0000  (01:00)
 IPv4     root         dns-server       2013-08-28T13:00:00+0000 - 2013-08-28T14:00:00+0000  (01:00)
 nonvalid foo          zero             2013-08-28T12:00:00+0000 - down                      (03:00)