首页 运维 网络学院 查看内容

如何获得上一个进程的pid的方法

2011-7-14 11:39 683 0

摘要: 在《如何压缩程序占用内存的方法》里我为了测试程序的内存占用大小写了一个shell脚本   1.$1 &  2.echo "$1 pid:$!" 3.sleep 3&nb...
关键词: nbsp bogon root 命令 txt 后台 echo 一个 pid wc

在《如何压缩程序占用内存的方法》里我为了测试程序的内存占用大小写了一个shell脚本   1.$1 &  2.echo "$1 pid:$!" 3.sleep 3  4.pmap $!|grep total|awk -v pid="$!" '{print "pid",pid," memory:",$2}' 里面需要用到linux shell的特殊变量$!,网上都是说$! 返回的是 上一个命令的PID。但是我实际测试得出,这个说法一般不对,一般对对于前台命令不对: 1.[root@bogon ~]# wc -l a.txt  2.2162 a.txt  3.[root@bogon ~]# echo $!  4.[root@bogon ~]#  但是对于后台命令是对的  1.[root@bogon ~]# wc -l a.txt &  2.[1] 9155  3.2162 a.txt  4.[root@bogon ~]# echo $!  5.9155  6.[1]+ Done wc -l a.txt 而且,之后若是执行的命令不是后台命令的话,$!里的值都不会改变,直到下一个后台命令执行为止     1.[root@bogon ~]# wc -l a.txt  2.2162 a.txt  3.[root@bogon ~]# echo $!  4.9155  5.[root@bogon ~]# wc -l a.txt &  6.[1] 9198  7.[root@bogon ~]# 2162 a.txt  8.[1]+ Done wc -l a.txt  9.[root@bogon ~]# echo $!  10.9198 结论:$!保存的是最后一个后台执行命令的pid,第一次登录服务器时,$!为空
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部