IPCRM(1) User Commands IPCRM(1)
NAME
ipcrm - remove certain IPC resources
SYNOPSIS
ipcrm [options]
ipcrm [shm|msg|sem] ID ...
DESCRIPTION
ipcrm removes POSIX and 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.
POSIX and 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').
The details of the removes are described in shmctl(2), shm_unlink(3),
msgctl(2), mq_unlink(3), semctl(2), and sem_unlink(3). The identifiers
and keys can be found by using lsipc(1) or ipcs(1).
OPTIONS
-a, --all [shm] [pshm] [msg] [pmsg] [sem] [psem]
Remove all resources. When an option argument is provided, the
removal is performed only for the specified resource types.
Warning! Do not use -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.
-M, --shmem-key shmkey
Remove the shared memory segment created with shmkey after the last
detach is performed.
-m, --shmem-id shmid
Remove the shared memory segment identified by shmid after the last
detach is performed.
-x, --posix-shmem name
Remove the POSIX shared memory segment created with name.
-Q, --queue-key msgkey
Remove the message queue created with msgkey.
-q, --queue-id msgid
Remove the message queue identified by msgid.
-y, --posix-mqueue name
Remove the POSIX message queue created with name.
-S, --semaphore-key semkey
Remove the semaphore created with semkey.
-s, --semaphore-id semid
Remove the semaphore identified by semid.
-z, --posix-semaphore name
Remove the POSIX named semaphore created with name.
-h, --help
Display help text and exit.
-V, --version
Display version and exit.
NOTES
In its first Linux implementation, ipcrm used the deprecated syntax
shown in the second line of 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
ipcmk(1), ipcs(1), lsipc(1), msgctl(2), mq_unlink(3), msgget(2),
semctl(2), semget(2), sem_unlink(3), shmctl(2), shmdt(2), shmget(2),
shm_unlink(3), ftok(3), sysvipc(7)
REPORTING BUGS
For bug reports, use the issue tracker
<https://github.com/util-linux/util-linux/issues>.
AVAILABILITY
The ipcrm command is part of the util-linux package which can be
downloaded from Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.41 2025-02-26 IPCRM(1)
Generated by dwww version 1.16 on Tue Dec 16 04:25:39 CET 2025.