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

总结了一下,有如下两种方法:
第一种方法:
如果你总是通过ctrl+c来结束程序的话,可以做一个信号处理器,当收到这个信号时,先释放共享内存,然后退出程序。这种方法原理上应该是可行的,但是我还没做具体的实验。
第二种方法:
不管你通过什么方法结束了程序,如果共享内存还未得到是啊发那个,我们可以通过Linux的命令ipcrm shm shmid来释放。
当然,提到释放共享内存的ipcrm命令,我们不得不提到了查看共享内存的ipcs命令
[root@cucme venus]# ipcs -m
------ Shared Memory Segments --------
key       shmid    owner  perms  bytes   nattch  status     
0x00001f11 2097152  root   0      7500000    0                      
0x00001f21 2129921  root   0      7500000    0                      
0x00001f31 2162690  root   0      7500000    0                      
0x00001f26 2195459  root   0      7500000    0                      
0x00001f16 2228228  root   0      7500000    0                      
0x00001f17 2260997  root   0      7500000    0                      
0x00001f27 2293766  root   0      7500000    0                   

转载于:https://blog.51cto.com/dxwang/78953

批量释放系统共享内存相关推荐

  1. Linux下使用awk批量删除共享内存

    1.awk简介 awk 是一个强大的文本分析工具.sed 常常用于一整个行的处理,而 awk 则倾向于以空格和tab键为默认分隔符将每行切片成一个个域(也就是一列)来处理.awk适用于小型的数据处理. ...

  2. 共享内存 Actor并发模型到底哪个快?

    HI,前几天被.NET圈纪检委@懒得勤快问到共享内存和Actor并发模型哪个速度更快. 前文传送门:<三分钟掌握共享内存 & Actor并发模型> 说实在,我内心10w头羊驼跑过. ...

  3. python多进程共享内存_python 进程间通信 共享内存

    python多进程通信实例分析 python多进程通信实例分析操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那 ...

  4. 6.分布式共享内存(DSM - Distributed Shared Memory)

    传统上,分布式计算基于消息传递模型,其中数据以消息的形式从处理器传递到处理器.RPC 实际上是相同的模型(或非常接近). DSM 是分布式系统的所有节点(处理器)共享的虚拟地址空间.程序访问 DSM ...

  5. oracle ipcs mt,Oracle Study之--IPCS管理共享内存

    Oracle Study之--IPCS管理共享内存 Unix/linux下的共享内存.信号量.队列信息管理 在unix/linux下,经常有因为共享内存.信号量,队列等共享信息没有干净地清除而引起一些 ...

  6. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  7. PyTorch 笔记(10)— Tensor 与 NumPy 相互转换、两种共享内存以及两者的广播法则

    Tensor 与 NumPy 有很高的相似性,彼此之间的互操作也非常简单有效,需要注意的是 Tensor 与 NumPy 共享内存,由于 NumPy 历史悠久,所以遇到 Tensor 不支持的操作时, ...

  8. python slice是共享内存吗_在共享内存中使用numpy数组进行多处理

    在共享内存中使用numpy数组进行多处理 我希望在共享内存中使用numpy数组,以便与多处理模块一起使用.困难之处在于它像一个numpy数组一样使用,而不仅仅是作为一个ctype数组使用.from m ...

  9. Linux进程间的通信----->共享内存

    共享内存:         顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式.不同进程之间共享的内存通常安排为同一段物 ...

  10. linux 共享内存函数封装,linux ftok()函数 --多进程IPC之共享内存

    系统创建IPC通信(如消息队列.共享内存时)必须指定一个ID值.一般状况下,该id值经过ftok函数获得. ftok原型以下: key_t ftok( char * fname, int id ) f ...

最新文章

  1. thinkphp mysql权限管理_TP thinkphp 权限管理 权限认证 功能
  2. spring 深入reading
  3. sharemouse切窗口就锁定了什么原因_Excel表格如何锁定,被锁定的表格又该如何解除锁定呢?...
  4. C和C++栈stack
  5. JAVA15.JDK15.7 HiddenClass
  6. quartzjob传递传输_Quartz教程三:Job与JobDetail介绍
  7. 发送带有接缝的活动邀请
  8. odoo10 继承(扩展)、模块数据
  9. java中重载和重写
  10. 6.边缘检测:梯度——回顾、简化的图像、边缘概念_1
  11. c语言编写计算器保存结果的程序,c语言编写计算器程序.doc
  12. 编程中的Eric常用的编程单词的缩写
  13. paip.解决Invalid byte 2 of 2-byte UTF-8 sequence.
  14. 数据库系统原理与设计(第3版)第二章课后习题
  15. LitJson扩展基础类型
  16. MATLAB 使用 loglog semilogy 不显示对数坐标
  17. 面向对象:兜兜转转了很久,希望你恰好也在
  18. 计算机英语口语app,最实用五大英语口语app,强烈推荐
  19. 中科大少年班,阿里云首席科学家闵万里离职,发内部信告别!
  20. Altium Designer——PCB中更改线宽的技巧总结

热门文章

  1. charles抓包https/模拟弱网/设置断点/修改接口请求值或返回值/压测
  2. JavaScript要点 (一) 变量-作用域
  3. JAVA中的继承和覆盖
  4. 使用Jorm简单的增删查改数据库
  5. protocol buffer的使用
  6. 数据网格组件 Handsontable 不再开源,采用自拟的非商业许可证
  7. 长治a货翡翠,永州a货翡翠
  8. 记一次悲惨的excel导出事件
  9. win7hosts文件位置
  10. 当你不能回答别人的提问时怎么办