Intereting Posts
Согласно статистике сокетов Apache слушает только на IPv6, но на самом деле также обслуживает IPv4 xinput mouse device: отдельные x и y чувствительности Экранирование тире в вызове `dch` Терминал и Vim добавление SSL-сертификата только для Github (не все сертификаты из пакета ca-сертификатов) Имитировать начальный вход пользователя без использования sudo Список только скрытых файлов (а не только файлов точек) с использованием псевдонима ls Хвост – последний файл журнала mac terminal – как сделать каталог требует SUDO-доступа, чтобы удалить его? Поддерживает ли GRUB2 многострочные текстовые описания? Разделение нескольких определенных файлов из многих в каталог с помощью терминала? Перерасход ресурсов Grsecurity Могут ли команды tr быть закодированы, чтобы избежать нескольких tr процессов в конвейере? Не удалось включить net.ipv6.conf.eth0.autoconf Поддельный Linux как устройство для Android

Как найти 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 ?

Команда 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,