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


66

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

В линуксе?

На SysV5?

На маке?

Ответы:


87

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

ps -ef --sort=start_time

Это работает именно так, как просили, спасибо. После дальнейших раскопок я не уверен, что это возможно в Mac OS без небольшого количества awk
— Дин Смит

1
start_time сработало. Это не так. РЕЛ
— Фелипе Альварес

1
как поменять порядок?
— Фу Нгуен

2
@PhuNguyen немного опоздал на вечеринку, но, может быть, кто-то еще использует это. Вы можете изменить порядок, пропустив вывод tac.
— Пол

1
@Stephane попробуйте это:watch "ps -ef --sort=start_time | grep -v kworker | tail"
— Sekenre

11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

2
Боюсь, что ни один из этих видов по времени начала. Отображает время начала, но не сортирует.
— Дин Смит

2
Разница между lstart и start_time меня также поразила - lstartдает полную метку времени, но не может использоваться в качестве ключа сортировки. start_timeдает обычное время в течение последних 24 часов, дата в противном случае столбец, и может использоваться в качестве ключа сортировки. Оба дают «STARTED» в заголовке.
— LHMathies

время в течение последнего часа: если процесс был запущен вчера во время позже, чем сегодня, он появится после сегодняшнего процесса ... не может быть использован для сортировки, если только немного «awk» не изменит это
— Olivier Dulac

@OlivierDulac: не для меня. 15/12 15:40появляется раньше 16/12 15:39, как и 13:39раньше 15:38.
— Готье

1
Istart не работал для меня. start_time сделал.
— Фелипе Альварес

5

Наряду с отличными ответами, приведенными выше, иногда мне просто хочется увидеть 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
— kellogs

3

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


2

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

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

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


это только показывает pids
— Элиг

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.