Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255945
  • 博文数量: 22
  • 博客积分: 707
  • 博客等级: 上士
  • 技术积分: 458
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-28 20:45
文章分类

全部博文(22)

文章存档

2011年(12)

2010年(7)

2008年(3)

我的朋友

分类: LINUX

2011-11-25 16:41:39

shell获取进程ID的方法:

我知道和实践过的有这么三种:

  1.  ps -A |grep "cmdname"| awk '{print $1}'
  2.  pidof "cmdname"
  3.  pgrep "cmdname"

这三种在bash和busybox ash里面的运行结果稍有不同,

第一种完全相同,但是因为调用命令次数较多,性能上是不行的。

第二种: pidof 只能获取程序的文件名匹配到的进程号,在ash中 比如 pidof "usr/bin/telnetd" 和 pidof "telnetd"中结果不一样, 前一种结果为空,但是在bash中执行两者一样。

第三种: pgrep跟1的效果相同,因为是单一命令,比第一种性能要好得多。

所以nanoRC就改进为pgrep。

阅读(28037) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~