Есть ли способ отсортировать вывод ps по времени запуска процесса, чтобы новейшие находились либо сверху, либо снизу?
В линуксе?
На SysV5?
На маке?
Это должно работать на Linux и SysV5
ps -ef --sort=start_time
Linux:
$ ps aux --sort=lstart
OSX:
$ ps aux -O started
lstart
дает полную метку времени, но не может использоваться в качестве ключа сортировки. start_time
дает обычное время в течение последних 24 часов, дата в противном случае столбец, и может использоваться в качестве ключа сортировки. Оба дают «STARTED» в заголовке.
15/12 15:40
появляется раньше 16/12 15:39
, как и 13:39
раньше 15:38
.
Наряду с отличными ответами, приведенными выше, иногда мне просто хочется увидеть 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
--sort
у ps
меня не работает. Опираясь на оболочку sort
. +1
Я пока не могу комментировать, но чтобы ответить на вопрос о том, как изменить порядок сортировки по времени, просто поставьте знак минус ( -
) перед полем.
Пример:ps -elf --sort=-start_time
Или попробуйте 'ls', так как он позволяет форматов времени легко сортировать и использовать проще.
( cd /proc; ls -td --full-time --time-style=+%s [0123456789]*; )
Выводит дату / время в эпоху, новейшие процы вверху.
tac
.watch "ps -ef --sort=start_time | grep -v kworker | tail"