Linux Commands Examples

A great documentation place for Linux commands


remove a message queue, semaphore set or shared memory id

see also : ipcs - ipcmk


ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ...

deprecated usage

ipcrm {shm|msg|sem} id...

add an example, a script, a trick and tips

: email address (won't be displayed)
: name

Step 2

Thanks for this example ! - It will be moderated and published shortly.

Feel free to post other examples
Oops ! There is a tiny cockup. A damn 404 cockup. Please contact the loosy team who maintains and develops this wonderful site by clicking in the mighty feedback button on the side of the page. Say what happened. Thanks!


ipcrm -Q 70
ipcrm -Q 71
ipcrm -Q 72
ipcrm -Q 73
ipcrm -Q 74
ipcrm -Q 75
ipcrm -Q 76
ipcrm -M 0xc01a
ipcrm -S 0x61733713
ipcrm -M 0x61733713
make clean
export DEBUG=3
ipcrm -Q 0x5302
ipcrm -Q 0x5303
ipcrm -Q 0x5313
ipcrm -Q 0x5306
ipcrm -Q 0x5305
ipcrm -Q 0x5304
ipcrm -Q 0x5312
ipcrm -Q 0x5312
ipcrm -Q 0x5309
ipcrm -Q 0x5301
ipcrm -Q 0x5300
ipcrm -Q 0x5307
ipcrm -Q 0x5317
ipcrm -Q 0x5316


ipcrm removes System V interprocess communication (IPC) objects and associated data structures from the system. In order to delete such objects, you must be superuser, or the creator or owner of the object.

System V IPC objects are of three types: shared memory, message queues, and semaphores. Deletion of a message queue or semaphore object is immediate (regardless of whether any process still holds an IPC identifier for the object). A shared memory object is only removed after all currently attached processes have detached (shmdt(2)) the object from their virtual address space.

Two syntax styles are supported. The old Linux historical syntax specifies a three letter keyword indicating which class of object is to be deleted, followed by one or more IPC identifiers for objects of this type.

The SUS-compliant syntax allows the specification of zero or more objects of all three types in a single command line, with objects specified either by key or by identifier. (See below.) Both keys and identifiers may be specified in decimal, hexadecimal (specified with an initial ’0x’ or ’0X’), or octal (specified with an initial ’0’).


-M shmkey

removes the shared memory segment created with shmkey after the last detach is performed.

-m shmid

removes the shared memory segment identified by shmid after the last detach is performed.

-Q msgkey

removes the message queue created with msgkey.

-q msgid

removes the message queue identified by msgid.

-S semkey

removes the semaphore created with semkey.

-s semid

removes the semaphore identified by semid.

The details of the removes are described in msgctl(2), shmctl(2), and semctl(2). The identifiers and keys may be found by using ipcs(1).


The ipcrm command is part of the util-linux package and is available from


In its first Linux implementation, ipcrm used the deprecated syntax shown in the SYNOPSIS. Functionality present in other *nix implementations of ipcrm has since been added, namely the ability to delete resources by key (not just identifier), and to respect the same command-line syntax. For backward compatibility the previous syntax is still supported.

see also

ipcs , ipcmk , msgctl, msgget, semctl, semget, shmctl, shmdt, shmget, ftok

How can this site be more helpful to YOU ?

give  feedback