共享内存批量删除

Linux中通过API函数shmget创建的共享内存一般都是在程序中通过shmctl来释放的,但是有时为了调试程序,开发人员可能通过ctrl + c等方式来发送中断信号结束程序,这个时候,程序申请的共享内存就不能得到释放,当然,如果程序没有改动的话,第二次重新运行程序时仍然会使用上次申请的内存。但是我们总希望每次程序结束就能释放掉申请的共享内存。

使用 ipcs -m 查看当前共享内存使用情况,使用 ipcrm -m shmid 删除指定 shmid 的共享内存。

结合 awk 命令,可以实现共享内存的批量删除。脚本如下:

set -x       

ipcs -m | awk '$5==327155712 {print $2}' |
while read s
do
    ipcrm -m $s
done

含义是删除大小为 327155712 所有共享内存。

参考 AWK 简明教程

猜你喜欢

转载自blog.csdn.net/u012675539/article/details/51744384