#!/bin/bash
num=5 #控制进程的数量为10
net="10.100.4"
pipefile="/tmp/multiping_$$.tmp"
multi_ping() {
ping -c2 -i0.2 -W1 $1 &>/dev/null
if [ $? -eq 0 ];then
echo "$1 is up"
else
echo "$1 is down"
fi
}
#创建命名管道文件,创建文件描述符,通过重定向将数据导入管道文件
mkfifo $pipefile #创建命名管道文件
exec 12<>$pipefile #创建文件描述符
for i in $(seq $num)
do
echo "" > $12 &
done
for j in {1..254}
do
read -u12
{
echo "start ping No.$j"
multi_ping $net.$j
echo "stop ping NO.$j"
echo "" >$12 #read读取了一行,进程占用1行,进程执行完后再向命名管道中追加1行数据
} & #中括号表示代码块,不会开启子进程执行
done
wait
rm -f $pipefile
shell多进程-利用命名管道和文件描述符指定同时开启的进程数量
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- shell虽然执行效率差,但优点,是所用即所得,不用移植,基本上所有linux都通用,基本不用额外安装程序。s 当...
- 给一个输出文件指定一个文件描述符的语法如下所示: 其中,[n] 即是文件描述符,如果不指定 n,则表示标准输出(即...
- Shell 允许你给一个输入文件或输出文件指定一个文件描述符。这样可以提高文件读取和写入的性能。这类文件描述符被称...
- 管道是比较常用的多进程通信手段, 管道分为无名管道与有名管道, 无名管道只能用于具有亲缘关系的进程间通信, 而有名...
- 声明:所有文章只作为学习笔记用,转载非原创 [Linux最大进程数、最大线程数、最大文件描述符数] https:/...