Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ipcrm

Remove System V IPC resources.

Synopsis

ipcrm -m <shmid>       # remove shared memory by ID
ipcrm -M <key>         # remove shared memory by key
ipcrm -q <msqid>       # remove message queue by ID
ipcrm -Q <key>         # remove message queue by key
ipcrm -s <semid>       # remove semaphore by ID
ipcrm -S <key>         # remove semaphore by key
ipcrm -a [type]        # remove all

Operation

Removes System V IPC resources using shmctl(2), msgctl(2), or semctl(2) with IPC_RMID.

For key-based removal, first resolves the key to an ID via the corresponding *get() syscall, then removes by ID.

Syscalls

SyscallDescription
shmctl(id, IPC_RMID, NULL)Mark shared memory for removal
msgctl(id, IPC_RMID, NULL)Remove message queue immediately
semctl(id, 0, IPC_RMID)Remove semaphore array immediately
shmget(key, 0, 0)Resolve key to shmid
msgget(key, 0)Resolve key to msqid
semget(key, 0, 0)Resolve key to semid

Command-line options

OptionDescription
-m, --shmem-id <id>Remove shared memory by ID
-M, --shmem-key <key>Remove shared memory by key
-q, --queue-id <id>Remove message queue by ID
-Q, --queue-key <key>Remove message queue by key
-s, --semaphore-id <id>Remove semaphore by ID
-S, --semaphore-key <key>Remove semaphore by key
-a, --all[=shm|msg|sem]Remove all (optionally filtered)
-v, --verboseVerbose output
-h, --helpDisplay help
-V, --versionDisplay version

Exit codes

CodeMeaning
0Success
1Failure

Notes

  • Shared memory removal only takes effect after all attached processes detach.
  • Message queue and semaphore removal is immediate.
  • Keys/IDs accept decimal, hex (0x prefix), or octal (0 prefix).

Not yet implemented

  • POSIX IPC removal
  • Legacy syntax (ipcrm shm|msg|sem <id>...)