Назад | Перейти на главную страницу

Как отсортировать вывод ps по времени начала процесса?

Есть ли способ отсортировать вывод ps по времени запуска процесса, чтобы самые новые были вверху или внизу?

В Linux?

На SysV5?

На Mac?

Это должно работать в Linux и SysV5

ps -ef --sort=start_time

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

Наряду с замечательными ответами выше, иногда я просто хочу увидеть 20 основных нарушителей по процессам, отсортированным по убыванию по времени, проценту процессора и использованию памяти.

Для этого я использую:

ps auxww --sort=lstart | sort -r -k3,4 | head -20

Это будет на платформе CentOS, хотя я получил те же результаты и на Fedora.

Да, и для ухмылки, я иногда хочу удалить набор процессов, поэтому я просто использую вариант из приведенного выше, который включает немного действия grep -v, например:

ps auxww --sort=lstart | sort -r -k3,4 | grep -v "sbin/httpd" | head -20

Пока не могу комментировать, но чтобы ответить на вопрос о том, как изменить порядок сортировки времени, просто поставьте знак минус (-) перед полем.
Пример: ps -elf --sort=-start_time

Или попробуйте «ls», так как он позволяет легко сортировать и использовать форматы времени.

( cd /proc; ls -td --full-time --time-style=+%s [0123456789]*; )

Выводит дату / время в эпоху, новейшие процессы вверху.

Попробуйте простую команду:

ps | sort -k7 -n

-k7 для столбца времени и -n для числовых.

пример

Я знаю, что это устаревший синтаксис, но я считаю его практичным для краткости:

ps OT <other_options>

Например:

ps OT ax