shell中用到的管道有什么作用?(进程间传递数据)

本周问题 来源 公司讨论qq群

执行命令 ps -ef | grep xxx | awk ‘{print $2}’ | xargs -i kill -9 {} 报错: fork: 无法分配内存

疑问

(1) shell命令和 fork 有什么关系,为什么会有fork关键提示?

(2) 这个命令有没有问题呀?(这个问题其他同事解决的)

回答:

1 进程间通讯方式之一 管道 “|” 就是无名管道 用于父子之间 传 递数据

演示:
这三个进程是fork出来的吗? 是 截图可能有点不符上面例子

总结:

管道 传输 不需要 tcp等网络协议 涉文件系统, 对管道的访问用了锁、等待队列和信号等机制同步 做了个测试只运行了不到0.1S的时间, 却读取了10MB的数据。这说明管道在程序之间传递数据是很有效率的

2 : xarg kill -9 和xarg -i kill -9 {} 有差异 -i 是一个一个处理参考

改为

ps -ef | grep xxx | awk ‘{print $2}’ | xargs kill -9

参考: 1 管道实现机制 http://www.cnblogs.com/biyeymyhjob/archive/2012/11/03/2751593.html

http://blog.chinaunix.net/uid-20447380-id-1945730.html

2 有名管道 (演示阻塞 了解同步) http://bbs.51cto.com/thread-1104907-1-1.html

下次阅读 线程池 UNIX网络编程 第2卷 进程间通信 第四章就有名管道

演示并发服务端实现 其中有下面一句话下次在看

原文发布于微信公众号 - 架构说(JiaGouS)

原文发表时间:2016-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据智能实战

module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6问题解决

最近在重新用tensorflow 1.3.*或者1.4 的时候,发现了好多问题,主要是碰到了如题目所示的问题,目前网上没有什么好的解决办法。 ? 关于这个问题,...

26010
来自专栏静晴轩

使用Ldoc给Lua生成文档

Ldoc介绍   Ldoc是一个Lua的文档生成工具,过去,比较常用的Lua生成文档的工具是LuaDoc,可惜作者自从2008年之后就再也没有发布过新的版本了...

2836
来自专栏逸鹏说道

★Kali信息收集~ 5.The Harvester:邮箱挖掘器

官网:http://www.edge-security.com 安装:apt-get install theHarvester 运行:终端输入 theharve...

3007
来自专栏七夜安全博客

BaseProxy:异步http/https代理

1534
来自专栏李智的专栏

Python在不同目录下导入模块的方法

python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的...

1091
来自专栏大眼瞪小眼

程序与进程

昨天复习《深入理解计算机系统》,参考了小土刀的博客,看到了进程和程序在内存中是如何组织的,虽然这张图看了很多遍但是总感觉有疑问。努力解决,参考《深入理解计算机系...

943
来自专栏友弟技术工作室

命令行提高用户体验的神器

去闯 ag 比grep,ack更快的递归搜索文件内容 ag,grep,ack性能对比的链接 ag安装 ag ag简单使用 ag tig tig:字符模式下交互...

3429
来自专栏自动化测试实战

flask第二十一篇——练习题

2346
来自专栏生信宝典

Linux学习-常见错误和快捷操作

Linux下命令的一些异常情况 命令不全:在命令没有输入完 (引号或括号没有配对),就不小心按下了Enter键,终端会提示出一个>代表命令不完整,这是可以继续输...

2165
来自专栏Hongten

hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)

花了一些时间理解hibernate中的java对象的几种状态,很容易就懂了,这里记录一下,分享给大家!!

1263

扫码关注云+社区

领取腾讯云代金券