Chinaunix首页 | 论坛 | 博客
  • 博客访问: 125705
  • 博文数量: 44
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-02 21:38
文章分类
文章存档

2015年(1)

2013年(43)

我的朋友

分类: LINUX

2013-02-25 14:19:12

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。

阅读(1481) | 评论(0) | 转发(0) |
0

上一篇: rsyslog

下一篇:shell中if做比较

给主人留下些什么吧!~~