IPCS(1)

โœจ ipcs โ€” bestie's guide to peeking at your IPC โœจ

okay so this is the ipcs manual page from section 1 (User Commands), and I am so excited to tell you about it ๐Ÿ’–


๐ŸŒธ NAME ๐ŸŒธ

ipcs โ€” show information on IPC facilities

like, it literally just shows you the tea on your System V IPC stuff ๐Ÿซ–โœจ


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

ipcs [options]

that's it. that's the whole vibe. no positional args, just you and your options ๐Ÿ’…


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

So ipcs shows information on System V inter-process communication facilities. By default it shows information about all three resources: shared memory segments</>, message queues</>, and semaphore arrays</>. All three, no cap, it's giving "I have no favourites" ๐Ÿ‘‘


๐Ÿ’– OPTIONS ๐Ÿ’–

  • -i, --id id โ€” Show full details on just the one resource element identified by id. This option needs to be combined with one of the three resource options: -m, -q or -s. (like it can't fly solo bestie, it needs a buddy ๐Ÿซถ)
  • -h, --help โ€” Display help text and exit. classic.
  • -V, --version โ€” Display version and exit. also classic.

๐ŸŒˆ Resource options ๐ŸŒˆ

  • -m, --shmems โ€” Write information about active shared memory segments.
  • -q, --queues โ€” Write information about active message queues.
  • -s, --semaphores โ€” Write information about active semaphore sets.
  • -a, --all โ€” Write information about all three resources (default). the "select everything" main character move โœจ

๐Ÿ“ Output formats ๐Ÿ“

Of these options only one takes effect: the last one specified. so like, don't expect stacking, it's not a group chat, only the last one gets to speak ๐Ÿ˜ญ
  • -c, --creator โ€” Show creator and owner. who made it, who owns it, the whole origin story ๐Ÿ’…
  • -l, --limits โ€” Show resource limits.
  • -p, --pid โ€” Show PIDs of creator and last operator.
  • -t, --time โ€” Write time information. The time of the last control operation that changed the access permissions for all facilities, the time of the last msgsnd(2) and msgrcv(2) operations on message queues, the time of the last shmat(2) and shmdt(2) operations on shared memory, and the time of the last semop(2) operation on semaphores. it's giving timestamps for days โฐ
  • -u, --summary โ€” Show status summary. the TL;DR of the whole situation fr fr

๐Ÿงš Representation ๐Ÿงš

These affect only the -l (--limits) option. just so we're clear, they do NOTHING anywhere else, ok? ok.
  • -b, --bytes โ€” Print sizes in bytes rather than in human-readable form.

By default, sizes are shown in units that are powers of 1024 bytes. The formal abbreviations for these units (KiB, MiB, GiB, ...) are further shortened to just their first letter: K, M, G, .... so like, the nerdy full names get a lil haircut โœ‚๏ธ

  • --human โ€” Print sizes in human-readable format. the opposite vibe, we're being friendly to your eyeballs ๐Ÿ’œ

๐Ÿ‘‘ CONFORMING TO ๐Ÿ‘‘

ok so real talk, this is important: the Linux ipcs utility is not fully compatible to the POSIX ipcs utility. The Linux version does not support the POSIX -a, -b and -o options, but does support the -l and -u options not defined by POSIX. A portable application shall not use the -a, -b, -o, -l, and -u options.

so if you're writing portable code, bestie, pls don't touch -a, -b, -o, -l, or -u. that's the โœจportability warningโœจ of the day.

๐Ÿ”ฅ NOTES ๐Ÿ”ฅ

The current implementation of ipcs obtains information about available IPC resources by parsing the files in /proc/sysvipc.

Before util-linux version v2.23, an alternate mechanism was used: the IPC_STAT command of msgctl(2), semctl(2), and shmctl(2). This mechanism is also used in later util-linux versions in the case where /proc is unavailable.

A limitation of the IPC_STAT mechanism is that it can only be used to retrieve information about IPC resources for which the user has read permission. so like, if you can't read it, you can't see it. permission check said no ๐Ÿšซ


๐ŸŒŸ AUTHORS ๐ŸŒŸ

Krishna Balasubramanian <balasub@cis.ohio-state.edu>


๐Ÿ’ซ SEE ALSO ๐Ÿ’ซ

ipcmk(1), ipcrm(1), msgrcv(2), msgsnd(2), semget(2), semop(2), shmat(2), shmdt(2), shmget(2), sysvipc(7)

go read those too, they're all part of the same friend group ๐Ÿซถ


๐Ÿ› REPORTING BUGS ๐Ÿ›

For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.

found something cursed? tell the maintainers, not me ๐Ÿ˜ญ


โญ AVAILABILITY โญ

The ipcs 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/>.


and that's the whole page bestie!! this was documented for util-linux 2.42.4 on 2026-09-21, from section 1 of the manual. now go check on your shared memory segments, they miss you ๐Ÿ’…๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from
  • arch rolling: util-linux 2.42.4-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause-UC AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND ISC AND LGPL-2.1-or-later AND LicenseRef-PublicDomain
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms