Ответ 1
Это даст вам PID процесса по имени:
pidof name
Что вы можете затем подключить к ps для более подробной информации:
ps -p $(pidof name)
Я пытаюсь использовать команду ps -o, чтобы получить только определенную информацию о процессах, соответствующих определенному имени. Тем не менее, у меня возникают некоторые проблемы, когда я пытаюсь использовать это даже для того, чтобы просто получить все процессы, например, он просто возвращает подмножество того, что вернет нормальный ps -ef
(он не возвращает почти то же число результатов, чтобы он не возвращал все запущенные процессы)
ps -ef -o pid,time,comm
Я хочу попробовать что-то вроде этого (ниже), но включить ps -o, чтобы получить от него определенную информацию (только PID)
ps -ef |grep `whoami`| grep firefox-bin
Любые советы приветствуются, как это сделать должным образом, спасибо
Это даст вам PID процесса по имени:
pidof name
Что вы можете затем подключить к ps для более подробной информации:
ps -p $(pidof name)
Это немного устарело, но я думаю, что вы хотите: ps -o pid -C PROCESS_NAME, например:
ps -o pid -C bash
EDIT: В зависимости от вида ожидаемого результата pgrep
будет более элегантным. Это, насколько мне известно, является специфичным для Linux и приводит к аналогичной производительности, как указано выше. Например:
pgrep bash
ps -fC PROCESSNAME
ps и 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