---
name: "ipcrm"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/ipcrm"
---

# ipcrm(1)

remove the specified message queues, semaphore sets, and shared segments

## NAME

**ipcrm** – remove the specified message queues, semaphore sets, and shared segments

## SYNOPSIS

**ipcrm** \[**-W**\] \[**-v**\] \[**-q** *msqid*\] \[**-m** *shmid*\] \[**-s** *semid*\] \[**-Q** *msgkey*\] \[**-M** *shmkey*\] \[**-S** *semkey*\] *...*

## DESCRIPTION

The **ipcrm** utility removes the specified message queues, semaphores and shared memory segments. These System V IPC objects can be specified by their creation ID or any associated key.

The following options are generic:

- **-v**

  If specified once with -W or with -1 for an object, it will show all removed objects. If specified twice with -W or with -1 for an objects, it will show all removed objects and all failed removals.

- **-W**

  Try to wipe all specified message queues, semaphores and shared memory segments.

- **-y**

  Use the [kvm(3)](/kvm/3.md) interface instead of the [sysctl(3)](/sysctl/3.md) interface to extract the required information. If **ipcrm** is to operate on the running system, using [kvm(3)](/kvm/3.md) will require read privileges to */dev/kmem*.

The following options are used to specify which IPC objects will be removed. Any number and combination of these options can be used:

- **-q** *msqid*

  Remove the message queue associated with the ID *msqid* from the system.

- **-m** *shmid*

  Mark the shared memory segment associated with ID *shmid* for removal. This marked segment will be destroyed after the last detach.

- **-s** *semid*

  Remove the semaphore set associated with ID *semid* from the system.

- **-Q** *msgkey*

  Remove the message queue associated with key *msgkey* from the system.

- **-M** *shmkey*

  Mark the shared memory segment associated with key *shmkey* for removal. This marked segment will be destroyed after the last detach.

- **-S** *semkey*

  Remove the semaphore set associated with key *semkey* from the system.

The identifiers and keys associated with these System V IPC objects can be determined by using [ipcs(1)](/ipcs/1.md). If the identifier or the key is -1, it will remove all these objects.

## SEE ALSO

[ipcs(1)](/ipcs/1.md)

## HISTORY

The wiping of all System V IPC objects was first implemented in FreeBSD 6.4 and FreeBSD 7.1.

## AUTHORS

The original author was Adam Glass. The wiping of all System V IPC objects was thought up by Callum Gibson and extended and implemented by Edwin Groothuis.
