# ipcrm

## 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.
    


## 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/>. This page is
           part of the _util-linux_ (a random collection of Linux utilities)
           project. Information about the project can be found at 
           ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩. If you have a
           bug report for this manual page, send it to
           util-linux@vger.kernel.org. This page was obtained from the
           project's upstream Git repository
           ⟨git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git⟩ on
           2025-08-11. (At that time, the date of the most recent commit that
           was found in the repository was 2025-08-05.) If you discover any
           rendering problems in this HTML version of the page, or you
           believe there is a better or more up-to-date source for the page,
           or you have corrections or improvements to the information in this
           COLOPHON (which is _not_ part of the original manual page), send a
           mail to man-pages@man7.org
    
    util-linux 2.42-start-521-ec46  2025-08-09                       _IPCRM_(1)
    


* * *