1. 程式人生 > >【轉】使用ipcrm命令為什麼不能釋放shared memory?

【轉】使用ipcrm命令為什麼不能釋放shared memory?

Why shared memory can not be released by "ipcrm" command ?

SOLUTION 已驗證- 已更新2014年八月17日04:04-

環境

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Shared Memory
  • ipcrm, ipcs

問題

  • Why shared memory can not be released by "ipcrm" command ?
  • How to remove shared memory segment ?
  • What is the meaning of the "dest" seen under status from the output of the "ipcs -m" command ?

Eg:

  • The shared memory segment (4685833) is marked to be destroyed on the system.
Raw
# ipcs -m
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x74000157 3473408    root      600        4          0                       
0x7400012d 4161537    root      600        4          0                       
0x74000190 851970     root      600        4          0                       
0x00000000 4521987    root      644        80         2                       
0x7400012c 4128772    root      600        4          0                       
0x00000000 4554757    root      644        16384      2                       
0x00000000 4587526    root      644        280        2                       
0x00000000 4620295    root      644        64         2          dest         
0x00000000 4653064    root      644        16384      2          dest         
0x00000000 4685833    root      644        280        2          dest         
  • Tried to remove shared memory segment with shmid (4685833) using ipcrm command.
Raw
# ipcrm -m 4685833
  • The shared memory segment with shmid (4685833) still present.
Raw
# ipcs -m
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x74000157 3473408    root      600        4          0                       
0x7400012d 4161537    root      600        4          0                       
0x74000190 851970     root      600        4          0                       
0x00000000 4521987    root      644        80         2          dest         
0x7400012c 4128772    root      600        4          0                       
0x00000000 4554757    root      644        16384      2                       
0x00000000 4587526    root      644        280        2                       
0x00000000 4620295    root      644        64         2          dest         
0x00000000 4653064    root      644        16384      2          dest         
0x00000000 4685833    root      644        280        2          dest 

決議

  • Status "dest" in the output of "ipcs -m" means memory segment is marked to be destroyed and "nattach" field shows that how many application being attached to the shared memory.
Raw
# ipcs -m
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x74000157 3473408    root      600        4          0                       
0x7400012d 4161537    root      600        4          0                       
0x74000190 851970     root      600        4          0                       
0x00000000 4521987    root      644        80         2                       
0x7400012c 4128772    root      600        4          0                       
0x00000000 4554757    root      644        16384      2                       
0x00000000 4587526    root      644        280        2                       
0x00000000 4620295    root      644        64         2          dest         
0x00000000 4653064    root      644        16384      2          dest         
0x00000000 4685833    root      644        280        2          dest         
                                                      ^           ^
                                                      |           +-----[ Memory segment is marked to be destroyed ]
                                                      +-----------------[ Number of application being attached to the shared memory ]
  • The shared memory segment marked as "dest" will be released its memory when all the application which are attached with this memory segment are terminated.

Steps to remove shared memory segment:

1) Determine the application pid's which are using the shared memory segment. The process id can be identified using;
Eg:

Raw
# ipcs -mp

or

# grep -l "shmid" /proc/[1-9]*/maps

or

# lsof | egrep "shmid"

2) Terminate all application pid's which are using shared memory segment.
Eg:

Raw
# kill -15 <pid>

3) Use "ipcrm" command to remove the shared memory segment.
Eg:

Raw
# ipcrm -m shmid


相關推薦

shell命令中>/dev/null 2>&1的實現原理

情況 內存 顯示 都是 style hand 引用 nis roo 異步執行 exec("/alidata/server/php/bin/php /nas/wxdoctor/index.php App/Common/WordsPic/user_id/".$user_

ls 命令的 20 個實用範例

篩選 ott 訪問 spa 你在 ls用法 擴展 document ftw Linux中一個基本命令是ls。沒有這個命令,我們會在瀏覽目錄條目時會遇到困難。這個命令必須被每個學習Linux的人知道。 ls是什麽 ls命令用於列出文件和目錄。默認上,他會列出當前目錄的

VMwareCLI命令參考

VMwareCLI命令參考 目錄 基本命令範例 1 2 3 4

Linux手動釋放快取的方法

Linux手動釋放快取的方法 轉自:https://www.cnblogs.com/focai/p/5829897.html Linux釋放記憶體的命令: sync echo 1 > /proc/sys/vm/drop_caches drop_caches的值可以是0-3之間的數字,代

tar 命令詳解

tar 命令[[email protected] ~]# tar [-cxtzjvfpPN] 檔案與目錄 ….Usage: tar [OPTION…] [FILE]…Examples:        tar -cf archive.tar foo bar     

USB命令(請求)和USB描述符

轉載自:http://hi.baidu.com/deep_pro/blog/item/0ca086af97ca15f1faed5016.html 一、USB命令   在USB規範裡,對命令一詞提供的單詞為“Request”,但這裡為了更好的理解主機與裝置之間的主從關係,將它定義成“命令”。

git命令彙總

一、Git版本分支管理 以下是一個比較基本的分支管理示範,每個公司的專案管理運作不同,分支管理也有各自的特色,但萬變不離其宗。 1) dev分支用於日常開發 2) 當有新版本需要釋出時,把dev程式碼合併到release分支做整合測試,並等待發布 3) release分支進入bug修復階段 4) 如

