Linux IPC命令的用法详解

进程间通信概述

进程间通信有如下的目的:
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

具体的用法总结如下:

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指令,所以在编写跨平台的脚本时,需要注意这个问题。

(0)

相关推荐

  • linux命令行下使用curl命令查看自己机器的外网ip

    Linux命令行下如何查看自己机器的外网ip?可以在命令行下使用curl命令实现这个功能,试一下下面的命令吧 复制代码 代码如下: curl ifconfig.me 输入此条命令,就可以获取到本机的外网ip.

  • Linux通过命令仅获取IP地址的方法

    一同事的朋友正在参加笔试,遇到这么一个问题让他帮忙解决,结果同事又找到我帮他搞定.真是感慨:通讯发达在某些方面来说,真不知是不是好事啊!题目大致如下所示,一般我们使用ifconfig查看网卡信息,请问你可以通过什么命令,让其只输出IP地址192.168.42.128 看似简单的问题,实现起来也不是太简单.看看下面的思路吧 [root@DB-Server ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:9E:70:0E inet

  • Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定的方法

    本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名以及Linux下多网卡绑定的知识 一.网卡高级命令 在之前的一篇随笔里Linux学习之CentOS(九)--Linux系统的网络环境配置,详细讲解了Linux系统下的网络环境配置等知识,我们了解了一些关于网络配置的一些基本命令.在这里将补充一些Linux系统下有关网卡的一些高级命令. ①mii-tool 命令 mii-tool命令我们可以用来查看网卡状态信息,包括了以太网连接是否正常,使用的是哪种型号的网卡等等 [root@xiaoluo

  • Linux命令行修改IP、网关、DNS的方法

    网卡eth0    IP修改为 102.168.0.1   复制代码 代码如下: ifconfig eth0 102.168.0.1 netmask 255.255.255.0 网关修改为 102.168.0.254 复制代码 代码如下: route add default gw 102.168.0.254 Linux命令行修改DNS 复制代码 代码如下: echo "nameserver 202.202.202.20 ">> /etc/resolv.conf 重启网络服务

  • 详解几种Linux 查询外网出口IP命令的方法

    Curl 纯文本格式输出: curl icanhazip.com curl ifconfig.me curl curlmyip.com curl ip.appspot.com curl ipinfo.io/ip curl ipecho.net/plain curl www.trackip.net/i curl JSON格式输出: curl ipinfo.io/jsoncurl ifconfig.me/all.jsoncurl www.trackip.net/ip?json curl XML格式输

  • Linux ipcs命令与ipcrm命令的用法详解

    是linux/uinx上提供关于一些进程间通信方式的信息,包括共享内存,消息队列,信号 ipcs用法 ipcs -a  是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息ipcs -m  打印出使用共享内存进行进程间通信的信息ipcs -q   打印出使用消息队列进行进程间通信的信息ipcs -s  打印出使用信号进行进程间通信的信息 输出格式的控制ipcs -t   输出信息的详细变化时间 ipcs -p  输出ipc方式的进程IDipcs -c  输出ipc方式的创建者/拥有者 i

  • Linux IPC命令的用法详解

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

  • Linux链接命令的实例详解

    Linux链接命令的实例详解 一 语法 ln -s [源文件] [目标文件] 命令英文含义:link 功能描述:生成链接文件 选项:-s 创建软链接 二 硬链接特征 原文件和硬链接文件删除其中任何一个都没问题. 三 硬链接实战 [root@localhost ~]# cd test [root@localhost test]# ls bcd [root@localhost test]# ln bcd abc.hard [root@localhost test]# ll total 0 -rw-r

  • Linux基础命令之mktemp详解

    mktemp 创建临时文件或者目录,这样的创建方式是安全的.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 mktemp [选项]  [TEMPLATE] 2.选项列表 选项 说明 --version 显示命令版本信息 --help 显示帮助信息 -d | --directory 创建目录 -u | --dry-run 不要创建任何东西,只要打印一个名字(不安全) -q | --quiet 发生错误的时候不显示提示信息

  • Linux Shell Map的用法详解

    Map定义: 在使用map时,需要先声明,否则结果可能与预期不同,array可以不声明 方式1: declare -A myMap myMap["my03"]="03" 方式2: declare -A myMap=(["my01"]="01" ["my02"]="02") myMap["my03"]="03" myMap["my04&qu

  • php的declare命令及用法详解

    定义 php中的declare结构用来设定一段代码的执行指令 declare用于执行3个指令:ticks,encoding,strict_types 作用域 declare结构用于全局范围,影响到其后的所有代码 (但如果有declare结构的文件被其他文件包含,则对包含他的父文件不起作用) 1.ticks declare(ticks=1) { //代码 } || declare(ticks=1); 两者相等 //作用: //解释器每执行N条可计时的低级语句就会发生的时间 declare(dire

  • SQLPlus命令操作用法详解

    SQLPlus是进行Oracle操作的主要前台工具,用户名和密码分别为用户名和密码,连接ORACLE数据库 可见,显示的比较混乱,可以通过以下命令优化 这个操作是对数据库直接操作的,然而实际的开发都是通过程序读取,所以这样的格式化没有意义. 在I盘新建一个记事本文件,在文本中编辑一条查询内容 将其后缀名改为hello.sql,通过命令      @文件所在盘:文件名       即可,如果文件的后缀是.sql,也可以不写后缀 使用ed命令可以直接在新建的记事本中编写语句,保存后执行 可使用 sh

  • Linux rpm 命令参数使用详解

    rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update: -qpl:列出RPM软件包内的文件信息[Query Package list]: -qpi:列出RPM软件包的描述信息[Query Package install package

  • dos命令for用法详解

    for帮助文档 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数. (set) 指定一个或一组文件.可以使用通配符. command 指定对每个文件执行的命令. command-parameters 为特定命令指定参数或命令行开关. 在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable.变量名称

  • jar命令的用法详解

    本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用.具体如下: JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成. JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类.这些细节就不用管它了. 让我们看

  • Linux seq命令的使用详解

    01. 命令概述 seq命令用于产生整数序列. 02. 命令格式 用法: seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 03. 常用选项 以指定增量从首数开始打印数字到尾数. -f, --format=格式 使用printf 样式的浮点格式 -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同 --help 显示此帮助信息并退出 --versi

随机推荐