Команда для фильтрации процессов по имени?

Какова команда, которая позволяет фильтрацию процессов через фильтр метасимвола регулярного выражения?

Например, если я хотел отфильтровать все процессы, начинающиеся с буквы A или a, как я реализовал бы [Aa]$ в полной команде?

1
задан 4 October 2016 в 09:22

2 ответа

Команда pgrep.

Для нахождения всех процессов, который запускается с A или a, только PID:

pgrep '^[Aa]'

Можно использовать любого ДО (Расширенное регулярное выражение) шаблон.

Для получения имени процесса к использовать -l:

pgrep -l '^[Aa]'

Для получения полной командной строки использовать -a:

pgrep -a '^[Aa]'

Можно также соответствовать шаблону против полной командной строки с помощью -f опция.

Проверить man pgrep.


Только для замечания шаблон Regex является неправильным, маркер Regex $ соответствуйте концу строки, не запускаются, ^ матчи начинаются. Так Ваш шаблон, [Aa]$ соответствовал бы любому имени процесса (или полная командная строка, если -f используется) с A или a в конце.


Также рефрен от использования:

ps -ef | grep ...

это неуклюже, и включает ненужное порождение дополнительного процесса и неименованный канал где pgrep может сделать это легко, и сразу также. Кроме того, pgrep (и это - брат pkill) было специально предназначено с этой целью.

4
ответ дан 7 December 2019 в 12:37
ps ax| grep name_of_processes 

, Например:

$ ps ax |grep python

1393 pts/2    S+     0:00 grep --color=auto python
1713 ?        S      0:00 /usr/bin/python3 /usr/bin/mintupdate-launcher
1727 ?        Sl     0:01 /usr/bin/python3        /usr/lib/linuxmint/mintUpdate/mintUpdate.py

Самый Быстрый способ, которым я используюсь, чтобы сделать и Вы видите количество процессов, чтобы уничтожить, если Вы хотите.

В Ваших случаях, для устранения процесса grep можно использовать скобки в качестве части шаблона:

ps -ef | grep '[t]ty'
-1
ответ дан 7 December 2019 в 12:37

Другие вопросы по тегам:

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