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


21

Я использую Ubuntu Server 10.10 и хочу посмотреть, какие процессы запущены. Я знаю, что PostgreSQL работает на моем компьютере, но я не вижу его с помощью команд topили ps, поэтому я предполагаю, что они не отображают все запущенные процессы. Есть ли другая команда, которая покажет все запущенные процессы или есть какие-либо другие параметры, которые я могу использовать topили psдля этого?

Ответы:


26

Со psстраницы руководства :

-e выбрать все процессы. Идентичен -A.

Таким образом, ps -eбудут отображаться все процессы. Распространенными вариантами «дай мне все» являются ps -elyили ps aux, последний стиль BSD. Часто люди направляют этот вывод для grepпоиска процесса, как в ответе ксенотеррацида. Чтобы также не видеть grepсебя в выводе, вы часто будете видеть что-то вроде:

 ps -ef | grep [f]oo

где foo - имя процесса, которое вы ищете.

Однако, если вы ищете конкретный процесс, я рекомендую использовать pgrepкоманду, если она доступна. Я считаю, что это доступно на сервере Ubuntu. Использование pgrepозначает, что вы избегаете упомянутых выше условий гонки. Он также предоставляет некоторые другие функции, которые требуют все более сложной grepхитрости для репликации. Синтаксис прост:

pgrep foo

где foo - это процесс, который вы ищете. По умолчанию он просто выведет идентификатор процесса (PID) процесса, если он его найдет. Смотрите man pgrepдругие варианты вывода. Я нашел следующую страницу очень полезной:

http://mywiki.wooledge.org/ProcessManagement


Интересно, какой процент людей используют, psне зная флагов. Я просто бросаю auxна это всегда; Я понятия не имею, что на самом деле контролируют отдельные флаги
Майкл Мрозек

3

ты пробовал ps aux | grep postgres? это действительно должно появиться, если Postgres работает. Если это не так ... как вы знаете, работает postgres?

(примечание: это распространенное заблуждение, но оно ps -auxневерно)


Спасибо, ps auxсработало лучше, показало около 70 процессов, а psпоказало только два. Я знаю, что PostgreSQL работал, так как я увидел, что он был запущен при загрузке и был остановлен при завершении работы.
Джонас

@Jonas Некоторые сценарии инициализации написаны плохо. Не верьте им только потому, что они говорят, что что-то было начато и остановлено. Просто несколько советов
ксенотеррацид

Это также pgrepполезно для того, чтобы никогда не фиксировать свою ps aux | grep postgresкоманду в списке процессов и не выводить ее
Майкл Мрозек
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.