ipcs命令行工具

ipcs 是一个在 Unix/Linux 系统中用于查看 进程间通信 设施状态信息的命令行工具。

一、什么是进程间通信

进程间通信是允许不同进程(运行中的程序)交换数据和同步操作的机制。ipcs 主要报告以下三种 IPC 资源的详细信息:

  1. 共享内存 - 多个进程可以访问的同一块内存区域
  2. 信号量 - 用于进程间的同步和互斥
  3. 消息队列 - 进程间通过消息传递数据

二、基本命令格式

bash 复制代码
ipcs [options]

三、常用选项参数

选项 说明
-m 查看共享内存信息
-q 查看消息队列信息
-s 查看信号量信息
-a 查看所有 IPC 信息(默认)
-t 显示时间信息
-p 显示进程 ID 信息
-c 显示创建者/所有者信息
-l 显示系统 IPC 资源限制
-u 显示使用情况摘要
-i <id> 显示指定 ID 的详细信息

四、命令输出详解

1. 查看所有 IPC 资源

bash 复制代码
ipcs -a
# 或直接
ipcs

2. 共享内存信息示例

bash 复制代码
ipcs -m

输出字段说明:

复制代码
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 32769      user       600        524288     2          dest
0x00000000 32770      user       600        4194304    1          dest
  • key: IPC 键值,0x00000000 表示私有
  • shmid: 共享内存段 ID
  • owner: 所有者用户名
  • perms: 权限(八进制,类似文件权限)
  • bytes: 共享内存大小(字节)
  • nattch: 当前附加的进程数
  • status: 状态(dest 表示标记为删除)

3. 消息队列信息

bash 复制代码
ipcs -q
复制代码
------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
0x00000456 0          root       644        0            0

4. 信号量信息

bash 复制代码
ipcs -s
复制代码
------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x00000111 0          user       600        1

五、实用示例

1. 查看详细信息(包含创建进程和最后操作进程)

bash 复制代码
ipcs -m -p -c
  • -p 显示创建进程和最后操作的进程 ID
  • -c 显示创建者和所有者

2. 查看特定用户的 IPC 资源

bash 复制代码
ipcs -m -u -c | grep username

3. 查看系统 IPC 限制

bash 复制代码
ipcs -l

输出系统对 IPC 资源的限制,如:

复制代码
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509481980
min seg size (bytes) = 1

------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767

4. 查看使用情况统计

bash 复制代码
ipcs -u

5. 查看特定 ID 的详细信息

bash 复制代码
ipcs -m -i 32769

六、配合 ipcrm 删除 IPC 资源

当需要清理 IPC 资源时,使用 ipcrm 命令:

bash 复制代码
# 删除共享内存
ipcrm -m shmid

# 删除消息队列
ipcrm -q msqid

# 删除信号量
ipcrm -s semid

# 通过 key 值删除
ipcrm -M key
ipcrm -Q key
ipcrm -S key
相关推荐
一可米10 小时前
gitHub.com Actions自动化发布
运维·自动化·github
智塑未来10 小时前
证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景
运维·科技·区块链
2601_9657984711 小时前
Is Hygia Good for Maid & Janitorial Sites? Technical Audit
服务器·网络·数据库
蚰蜒螟11 小时前
从内核源码看Linux启动:chroot、execve与MS_MOVE的协奏曲
linux·服务器·网络
酷可达拉斯11 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible
来者皆善12 小时前
ZYNQ linux上使用 USB CDC ACM
linux·运维·服务器
4/5$全真龙门12 小时前
廉价易行的内网穿透
运维
缓慢更新13 小时前
企业档案管理系统迁移实录:从文件服务器到智能检索引擎
运维·服务器
小北的AI科技分享13 小时前
企业AI开发:从技术选型到落地的关键路径
运维·模型·评估
Dawn-bit13 小时前
Linux磁盘分区与Swap和磁盘故障查询
linux·运维·服务器·网络·云计算