zoukankan      html  css  js  c++  java
  • ipcs 命令

    原文链接

    参考链接

    unix/linux下的共享内存、信号量、队列信息管理
    在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。
    查看共享信息的内存的命令是ipcs [-m|-s|-q]。

    默认会列出共享内存、信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列
    清除命令是ipcrm [-m|-s|-q] id。
    -m 删除共享内存,-s删除共享信号量,-q删除共享队列。
    [oracle@trade_as02 ~]$ ipcs -a
     
    ------ Shared Memory Segments --------
    key        shmid      owner      perms      bytes      nattch     status      
    0x30024289 32768      futures   777        528384     1                       
    0xca2fd414 491521     oracle    640        1730150400 16                      
     
    ------ Semaphore Arrays --------
    key        semid      owner      perms      nsems     
    0x00028009 0          futures   666        1         
    0x0002800c 32769      futures   666        1         
    0x30024003 262146     futures   777        3         
    0x3002428a 294915     futures   777        2         
    0x3002428b 327684     futures   777        2         
    0x3002428c 360453     futures   777        2         
    0x3002428d 393222     futures   777        2         
    0x3002428e 425991     futures   777        2         
    0x52dff7d0 3964936    oracle    640        151       
    0x52dff7d1 3997705    oracle    640        151       
    0x52dff7d2 4030474    oracle    640        151       
    0x52dff7d3 4063243    oracle    640        151       
    0x52dff7d4 4096012    oracle    640        151       
     
    ------ Message Queues --------
    key        msqid      owner      perms      used-bytes   messages
    共享内存段有时不能马上删除,需使用这个内存段的所有进程向OS发送detach命令时才有释放,此时可以考虑删除进程使用的信号量,帮助释放共享内存段
     
     
     
    关键知识:信号量、资源释放、ipcsipcrm
    信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况;共享内存是运行在同一台机器上的间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。在Linux系统下 常用的方式是通过shmXXX函数族来实现利用共享内存进行存储的。Shmget,类似于 malloc函数
    相关知识:
    ipcs可用来显示当前Linux系统中的共享内存段、信号量集、消息队列等的使用情况。
    命令示例:
    ipcs -aipc 显示当前系统中共享内存段、信号量集、消息队列的使用情况;
    ipcs -m 显示共享内存段的使用情况;
    ipcs -s 显示信号量集的使用情况;
    ipcs -q 显示消息队列的使用情况;
    ipcrm可用来删除对应的共享内存段、信号量、消息队列;
    命令示例:
    ipcrm -s semid 删除对应的信号量集
    ipcrm -m shmid 删除对应的共享内存段
    ipcrm -q msqid 删除对应的消息队列
    ipcrm本身只能实现单个资源的删除,利用以下命令可实现批量删除(zhangsj版权所有,呵呵):
    1.ipcs -s|grep 用户名|cut -d" " -f2|xargs -n1 ipcrm -s
    2.ipcs -s|awk '/用户名/{print $2}'|xargs -n1 ipcrm -s
    3.ipcs -s|awk '/用户名/{system("ipcrm -s "$2)}'
    4.for i in echo `ipcs|grep 用户名|cut -d" " -f2`; do ipcrm -s $i; done
  • 相关阅读:
    Web API 强势入门指南
    毫秒必争,前端网页性能最佳实践
    Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
    Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
    Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介绍
    WCF : 修复 Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service 问题
    透过WinDBG的视角看String
    Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
    企业IT管理员IE11升级指南【17】—— F12 开发者工具
    WCF : 如何将NetTcpBinding寄宿在IIS7上
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2535042.html
Copyright © 2011-2022 走看看