Как мне найти процесс по имени без использования grep?

Для поиска процесса вы можете использовать ps с grep.

Например, для поиска Firefox

ps aux | grep firefox

Как получить тот же ответ без использования grep?

62
задан 22 April 2015 в 08:57

7 ответов

ps -fC process-name

пример:

ps -fC firefox

от man ps

  -C cmdlist      Select by command name.
                       This selects the processes whose executable name is
                       given in cmdlist.


 -f              Do full-format listing. This option can be combined
                       with many other UNIX-style options to add additional
                       columns. It also causes the command arguments to be
                       printed. When used with -L, the NLWP (number of
                       threads) and LWP (thread ID) columns will be added. See
                       the c option, the format keyword args, and the format
                       keyword comm.
23
ответ дан 22 April 2015 в 18:57

pgrep команда и ее одноуровневый элемент pkill, существует точно с этой целью:

  • pgrep firefox перечислит все процессы, команды которых соответствуют firefox
  • pgrep -f firefox перечислит все процессы, все командные строки которых соответствуют firefox
  • pgrep -x firefox перечислит все процессы, команды которых точно соответствуют firefox
  • ... и так далее.

И естественно, pgrep исключит себя из соответствия, таким образом, ни один из grep ритуалы, связанные с ps | grep необходимы.


Другой набор инструментов для этого pidof и killall команды. Они не так гибки как pgrep и pkill.

  • pidof firefox перечислит процессы, команда которых firefox
71
ответ дан 22 April 2015 в 18:57

top позволяет Вам искать строку, когда Вы поражаете верхний регистр L; процесс будет выделен, и ключи стрелки вверх и вниз использования для просмотра списка процессов. Точно так же htop команда позволяет выделять конкретный процесс, когда Вы совершаете нападки /. И \ отфильтрует все процессы с конкретной строкой на имя.

Для тех, кому нравится awk, вот awk острота: ps -eF | awk '/process-name/ {print $11}'. С ps -eF имя процесса всегда находится в 11-м столбце. Кроме того, если Вы делаете ps -eF | awk '{print $11}' | sort, Вы получаете отсортированный список имен процессов, отсортированных в алфавитном порядке. Передайте его по каналу в less команда только для просмотра длинного списка легче файлов.

2
ответ дан 22 April 2015 в 18:57

Можно также использовать htop и затем поразить F4 для фильтрации результатов с соответствующей пользовательской строкой. Вы также имеете пользовательскую функцию поиска в наличии путем удара F3.

1
ответ дан 22 April 2015 в 18:57

Если два процесса являются проблемой, можно использовать только grep:

grep firefox /proc/*/cmdline
1
ответ дан 22 April 2015 в 18:57

Прохладный прием

$ps -ejH

Вы получите все процессы с именами

exmple:
1747   568   568 ?        00:00:00   colord
1833  1832  1832 ?        00:00:00   gnome-keyring-d
2263   568   568 ?        00:00:00   udisksd
2311  2311  2311 ?        00:00:00   cupsd
2315  2315  2311 ?        00:00:00     dbus

Перенаправление или так скопируйте вывод в файл и затем откройте nano, нажмите Ctrl + W , и можно искать имя, которое Вы хотите.

2
ответ дан 22 April 2015 в 18:57

Я просто считал этот псевдоним PS на Блоге Lennart Poettering. Вывод согласно systemd порождению контрольной группы:

alias psc='ps xawf -eo pid,user,cgroup,args'
0
ответ дан 3 August 2019 в 07:58

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

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