linux作業系統ipcs命令
ipcs: 主要提供呼叫程序讀取訪問一些ipc裝置資訊.如:共享記憶體,訊號量,訊息佇列
ipcs [ -asmq ] [ -tclup ]
ipcs [ -smq ] -i id
-m 輸出共享記憶體(shared memory segments)的資訊
-s 輸出訊號量(semaphore)的資訊
-q 輸出訊息佇列(message queues)的資訊
-l limits 01
[email protected]:log# ipcs02
03------ shared memory segments --------
04key shmid owner perms bytes nattch status 05
06------ semaphore arrays --------
07key semid owner perms nsems
080x00002af9 131072 db 664 1
090x00002afb 163841 db 664 1
100x00002b03 65538 db 664 1
110x00002b05 98307 db 664 1 12
13------ message queues --------
14key msqid owner perms used-bytes messages
其中key為應用程式訪問資源使用的引數,id為資源條目的唯一標示號.
例如實際情況可能會遇到db使用者程式是用root賬戶啟動,這時首先root賬戶關掉db使用者的程式,但共享記憶體有可能未釋放,需要手動刪除.這就要用到ipcrm 命令.
ipcrm - remove a message queue, semaphore set or shared memory id
ipcrm [ -m key | -m id | -q key | -q id | -s key | -s id ]
-m shmid
-q msqid
-s semid 01
[email protected]:log# ipcs -s02
03------ semaphore arrays --------
04key semid owner perms nsems
050x00002af9 131072 db 664 1
060x00002afb 163841 db 664 1
070x00002b03 65538 db 664 1
080x00002b05 98307 db 664 109
[email protected]:log# ipcrm -s 131072
[email protected]:log# ipcrm -s 163841
[email protected]:log# ipcrm -s 65538
[email protected]:log# ipcrm -s 9830714
[email protected]:~# ipcs16
17------ shared memory segments --------
18key shmid owner perms bytes nattch status 19
20------ semaphore arrays --------
21key semid owner perms nsems 22
23------ message queues --------
24key msqid owner perms used-bytes messages
[email protected]:~# ipcs -l02
03------ shared memory limits --------
04max number of segments = 4096
05max seg size (kbytes) = 32768
06max total shared memory (kbytes) = 8388608
07min seg size (bytes) = 108
09------ semaphore limits --------
10max number of arrays = 128
11max semaphores per array = 250
12max semaphores system wide = 32000
13max ops per semop call = 32
14semaphore max value = 3276715
16------ messages: limits --------
17max queues system wide = 16
18max size of message (bytes) = 8192
19default max size of queue (bytes) = 16384
有2種方法改變其值
1.更改/etc/sysctl.conf ,新增kernel.msgmni = 1024,生效載入配置使用sysctl -p
kernel.msgmni 該檔案指定訊息佇列標識的最大數目,即系統範圍內最大多少個訊息佇列。 1
[email protected]:~# cat /proc/sys/kernel/msgmni216
[email protected]:~# vim /etc/sysctl.conf
[email protected]:~# sysctl -p
5kernel.msgmni = 1024
[email protected]:~# cat /proc/sys/kernel/msgmni
71024
2.在root下使用sysctl命令,直接生效. 1
[email protected]:~# sysctl -w kernel.msgmni=16
2kernel.msgmni = 16
[email protected]:~# cat /proc/sys/kernel/msgmni416
linux作業系統基礎命令
gcc的知識要點 gcc的初衷是為gnu作業系統專門編寫的一款編譯器,gnu系統是徹底自由的軟體。gcc的基本用法 gcc hello world.c c,只編譯,不鏈結成為可執行檔案,編譯器只是由輸入的.c的源 檔案生成.o為字尾檔案的目標檔案,通常用於編譯不包括主程式的子程式。gcc hello...
linux作業系統命令基礎
常用指令 ls 顯示檔案或目錄 l 列出檔案詳細資訊l list a 列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p 建立目錄,若無父目錄,則建立p parent cd 切換目錄 touch 建立空檔案 echo 建立帶有內容的檔案。cat 檢視檔案內容 cp 拷貝 m...
Linux作業系統基礎命令
man help 利用方向鍵 快速調取歷史命令 ctrl a 將游標移動到行首 ctrl e 將游標移動到行尾 ctrl 將游標按照字串進行左右快速移動 ctrl u 將游標之前的內容進行剪下 ctrl k 將游標之後的內容進行剪下 ctrl w 以空格作為分隔 剪下每個字串資訊 ctrl y 將剪...