Що означає (!) Після оновлення на htop


83

Я аналізував деякі веб-голови, дивлячись на це, htopі помічав наступне

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

Що (!)означає?


@JoelDavis, значить, (!) Не означає нічого іншого, тоді сервер працював 301 день?
brentwpeterson

8
Вони показують точний код у посиланні, але так, це, в основному, просто "OMG!"
Братчлі

2
Точна точка розмежування - хоча 100 днів.
Братчлі

1
@JoelDavis - чому б не написати це як A, щоб ми могли це закрити?
slm

Відповіді:


118

З вихідного коду 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 днів.

Довідково


Отже, переповнення буфера відбувається після 9999 днів роботи? (буфер здається, що це char [32] зараз)
Kopfgeldjaeger

107

htop автор тут. Так, як уже згадували інші, це дійсно виявляється після 100 днів безперервного часу.

Причина - нічого фантазійного, це просто писанка в програмному забезпеченні. Подумайте, що програма вражена вашим тривалістю роботи, і прийміть її як слід. :)


3
Завжди приємно бачити остаточну відповідь, як це.
iamnotmaynard

34

htop показує знак оклику, коли сервер працював з 100 і більше днів.

Хоча колись системні адміністратори з гордістю демонстрували тривалий час роботи, тепер система перезавантажена, щоб бути в курсі нових ядер та деяких виправлень безпеки. З цієї причини тривалий час роботи, ймовірно, не є гарною справою, і я схильний тлумачити знак оклику як попереджувальний знак.


8
Хоча ваша відповідь є короткою (і, мабуть, правильною), додавання деяких посилань на відповідну документацію чи допоміжні джерела було б позитивним.
HalosGhost

7
У деяких випадках ви можете бути в курсі даних без перезавантажень. Однак проблема полягає в тому, що після багатьох змін ви не можете бути впевнені, що система завантажиться у разі незапланованої перезавантаження. Тож не погана ідея робити планові перезавантаження для тестування.
Тадас Саснаускас

тож живий патч у Linux Linux kernel 4 не потрібен? оскільки система повинна регулярно завантажуватися для перевірки помилок?
Ченмін Чжан

Я використовую догляд за ядром, щоб зробити своє ядро ​​перезавантаженим.
allquixotic
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.