Ubuntu gnome 终端中的 PID

Ubuntu gnome 终端中的 PID

通过使用ps aux | grep -i “name of your desired program”出现的 PID 列表,但我发现的 PID 比系统监视器中的多。

这怎么可能?

-color =auto我在系统监视器中没有找到 PID 。

答案1

当您运行 时ps ... | grep ...psgrep会同时启动, 的输出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

为什么?因为 Ubuntu默认grep --color...定义了一个别名:grep

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

这也是为什么你会看到如下愚蠢的技巧:

ps ... | grep foo | grep -v grep
ps ... | grep '[f]oo'

相关内容