Как увидеть процесс, созданный конкретным пользователем в 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>
Stormvirux
источник
2
Все `... | grep <username> `решения не работают, если у вас есть два имени пользователя длиннее, чем N символов. В моем случае N - 6.
Геттли
1
Примечание: я получил ошибку top -U [username], и top -u [username]вместо этого работал на меня. Debian 9. Так что если кто-то еще получит ошибку с формой -U, попробуйте строчные буквы.
Gloweye
2

Попробуй это

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