国际访客建议访问 Primers 编程伙伴 国际版站点 > Bash 教程 > ipcrm 以获得更好的体验。

# Bash 的 ipcrm 命令

ipcrm [OPTIONS]

!subtitle:功能

删除进程间通信(IPC)资源。

!subtitle:类型

可执行文件(/usr/bin/ipcrm),属于 util-linux

!subtitle:参数

  • OPTIONS 选项:

    • -a, --all [TYPE] - 删除所有 TYPE 类型的 IPC 资源;TYPE 取值为 shmmsgsem,省略时删除所有类型

    • -M, --shmem-key KEY - 根据 KEY 删除共享内存

    • -m, --shmem-id ID - 根据 ID 删除共享内存

    • -Q, --queue-key KEY - 根据 KEY 删除消息队列

    • -q, --queue-id ID - 根据 ID 删除消息队列

    • -S, --semaphore-key KEY - 根据 KEY 删除信号量数组

    • -s, --semaphore-id ID - 根据 ID 删除信号量数组

    • --help - 显示帮助

    • --version - 显示版本

# 示例

$ ipcmk -S 8            # 创建信号量数组
Semaphore id: 2
$ ipcrm -s 2            # 删除信号量数组

# 相关命令

命令 说明
ipcmk 创建 IPC 资源
ipcs 查看 IPC 资源

# 推荐阅读

# 手册

IPCRM(1)                         User Commands                        IPCRM(1)

NAME
       ipcrm - remove certain IPC resources

SYNOPSIS
       ipcrm [options]

       ipcrm [shm|msg|sem] ID ...

DESCRIPTION
       ipcrm removes 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.

       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), msgctl(2), and
       semctl(2). The identifiers and keys can be found by using ipcs(1).

OPTIONS
       -a, --all [shm] [msg] [sem]
           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.

       -Q, --queue-key msgkey
           Remove the message queue created with msgkey.

       -q, --queue-id msgid
           Remove the message queue identified by msgid.

       -S, --semaphore-key semkey
           Remove the semaphore created with semkey.

       -s, --semaphore-id semid
           Remove the semaphore identified by semid.

       -h, --help
           Display help text and exit.

       -V, --version
           Print 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), msgctl(2), msgget(2), semctl(2), semget(2),
       shmctl(2), shmdt(2), shmget(2), ftok(3), sysvipc(7)

REPORTING BUGS
       For bug reports, use the issue tracker at
       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.39.3                 2023-10-23                          IPCRM(1)
本文 更新于: 2026-03-06 09:52:32 创建于: 2026-03-06 09:52:32