Linux / Bash, используя ps-o, чтобы получить процесс по определенному имени?
Я пытаюсь использовать команду ps-o, чтобы получить только конкретную информацию о процессах, соответствующих определенному имени. Тем не менее, у меня возникли некоторые проблемы с этим, когда я пытаюсь использовать это даже для того, чтобы просто получить все процессы, например, он просто возвращает подмножество того, что нормально ps -ef вернется (он не возвращает почти такое же количество результатов, поэтому он не возвращает все запущенные процессы)
ps -ef -o pid,time,comm
Я хочу попробовать что-то вроде этого (ниже), но включить ps-o, чтобы просто получить конкретные информация от него (только PID)
ps -ef |grep `whoami`| grep firefox-bin
любые советы ценятся о том, как сделать это правильно, Спасибо
5 ответов:
это даст вам PID процесса по имени:
pidof nameкоторый вы можете затем подключить обратно к ps Для более подробной информации:
ps -p $(pidof name)
Это немного старый, но я думаю, что вы хотите: ps-o pid-C PROCESS_NAME, например:
ps -o pid -C bashEDIT: в зависимости от типа вывода, который вы ожидаете,
pgrepбыло бы более элегантно. Это, насколько мне известно, специфично для Linux и приводит к аналогичному результату, как указано выше. Например:pgrep bash
ps -fC PROCESSNAMEps и grep-опасная комбинация -- grep пытается сопоставить все на каждой строке (таким образом, все слишком часто: grep-v grep hack). ps-C не использует grep, он использует таблицу процессов для точного соответствия. Таким образом, вы получите точный список с: ps-fC sh вместо того, чтобы найти каждый процесс с sh где-то на линии.
иногда вам нужно grep процесс по имени - в этом случае:
ps aux | grep simple-scanпример:
simple-scan 1090 0.0 0.1 4248 1432 ? S Jun11 0:00
извините, очень поздно на вечеринку, но я добавлю здесь, что если вы хотите захватить процессы с именами, идентичными вашей строке поиска, вы можете сделать
pgrep -x PROCESS_NAME-x Require an exact match of the process name, or argument list if -f is given. The default is to match any substring.это чрезвычайно полезно, если ваш исходный процесс создал дочерние процессы (возможно, зомби при запросе), которые префикс имени исходного процесса в своем собственном имени, и вы пытаетесь исключить их из своих результатов. Есть много демонов UNIX, которые делают это. Мой пример ninja-dev-sync.
Comments