在售票系统的自动售票系统中,存放一些结账的一些缓存信息,每天必须更新缓存中信息。在自动售票系统上线一段时间,有时候发现,售票的存根记错,造成严重的影响。经过一段讨论,决定采用HP-UX的crontab的定时更新缓存中共享的记账信息。采用两个基本的命令:ipcs 和ipcrm命令
ipcrm:manually deallocate shared memory on a system
取得ipc信息:
ipcs [-m|-q|-s]
-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出有关“遮断器”(semaphore)的信息
# ipcs -m
IPC status from as of 2007年04月10日 星期二 18时32分18秒 CST
T ID KEY MODE OWNER GROUP
Shared Memory:
m 0 0x50000d43 --rw-r--r-- root root
m 501 0x1e90c97c --rw-r----- oracle dba
#ipcs |grep oracle|awk '{print $2}
501
删除ipc(清除共享内存信息)
ipcrm -m|-q|-s shm_id
%ipcrm -m 501
for i in `ipcs |grep oracle|awk '{print $2}'`
do
ipcrm -m $i
ipcrm -s $i
done
ipcs -a或ipc 显示当前系统中共享内存段、信号量集、消息队列的使用情况;
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
查看共享信息的内存的命令是ipcs [-m|-s|-q]。
清除命令是ipcrm [-m|-s|-q] id。
-m 删除共享内存,-s删除共享信号量,-q删除共享队列。
ipcs可用来显示当前Linux系统中的共享内存段、信号量集、消息队列等的使用情况。
ipcs 命令
用途
语法
描述
NAME
ipcs - report status of interprocess communication facilities
SYNOPSIS
ipcs [-mqs] [-abcopt] [-C core] [-N namelist]
DESCRIPTION
ipcs displays certain information about active interprocess
communication facilities. With no options, ipcs displays information
in short format for the message queues, shared memory segments, and
semaphores that are currently active in the system.
Options
The following options restrict the display to the corresponding
facilities.
(none) This is equivalent to -mqs.
-m Display information about active shared memory
segments.
-q Display information about active message queues.
-s Display information about active semaphores.
The following options add columns of data to the display. See "Column
Description" below.
(none) Display default columns: for all facilities: T,
ID, KEY, MODE, OWNER, GROUP.
-a Display all columns, as appropriate. This is
equivalent to -bcopt.
-b Display largest-allowable-size information: for
message queues: QBYTES; for shared memory
segments: SEGSZ; for semaphores: NSEMS.
-c Display creator's login name and group name: for
all facilities: CREATOR, CGROUP.
-o Display information on outstanding usage: for
message queues: CBYTES, QNUM; for shared memory
segments: NATTCH.
-p Display process number information: for message
queues: LSPID, LRPID; for shared memory segments:
CPID, LPID.
-t Display time information: for all facilities:
CTIME; for message queues: STIME, RTIME;