• (转载)Linux的IPC命令


    (转载)http://www.cnblogs.com/cocowool/archive/2012/05/22/2513027.html

    进程间通信概述

    进程间通信有如下的目的:1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;2、共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该立刻看到;3、通知事件,一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情;4、资源共享,多个进程之间共享同样的资源。为了做到这一点,需要内核提供锁和同步机制;5、进程控制,有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

    Linux进程间通信由以下几部分发展而来:

    早期UNIX进程间通信:包括管道、FIFO、信号。

    基于System V的进程间通信:包括System V消息队列、System V信号灯(Semaphore)、System V共享内存。

    基于Socket进程间通信。

    基于POSIX进程间通信:包括POSIX消息队列、POSIX信号灯、POSIX共享内存。

    Linux中,与IPC相关的命令包括:ipcs、ipcrm(释放IPC)、

    IPCS命令是Linux下显示进程间通信设施状态的工具。我们知道,系统进行进程间通信(IPC)的时候,可用的方式包括信号量、共享内存、消息队列、管道、信号(signal)、套接字等形式[2]。使用IPCS可以查看共享内存、信号量、消息队列的状态。

    例如在CentOS6.0上执行ipcs

    image

    具体的用法总结如下:

    1、显示所有的IPC设施

    # ipcs -a

    2、显示所有的消息队列Message Queue

    # ipcs -q

    3、显示所有的信号量

    # ipcs -s

    4、显示所有的共享内存

    # ipcs -m

    5、显示IPC设施的详细信息

    # ipcs -q -i id

    id 对应shmid、semid、msgid等。-q对应设施的类型(队列),查看信号量详细情况使用-s,查看共享内存使用-m。

    6、显示IPC设施的限制大小

    # ipcs -m -l

    -m对应设施类型,可选参数包括-q、-m、-s。

    7、显示IPC设施的权限关系

    # ipcs -c

    # ipcs -m -c

    # ipcs -q -c

    # ipcs -s -c

    8、显示最近访问过IPC设施的进程ID

    # ipcs -p

    # ipcs -m -p

    # ipcs -q -p

    9、显示IPC设施的最后操作时间

    # ipcs -t

    # ipcs -q -t

    # ipcs -m -t

    # ipcs -s -t

    10、显示IPC设施的当前状态

    # ipcs -u

    Linux上的ipcs命令,不支持UNIX上的-b、-o指令,同样UNIX中不支持-l、-u指令,所以在编写跨平台的脚本时,需要注意这个问题。

    参考资料:

    1、Linux下IPCS的用法详解

    2、Linux进程间通信

    3、Linux下IPCS的10种用法

    4、Linux IPC小结

    5、Linux IPC总结

  • 相关阅读:
    1091 Acute Stroke
    1092 To Buy or Not to Buy
    1093 Count PAT's
    1094 The Largest Generation
    1095 Cars on Campus
    1096 Consecutive Factors
    1097 Deduplication on a Linked List
    2.掌握Python基本数据类型,从python陌路人到熟人!
    Python基础语法,他其实很贵!
    某外企软件测试面试题整理(更新中)
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3060223.html
Copyright © 2020-2023  润新知