我需要找到使用与特定模式匹配的命令名运行的进程数。我需要定期检查进程数。
我使用命令模式greting top命令的输出,并尝试每次都找到进程数。
以下将(例如)grep与命令模式匹配的所有进程并动态打印出来。
top -bcd 1 | grep worker | grep apache
现在代替列表,我只需要动态打印出来的进程数。 我尝试了以下对我不起作用。
top -bcd 1 | grep worker | grep apache | wc -l
和
top -bcd 1 | grep worker | grep -c apache
如果有完全不同且更好的方法,请告诉我。
答案 0 :(得分:1)
就您问题中的原始问题而言,即检查名称与给定模式匹配的流程数量时,我建议将pgrep
与watch
一起使用:
watch pgrep apache
您应该能够使用标准重定向> out
将其直接输出到日志文件中。如果这不起作用,你总是可以使用自己的循环来做类似的事情:
while true; do
pgrep apache
sleep 2
done > out
答案 1 :(得分:1)
如果你没有pgrep
,总有办法用linux上的POSIX工具产生这个结果。
while true; do
awk '$0~"^"re{a++};END{print a}' re=apache /proc/[0-9]*/cmdline
sleep 2
done