Как найти PID конкретной программы?

Я хотел бы написать сценарий Bash, который ищет PID, соответствующие имени программы (возможно, используя ps ax | grep <PROGRAM> или что-то подобное) и передает их в сценарий ps_mem . ps_mem нуждается в списке PID, разделенных запятыми (без пробелов), чтобы оценить использование ОЗУ, к сожалению, единственный способ поиска процессов по имени программы, о котором я знаю, – ps ax | grep <PROGRAM> ps ax | grep <PROGRAM> который возвращает что-то вроде (на примере текстового редактора Atom) GitHub:

  7365 pts/2 S 0:00 /bin/bash /usr/bin/atom /home/fusion809/GitHub/fusion809.github.io 7367 pts/2 Sl 2:09 /usr/share/atom/atom --executed-from=/home/fusion809/GitHub/fusion809.github.io --pid=7354 /home/fusion809/GitHub/fusion809.github.io 7369 pts/2 S 0:00 /usr/share/atom/atom --type=zygote --no-sandbox 7404 pts/2 Sl 69:11 /usr/share/atom/atom --type=renderer --js-flags=--harmony --no-sandbox --lang=en-GB --node-integration=true --enable-delegated-renderer --num-raster-threads=2 --gpu-rasterization-msaa-sample-count=8 --content-image-texture-target=3553 --video-image-texture-target=3553 --disable-accelerated-video-decode --disable-webrtc-hw-encoding --disable-gpu-compositing --channel=7367.0.1287479693 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd 7469 pts/2 S 0:02 /usr/share/atom/atom --eval require('/usr/share/atom/resources/app.asar/src/compile-cache.js').setCacheDirectory('/home/fusion809/.atom/compile-cache'); require('/usr/share/atom/resources/app.asar/src/task-bootstrap.js'); 10094 pts/2 Sl 0:31 /usr/share/atom/atom --type=renderer --js-flags=--harmony --no-sandbox --lang=en-GB --node-integration=true --enable-delegated-renderer --num-raster-threads=2 --gpu-rasterization-msaa-sample-count=8 --content-image-texture-target=3553 --video-image-texture-target=3553 --disable-accelerated-video-decode --disable-webrtc-hw-encoding --disable-gpu-compositing --channel=7367.1.769162379 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd 11799 pts/2 S 0:01 /usr/share/atom/atom --eval require('/usr/share/atom/resources/app.asar/src/compile-cache.js').setCacheDirectory('/home/fusion809/.atom/compile-cache'); require('/usr/share/atom/resources/app.asar/src/task-bootstrap.js'); 18686 pts/2 Sl 0:02 /usr/share/atom/atom --eval require('/usr/share/atom/resources/app.asar/src/compile-cache.js').setCacheDirectory('/home/fusion809/.atom/compile-cache'); require('/usr/share/atom/resources/app.asar/src/task-bootstrap.js'); 31761 pts/6 S+ 0:00 grep --colour=auto atom 

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

2 Solutions collect form web for “Как найти PID конкретной программы?”

Команда Pidof возвращает PID и вводится именем процесса.

Согласно entiend, вы хотите получить список PID, разделенных запятыми, что соответствует потенциальным PID как имя процесса. Pidof, чтобы получить это, но в списке PID, разделенных пробелами. С помощью команды tr можно усечь символы, соответствующие пробелу, ограниченному указанным выходом pidof другого символа, в этом случае – запятой. Он может сделать это:

 pidof <process_name> | tr '\ ' ',' 

Как насчет pgrep и tr? Не уверен, что последняя запятая является проблемой или нет.

 $ pgrep chrome | tr '\n' , 1960,1981,1982,1984,1987,2008,2047,2079,2103,2107,2117,2123,2219,4132,4559, 
  • Новые строки в именах файлов
  • Автоматическое ведение журнала скриптов, выполняемых пользователями
  • awk проверить и распечатать, когда это правда
  • Использование rsync в cronjob при необходимости пароля
  • Не могу понять этот скрипт. bash << (curl -s http://xxx.com)
  • Выполнять команду на нескольких секундах параллельно с помощью сценария оболочки
  • Как правильно избежать этой длинной команды su + sed?
  • -r имя_файла &&. имя файла
  • Cronjob запускает скрипт, который вызывает другой скрипт
  • Чтобы grep за слово перед сопоставлением шаблона
  • Печать переменной в одиночной кавычки в bash | Странные переменные
  • Linux и Unix - лучшая ОС в мире.