ipcs 和 ipcrm 都是与进程间通信有关的命令。可以看到这两个命令都是以IPC开头的— Inter-process Comminication,就是进程间通信。
我们先来了解下进程间通信能干什么?
进程间通信的目的就是为了:
- 数据传输:一个进程要将它的数据发送给另一个进程
- 资源共享:多个进程之间共享同样的资源
- 通知事件:一个进程需要向另一个进程或进程组发送消息,通知某件事发生(比如子进程退出要通知父进程)
- 进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有拦截和异常,并能够及时知道它的状态。
进程间通信有两种版本的不同通信方式
POSIX和System V两种标准。
POSIX下有共享内存、消息队列、信号量、互斥量、条件变量、互斥锁
System V下有共享内存、消息队列、信号量
那么说下ipcs 和 ipcrm 是什么?
这两个就是与进程间通信有关的命令。
ipcs就是查看内核当中所有的进程间通信方式
它有 -q -m -s 三个选项,分别对应消息队列、共享内存、信号量
ipcrm就是删除某一个进程间通信
它也有-q -m -s三个选项,分别对应消息队列、共享内存、信号量
使用ipcs可以查看所有的三种进程间通信方式
使用ipcs -q 只查看消息队列
使用ipcs -m只查看共享内存
使用ipcs -s只差看信号量
ipcrm 顾名思义就是rm ipc 也就是删除对应的进程间通信
ipcrm -m “shmid” 删除对应的共享内存
ipcrm -q “msqid” 删除对应的消息队列
ipcrm -s “semid” 删除对应的信号量