129

I was analyzing some web heads looking at htop and noticed the following

Uptime: 301 days(!), 23:47:39

What does the (!) mean?

4
  • @JoelDavis so the (!) doesn't mean anything else then the server has been up for 301 days? Commented Aug 13, 2014 at 20:33
  • 9
    They show the exact code in the link but yeah it's basically just saying "OMG!"
    – Bratchley
    Commented Aug 13, 2014 at 20:37
  • 4
    The exact point of demarcation is 100 days, though.
    – Bratchley
    Commented Aug 13, 2014 at 20:37
  • 1
    @JoelDavis - why not write that up as the A so we can get this closed out?
    – slm
    Commented Aug 13, 2014 at 23:42

3 Answers 3

205

htop author here. Yes, as others already mentioned, it indeed shows up after 100 days of uptime.

The reason is nothing fancy, it's just an Easter egg in the software. Consider that the program is impressed with your uptime, and take it as you will. :)

6
  • 21
    It's always nice to see a definitive answer like this. Commented Dec 16, 2018 at 6:15
  • 1
    impressed with your uptime seems like wrong wording to me. Many standard Linux-distributions don't have live kernel patching and stuff enabled, but publish security fixes almost daily. I use this more than a warning, especially when the distribution already notifies in SSH-logins that a system restart is required. Commented Nov 20, 2019 at 10:51
  • 5
    So it's a cryptic part of the UI, that serves no more modern purpose other than to send users to StackExchange asking about it.
    – jorisw
    Commented Jun 6, 2022 at 13:21
  • 1
    I currently have 908 days. Can we have two exclamation marks at 1000? ;-)
    – Christoph
    Commented Feb 6 at 18:15
  • 1
    Most people worry with the (!). Can we have any of these instead? 🦾πŸ”₯πŸ’―πŸ§“πŸƒ
    – Majal
    Commented Feb 27 at 6:50
148

From htop source code, file UptimeMeter.c, you can see:

char daysbuf[15];
if (days > 100) {
   sprintf(daysbuf, "%d days(!), ", days);
} else if (days > 1) {
   sprintf(daysbuf, "%d days, ", days);
} else if (days == 1) {
   sprintf(daysbuf, "1 day, ");
} else {
   daysbuf[0] = '\0';
}

I think ! here is just a mark that server has been up for more than 100 days.

Reference

3
  • So there's a buffer overflow after 9999 days of uptime? (buffer seems to be char[32] now)
    – nspo
    Commented Jul 18, 2019 at 20:56
  • I challenge you to keep a server running for 27 years without ever shutting it down once :)
    – Davide
    Commented Jul 2, 2023 at 10:10
  • challenge NOT accepter :))
    – DEKKER
    Commented Jul 24, 2023 at 13:40
37

htop shows the exclamation mark when the server has been up since 100 or more days.

While once system administrators had pride in showing long uptimes, nowadays the system has to be rebooted to be kept up to date with new kernels and some security fixes. For such reason, a long uptime is probably not a good thing and I tend to interpret the exclamation mark as a warning sign.

4
  • 9
    While your answer is succinct (and apparently correct), adding some links to relevant documentation or supporting sources would be a positive.
    – HalosGhost
    Commented Oct 14, 2014 at 17:49
  • 7
    In some cases you can keep up to date without reboots. However issue is that after many changes you cannot be sure that system will boot up in case of unplanned reboot. So it's not a bad idea to do planned reboots for testing. Commented Jan 15, 2015 at 9:02
  • so the live patch in linux kernel 4 is not necessary? since the system has to be booted regularly for bug checking? Commented Jun 17, 2015 at 4:17
  • I use kernel care to make my kernel rebootless. Commented Feb 10, 2016 at 18:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .