3

В Linux я использую ps -C command_name для выбора процессов с указанным именем команды. Но это не работает в Mac OS X. Я внимательно прочитал справочную страницу ps, но просто не могу найти никакой возможности сделать это.

Так кто-нибудь знает, есть ли способ выбрать указанные процессы по имени команды при использовании PS в Mac OS X?

4 ответа4

2

В общем случае кажется, что вы действительно не можете сделать это, не используя grep в качестве помощника или передавая / обстреливая вторую вторую команду linux, чтобы выручить. Если вы пытаетесь сделать это, запустив процесс с какого-то другого языка, например Java, вам, возможно, придется избегать использования каких-либо оболочек и, следовательно, делать это одной командой. Поэтому рассмотрите pgrep как альтернативу. например Чтобы перечислить все процессы Java:

pgrep java
1

Простой способ отфильтровать вывод ps - использовать инструмент, который обычно фильтрует ввод, grep .

Для этого мы просто перенаправляем вывод ps в grep, вот так:

oliver@cloud:~$ ps | grep bash
31131 pts/0    00:00:00 bash

Если вы перечисляете все процессы, вы быстро столкнетесь с проблемой:

oliver@cloud:~$ ps a | grep bash
 2729 pts/0    S+     0:00 grep bash
31131 pts/0    Ss     0:00 -bash

Теперь он возвращает и сам grep ! Как мы это исправим?

Просто с помощью grep еще раз, чтобы отфильтровать лишний результат:

oliver@cloud:~$ ps a | grep bash | grep -v grep
31131 pts/0    Ss     0:00 -bash
1

<- OSX -> Чтобы получить PID запущенного двоичного файла с именем Humans, сопоставив двоичное имя, известное как COMMAND.

helios:~ TimberWolf $ killall -s Люди

-> Просто номер

helios:~ TimberWolf $ killall -s Люди | tr -d [:alpha:] [:space:] -

-> Используйте PID с командой ps для уточнения деталей, таких как приоритет двоичного файла.

helios:~ TimberWolf $ ps killall -s Humans | tr -d [:alpha:][:space:]-

0

Я столкнулся с той же проблемой. Вот решение, не полностью удовлетворяющее:

ps -p `pidof <command_name> | tr ' ' ','`

Это не работает все время (например, когда имя команды фактически является вызовом интерпретатора), и это довольно уродливо. Я надеюсь, что это может дать идеи и дать лучшие решения!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .