PID в терминале гнома Ubuntu

При помощи ps aux | grep -i “name of your desired program” список PID появился, но я нашел больше PIDs, чем в Системном мониторе.

Как это возможно?

Я не нашел PIDs с -color =auto в системном мониторе.

0
задан 1 February 2017 в 08:00

1 ответ

Когда Вы работаете ps ... | grep ..., оба ps и grep запускаются вместе, и вывод ps питается к grep асинхронно. Так, к этому времени ps сканирует список процессов и печатает вывод, grep процесс также активен, и вывод ps включает это grep процесс также.

Теперь, если Вы делаете простое grep foo, вывод ps будет содержать grep foo, и grep будет соответствовать этому foo:

$ ps aux | grep non-existent
muru  19042  0.0  0.0  10760  2224 pts/8    S+   23:56   0:00 grep non-existent

Очевидно, нет никакого названного процесса non-existent.

Вместо ps | grep, использовать pgrep для более чистого соответствия:

pgrep foo

Или ps самостоятельно, если Вы знаете название команды:

ps -C foo

Почему grep --color...? Поскольку Ubuntu определяет псевдоним для grep по умолчанию:

$ alias grep
alias grep='grep --color=auto'

Это также, почему Вы видите глупые приемы как:

ps ... | grep foo | grep -v grep
ps ... | grep '[f]oo'
6
ответ дан 7 November 2019 в 01:44

Другие вопросы по тегам:

Похожие вопросы: