.\" Copyright 2002 Andre C. Mazzone (linuxdev@karagee.com)
.\" May be distributed under the GNU General Public License
.TH IPCRM "1" "July 2014" "util-linux" "User Commands"
.SH NAME
ipcrm \- remove certain IPC resources
.SH SYNOPSIS
.B ipcrm
[options]
.sp
.B ipcrm
.RB { shm | msg | sem }
.IR id ...
.SH DESCRIPTION
.B ipcrm
removes System V inter-process 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.
.PP
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
.RB ( shmdt (2))
the object from their virtual address space.
.PP
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.
.PP
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').
.PP
The details of the removes are described in
.BR shmctl (2),
.BR msgctl (2),
and
.BR semctl (2).
The identifiers and keys can be found by using
.BR ipcs (1).
.SH OPTIONS
.TP
\fB-a\fR, \fB\-\-all\fR [\fBshm\fR] [\fBmsg\fR] [\fBsem\fR]
Remove all resources.  When an option argument is provided, the removal is
performed only for the specified resource types.  \fIWarning!\fR  Do not use
.B \-a
if you are unsure how the software using the resources might react to missing
objects.  Some programs create these resources at startup and may not have
any code to deal with an unexpected disappearance.
.TP
.BR \-M , " \-\-shmem\-key " \fIshmkey
Remove the shared memory segment created with
.I shmkey
after the last detach is performed.
.TP
.BR \-m , " \-\-shmem\-id " \fIshmid
Remove the shared memory segment identified by
.I shmid
after the last detach is performed.
.TP
.BR \-Q , " \-\-queue\-key " \fImsgkey
Remove the message queue created with
.IR msgkey .
.TP
.BR \-q , " \-\-queue\-id " \fImsgid
Remove the message queue identified by
.IR msgid .
.TP
.BR \-S , " \-\-semaphore\-key " \fIsemkey
Remove the semaphore created with
.IR semkey .
.TP
.BR \-s , " \-\-semaphore\-id " \fIsemid
Remove the semaphore identified by
.IR semid .
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH NOTES
In its first Linux implementation, \fBipcrm\fR used the deprecated syntax
shown in the second line of the
.BR SYNOPSIS .
Functionality present in other *nix implementations of \fBipcrm\fR 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.
.\" .SH AUTHORS
.\" Andre C. Mazzone (linuxdev@karagee.com)
.\" .br
.\" Krishna Balasubramanian (balasub@cis.ohio-state.edu)
.SH SEE ALSO
.nh
.BR ipcmk (1),
.BR ipcs (1),
.BR msgctl (2),
.BR msgget (2),
.BR semctl (2),
.BR semget (2),
.BR shmctl (2),
.BR shmdt (2),
.BR shmget (2),
.BR ftok (3)
.SH AVAILABILITY
The ipcrm command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
