Что означает (!) После uptime на htop

84

Я анализировал некоторые веб-головы, глядя на htopи заметил следующее

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

Что (!)значит?

brentwpeterson
источник
@JoelDavis, значит (!) Ничего не значит, кроме того, что сервер работал 301 день?
brentwpeterson
8
Они показывают точный код в ссылке, но да, это в основном просто говорит "OMG!"
Братчли
2
Точная точка демаркации составляет 100 дней.
Братчли
1
@JoelDavis - почему бы не написать это как A, чтобы мы могли это закрыть?
SLM

Ответы:

119

Из исходного кода htop , файла UptimeMeter.c , вы можете увидеть:

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';
}

Я думаю, что !это просто знак того, что сервер работает более 100 дней.

Ссылка

cuonglm
источник
То есть переполнение буфера происходит после 9999 дней безотказной работы? (буфер, похоже, теперь char [32])
Kopfgeldjaeger
108

Автор htop здесь. Да, как уже упоминалось, это действительно проявляется после 100 дней безотказной работы.

Причина в том, что ничего необычного, это просто пасхальное яйцо в программном обеспечении. Учтите, что программа впечатлена вашим временем безотказной работы, и примите это как хотите. :)

Хишам Х.М.
источник
3
Всегда приятно видеть окончательный ответ, как этот.
iamnotmaynard
34

htop показывает восклицательный знак, когда сервер был включен в течение 100 или более дней.

В то время как когда-то системные администраторы гордились тем, что демонстрируют длительное время простоя, в настоящее время систему необходимо перезагрузить, чтобы поддерживать ее в актуальном состоянии, добавляя новые ядра и некоторые исправления безопасности. По этой причине длительное время работы, вероятно, не очень хорошая вещь, и я склонен интерпретировать восклицательный знак как предупреждающий знак.

Раффаэле д'Элия
источник
8
Хотя ваш ответ является кратким (и, по-видимому, правильным), добавление некоторых ссылок на соответствующую документацию или вспомогательные источники будет позитивным.
HalosGhost
7
В некоторых случаях вы можете оставаться в курсе без перезагрузок. Однако проблема в том, что после многих изменений вы не можете быть уверены, что система загрузится в случае незапланированной перезагрузки. Так что неплохо делать плановые перезагрузки для тестирования.
Тадас Саснаускас
так что живой патч в linux kernel 4 не нужен? система должна регулярно загружаться для проверки ошибок?
Ченминг Чжан
Я использую заботу о ядре, чтобы сделать мое ядро ​​без перезагрузки.
allquixotic