免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3142 | 回复: 10
打印 上一主题 下一主题

关于进程数的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-30 21:50 |只看该作者 |倒序浏览
比如我系统中有一个进程snmp
4416 ?        S      0:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a
我用命令
#ps axf | grep snmp | wc -l
2
结果为2
我写一个非常简单的脚本如下
#!/bin/sh
arg=$1
number=`ps axf | grep  "$1" | wc -l`
echo $number
运行
#./jordan.sh snmpd
4

#sh -x ./jordan.sh snmpd
+ arg=snmpd
++ ps axf
++ grep snmpd
++ wc -l
+ number=4
+ echo 4
4

这个number为什么会变成4,搞不懂

论坛徽章:
0
2 [报告]
发表于 2008-10-30 23:18 |只看该作者
#ps axf | grep snmp | wc -l

#sh -x ./jordan.sh snmpd

??snmp??
??snmpd??

楼主可试一下把
ps axf | grep snmp
放入脚本,看看打印结果

[ 本帖最后由 爱知 于 2008-10-30 23:23 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2008-10-30 23:45 |只看该作者
用pgrep吧

论坛徽章:
0
4 [报告]
发表于 2008-10-30 23:54 |只看该作者
pgrep好像是取这个进程的进程号
我这个是取进程中的一个字段
如/usr/bin/java -arg1
/usr/bin/java -arg2
如果ps axf | pgrep java的话
就会出来两个PID
我现在是想把其中的arg1定位出来

论坛徽章:
0
5 [报告]
发表于 2008-10-31 00:30 |只看该作者
原帖由 jordanfang 于 2008-10-30 21:50 发表
比如我系统中有一个进程snmp
4416 ?        S      0:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a
我用命令
#ps axf | grep snmp | wc -l
2
结果为2
我写一个非常简单的脚本如下
#!/b ...


grep 本身会开启一个进程

ps axf | grep snmp | grep -v  grep | wc -l 的结果就为 1 了

论坛徽章:
0
6 [报告]
发表于 2008-10-31 00:49 |只看该作者
是的
加一个grep -v grep
wc -l出来是1
但是你把grep -v grep 放到脚本里面去
结果就是3了
我就是搞不明白,怎么无故会多出2个来
在终端下ps axf | grep snmpd | wc -l为2
把这一句放到脚本中再赋值给一个变量结果就变成了4

论坛徽章:
0
7 [报告]
发表于 2008-10-31 01:07 |只看该作者
原帖由 jordanfang 于 2008-10-31 00:49 发表
是的
加一个grep -v grep
wc -l出来是1
但是你把grep -v grep 放到脚本里面去
结果就是3了
我就是搞不明白,怎么无故会多出2个来
在终端下ps axf | grep snmpd | wc -l为2
把这一句放到脚本中再赋值给一个 ...


在终端下 [不是放到脚本里] 这样试试:

$: number=`ps axf | grep snmpd | wc -l`

$: echo $number

看看 number 是多少?

论坛徽章:
0
8 [报告]
发表于 2008-10-31 01:47 |只看该作者
LZ 的是什么系统? 哪个版本的 Bash ?
我的CentOS 5, GNU Bash-3.1 没有这个问题哦, 一切正常

论坛徽章:
0
9 [报告]
发表于 2008-10-31 09:09 |只看该作者
4个的原因暂时还没找出来,但有3个:
#sh -x zzz.sh snmpd
+ arg=snmpd
+ ps axf
+ grep snmpd
22741 pts/1    S+     0:00          \_ sh -x zzz.sh snmpd
22743 pts/1    S+     0:00              \_ grep snmpd
15030 ?        S      0:04 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
10 [报告]
发表于 2008-10-31 10:35 |只看该作者
n=$(ps axf)
echo "$n"|grep "$1"|wc -l

http://bbs.chinaunix.net/thread-733138-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP