按名称列出进程,不包括 grep

按名称列出进程,不包括 grep

我试图列出ffmpegDebian 机器(Ubuntu 15)上当前运行的所有进程。

我使用以下命令:

ps aux | grep 'ffmpeg'

如果只有一个ffmpeg进程正在运行,我仍然会得到两个结果。一种用于实际进程,另一种用于在进程列表中grep查找。ffmpeg

max      21599 13.2  3.0 503848 92288 ?        Rl   01:39   1:18 ffmpeg -f video4linux2 -i /dev/video0 -f mpeg1video -b:v 800k -r 30 http://127.0.0.1:8082/oops/1024/640/ -nostdin -nostats -loglevel fatal
max      23789  0.0  0.0  13688  2172 pts/3    S+   01:49   0:00 grep --color=auto ffmpeg

如何修改我的请求,以便从输出中省略实际上是我的请求的 grep 结果?

答案1

你可以使用一个技巧:

ps aux | grep '[f]fmpeg'

[]是一种用于指示要匹配的字符范围的格式grep,我们[f]仅用于匹配f。由于已经[f]转换为f,因此文字ps aux | grep 'ffmpeg'不会显示在ps输出中。

ps aux | grep 'ffmpeg'另请注意,输出中的外观ps aux | grep 'ffmpeg'主要取决于显示进程表所需的时间。

请注意,有一个名为pgrep搜索进程的程序,如果ps aux不是绝对需要,您可以使用它。

相关内容