.\" 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 .
