Как мне перечислить все запущенные экземпляры исполняемого файла в Linux?

378
Agnel Kurian

Есть ли способ получить PID всех запущенных экземпляров исполняемого файла в Linux?

0
`pidof ` Ipor Sircer 5 лет назад 0
Ипор Сирсер, вы можете опубликовать это как ответ, чтобы я мог принять? Agnel Kurian 5 лет назад 0

1 ответ на вопрос

3
michael

Есть несколько способов сделать это; вы можете перечислить все процессы и найти те, которые соответствуют имени исполняемого файла, который вас интересует; или вы можете перечислить все запущенные процессы, которые открыли этот конкретный исполняемый файл.

Например:

# list all processes, grep by filename $ ps -ef | grep firefox ...(lots of output, need to cut/filter)...  # more specific, e.g., maybe there's also /opt/bin/firefox $ ps -ef | grep /usr/lib/firefox/firefox .... 

(Примечание: в приведенном выше примере вам нужно добавить, grep -v grepесли это сценарий. Просто добавьте этот пример для базового исследовательского анализа.)

Пример встроенного, который делает то же самое (в основном):

$ pidof firefox 5915 5892 5851 5809 5753 5509  # more specific $ pidof /usr/lib/firefox/firefox 5915 5892 5851 5809 5753 5509 

Это также может непреднамеренно перечислить различные исполняемые файлы с одинаковыми именами, поэтому требуется некоторая осторожность. Но у него действительно хороший, краткий вывод, отличный для написания сценариев.

Наконец, довольно надежный вариант - перечислить открытые файлы ( lsof ) и найти соответствующие процессы, которые их открывают (исполняемый файл «открыт для чтения» во время работы):

# note: sudo not always necessary, but might be $ lsof /usr/lib/firefox/firefox ... 

Похожие вопросы