Как увидеть процесс, созданный конкретным пользователем в Unix / Linux


115

Я хочу увидеть список процессов, созданных конкретным пользователем или группой пользователей в Linux. Могу ли я сделать это с помощью psкоманды или есть какая-либо другая команда для достижения этой цели?


6
ps -u username, Большинство команд имеют справочную страницу, с которой вы можете читать man the-command.
Стефан Шазелас

Ответы:


160

Чтобы просмотреть только процессы, принадлежащие конкретному пользователю, используйте следующую команду:

top -U [username]

Замените [имя пользователя] на требуемое имя пользователя

Если вы хотите использовать PS, то

ps -u [username]

ИЛИ ЖЕ

 ps -ef | grep <username>

ИЛИ ЖЕ

ps -efl | grep <username>

для расширенного списка

Проверьте страницу man ps для вариантов

Другой альтернативой является использование pstree, который печатает дерево процессов пользователя

pstree <username or pid>

2
Все `... | grep <username> `решения не работают, если у вас есть два имени пользователя длиннее, чем N символов. В моем случае N - 6.
Геттли

1
Примечание: я получил ошибку top -U [username], и top -u [username]вместо этого работал на меня. Debian 9. Так что если кто-то еще получит ошибку с формой -U, попробуйте строчные буквы.
Gloweye

2

Попробуй это

ps -fp $(pgrep -u <username>)

Как это лучше, чем ps -u <username>, как указано в существующем ответе (или ps -fu <username>если вы хотите детали процесса)?
Стивен Китт

ps -u не предоставляет полную информацию о процессе, но ps -fu <username> делает. Согласитесь, ps -fu - лучшее решение
user939407
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.