
Команда 'ps' выдает текущий статус процессов. Есть ли способ узнать статус определенного процесса в прошлом: скажем, я хотел бы узнать статус определенного процесса за 48 часов до настоящего момента?
У меня произошел сбой в работе устройства, и я хотел бы узнать состояние различных процессов в точное время, когда произошел сбой.
решение1
Нет, команды такие ps
и top
показывают только текущий статус процессов. Нет способа узнать, какой статус процесса был в прошлом, если вы уже не настроили систему мониторинга.
На будущее можно настроить atop
ведение журнала статуса процесса. Из его man-страницы:
Для хранения статистики на уровне системы и процесса для долгосрочного анализа (например, для проверки загрузки системы и активных процессов, запущенных вчера между 15:00 и 16:00), atop может хранить статистику на уровне системы и процесса в сжатом двоичном формате в необработанном файле с флагом -w, за которым следует имя файла. Если этот файл уже существует и распознается как файл необработанных данных, atop добавит новые образцы в файл (начиная с образца, который отражает активность с момента загрузки); если файл не существует, он будет создан.
По умолчанию в файле raw сохраняются только процессы, которые были активны в течение интервала. Если указан флаг -a, будут сохранены все процессы. Интервал (по умолчанию: 10 секунд) и количество выборок (по умолчанию: бесконечно) могут быть переданы в качестве последних аргументов. Вместо количества выборок можно использовать флаг -S, чтобы указать, что atop должен завершиться в любом случае до полуночи.
Очевидно, и как уже было сказано, atop
запись начнется только с момента настройки.