locate命令簡介

1、命令簡介         locate(locate) 命令用來查詢檔案或目錄。 locate命令要比find -name快得多,原因在於它不搜尋具體目錄,而是搜尋一個數據庫/var/lib/mlocate

snmpwalk命令常用方法

在日常監控中,經常會用到snmp服務,而snmpwalk命令則是測試系統各種資訊最有效的方法,命令格式: snmpwalk  -c SNMP讀密碼 -v 1或2(代表SNMP版本) 交換機或路由器IP地址 OID(物件標示符) 現總結一些常用的方法如下: 1、snmpwalk -v 2c -c pub

sed命令n,N,d,D,p,P,h,H,g,G,x解析

1、sed執行模板=sed '模式{命令1;命令2}'即逐行讀入模式空間,執行命令,最後輸出打印出來2、為方便下面,先說下p和P,p列印當前模式空間內容,追加到預設輸出之後,P列印當前模式空間開端至\n的內容,並追加到預設輸出之前。sed並不對每行末尾\n進行處理,但是對N命

使用ipcrm命令為什麼不能釋放shared memory

Why shared memory can not be released by "ipcrm" command ?SOLUTION 已驗證- 已更新2014年八月17日04:04-環境Red Hat Enterprise Linux 5Red Hat Enterprise

linux之cp/scp命令+scp命令詳解

特殊 是否 用戶登錄 usr 指定 highlight 顯示 檔案 三種 linux之cp/scp命令+scp命令詳解 名稱:cp 使用權限:所有使用者 使用方式: cp [options] source dest cp [options] source

如何在命令行腳本中啟動帶參數的Windows服務

服務控制 代碼 需要 () 而不是 gen 備註 詳細介紹 namespace 我們有一個自己編寫的Windows服務,我們希望該服務在啟動時可以根據用戶輸入的參數實現不同的功能。 要實現這樣的需求並不是很難,下面這個例子我用來示範如何編寫該服務 1 using

學習jar命令 創建和解壓jar文件包

運行 man str 失敗 參數 int 什麽 英文 poi java編程中每天都用不少jar文件,項目開發中不停地導包,在忙完了一天的工作,放下那些復雜的業務實現,不僅想問這些jar包怎麽生成的,jar包有哪些獨特的地方等等。 原來這些經常見到的ja

TCP建立連接三次握手和釋放連接四次握手

eight 請求 置1 計時器 響應 發送數據 出現 期望 本地 在談及TCP建立連接和釋放連接過程,先來簡單認識一下TCP報文段首部格式的的幾個名詞(這裏只是簡單說明,具體請查看相關教程) 序列號seq:占4個字節,用來標記數據段的順序,TCP把連接中發送的所有數

linux awk命令詳解

column 環境變量 最後一行 工作流程 初始 文本文件 for循環 其中 cti 簡介 awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切

Git常用命令總結

mda 同時 owa rem resolve fff gin spl 包含 轉自:http://www.cnblogs.com/mengdd/p/4153773.html 查看、添加、提交、刪除、找回,重置修改文件 git help <command> #

Linux 如何通過命令僅獲取IP地址

網卡 errors alt oot lin style bytes b- eth0 一同事的朋友正在參加筆試,遇到這麽一個問題讓他幫忙解決,結果同事又找到我幫他搞定。真是感慨:通訊發達在某些方面來說,真不知是不是好事啊!題目大致如下所示,一般我們使用ifconfig查看網卡

Mac環境下svn命令行的使用

資源庫 帳號 之間 rto 有效 write rac update pac 轉載地址:http://blog.csdn.net/itianyi/article/details/8981989 在Windows環境中,我們一般使用TortoiseSVN來搭建svn環境。

Appium的安裝-Mac平臺(命令行 dmg)

兼容性問題 壓縮 解壓 3.1 修改文件 9.png 根據 ref 成功 其實Appium的安裝方式主要有兩種: 1)自己安裝配置nodejs的環境,然後通過npm進行appium的安裝 2)直接下載官網提供的dmg進行安裝,dmg裏面已經有