Linux命令找出运行过程的“计数”?

时间:2012-07-06 10:47:29

标签: linux

例如,

我必须找到3个进程才能找到当前目录

中运行进程的“计数”

命名为../ sample

[root @sp3 sample] #ps -eaf | grep perl

root 14104 1 58 08:39? 03:31:34 perl example1.pl

root 17441 1 41 09:09? 02:17:24 perl example2.pl

root 24543 1 0月05日? 00:00:00 perl sample.pl

[root @sp3 sample]#

我必须返回的结果是3

I have currently in sample directory and i have to count the number of process in same directory

请发布任何解决方案。

5 个答案:

答案 0 :(得分:5)

尝试

LOCAL_PWD = pwd
ps -auxeaf| grep $LOCAL_PWD| wc -l

wc -l计算行数

关于如何显示流程的完整路径,请查看here

答案 1 :(得分:2)

这真的不适合这个(有一个linuxexchange的linux部分)。但您可以使用wc来计算任何输出中的行,因此将命令管道传递给它:ps -eaf | grep perl | wc -l。顺便说一下,我还建议grep命令与grep [p]erl不匹配(将[]放在任何一个字符周围仍然只匹配'perl',但grep命令不再其中有“perl”。)

如果它对您有用,我会将我在下面的评论中提到的脚本放在一起。

total=0
for file in $(find -executable -type f) ; do
    echo "Checking $file:"
    count=$(ps -ef | awk '{print $8}' | grep "^.*/*${file##*/}$" | wc -l)
    echo "$count processes found."
    total=$(($total + $count))
done
echo $total

答案 2 :(得分:0)

简单: ps -eaf | grep perl | grep -v grep | wc -l <​​/ p>

答案 3 :(得分:0)

我知道这个话题很老,但是这个问题没有解决办法。


解决方案1 ​​

ps ax |egrep "^/your/path/to/Script" |wc -l

  • ps ax =进程列表
  • egrep =从列表中获取所有进程 从指定的路径开始。您需要启动Perl脚本 使用Path / Script.pl,而不是./script。 ^ =多行-您也可以使用普通的 grep“ / your / path / to / script”

  • wc -l =计算所有结果

  • 输出= 3

解决方案2

使用特定标识符和grep为脚本命名,例如:

script_example_ ident .pl

ps ax |grep "ident" |wc -l

答案 4 :(得分:-1)

如果通过跑步你的意思是“排队等待执行”:

ps ax -o stat,args |grep '^R'|wc -l