Я використовую ps
команду як частину вправи для визначення процесів, що працюють довше заданого порогу.
Я використовую наступний шаблон, щоб отримати минулий час для команди відомого процесу:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Я помічаю при короткочасних процесах значення etime (минуло часу) приймає формат, minutes:seconds
і з цього можу легко визначити, як довго процес працює.
Для дуже тривалих процесів (довгих днів) я не розумію формат.
У мене є сервер MySQL, який htop
показує, що працює 126 годин.
Виконання ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
дає мені значення 9-03:35:32
.
Я найкраще здогадуюсь, що це означає 9 щось, 3 години, 35 хвилин, 32 секунди. Я не можу зрозуміти, що таке одиниці для 9.
Цей процес тривав 126 годин, приблизно 5,25 дня. Це говорить про те, що 9 у вищенаведеному виході не представляють днів. Вони не можуть бути і півдня, оскільки (9 * 12) годин + 3 години + 35 хвилин + 32 секунди менше 5 днів.
Як інтерпретувати значення минулого часу, яке я бачу для тривалих процесів? Які одиниці супроводжують 9 у наведеному вище висновку?
etimes
замість etime
і порівняйте результати.
ps
відображає те чи інше, залежно від параметрів, які ви передаєте.