shell获取进程ID的方法:
我知道和实践过的有这么三种:
- ps -A |grep "cmdname"| awk '{print $1}'
- pidof "cmdname"
- pgrep "cmdname"
这三种在bash和busybox ash里面的运行结果稍有不同,
第一种完全相同,但是因为调用命令次数较多,性能上是不行的。
第二种: pidof 只能获取程序的文件名匹配到的进程号,在ash中 比如 pidof "usr/bin/telnetd" 和 pidof "telnetd"中结果不一样, 前一种结果为空,但是在bash中执行两者一样。
第三种: pgrep跟1的效果相同,因为是单一命令,比第一种性能要好得多。
所以nanoRC就改进为pgrep。

本文深入探讨了在bash和busyboxash环境下,获取进程ID的不同方法,包括使用ps、pidof和pgrep命令,并详细分析了它们在性能和适用场景上的差异,最终推荐采用pgrep作为nanoRC进程ID获取的首选方法。
2413

被折叠的 条评论
为什么被折叠?



