Linux管道详解

213 阅读1分钟
本文已参与「新人创作礼」活动,一起开启掘金创作之路

linux中的管道

管道是什么?

  在linux中,所有的一切都被当成文件来处理,我们把处理文件的过程叫做流,而管道就是控制流的方向。管道的专用符号是 "|",当前一个流结束时,通过符号"|",前一个流的输出会自动变为后一个流的输入。

怎么诊断程序中的管道问题

  但是具体应用过程中可能遇到一些问题,比如说提示错误:管道错误: 打开的文件过多,这个时候你先要知道是哪个进程的管道数超标。 使用top命令查看当前运行的进程动态 按b键,将当前执行程序进程高亮 截图: 在这里插入图片描述 验证该PID:ps -eo pid,lstart,etime|grep pid 截图: 在这里插入图片描述 时间对的上就是它了 查看该PID的文件打开数目:lsof -p pid |wc -l 截图: 在这里插入图片描述

怎么修改管道配置

查看管道配置:ulimit -a 其中open files就是限制文件打开数目,这个是已经修改后的,修改之前是1024,修改后变为65535 截图: 在这里插入图片描述 修改管道配置:vim vim /etc/security/limits.conf 在文档后面添加:

* soft nofile 65535
* hard nofile 65535

应用配置: vim /etc/pam.d/login 在文档后面添加: session required /lib/security/pam_limits.so 查看修改情况:ulimit -a 截图: 在这里插入图片描述

image.png