当前位置: 首页 > news >正文

Linux Shell多进程并发

核心原理

  • &:将命令放到后台执行,Shell 不等待它结束,立即返回。

  • wait:等待所有后台任务结束。

  • ( ... ) &:用子 shell 包装一组命令,然后后台执行。

shell的元字符&提供了在后台运行不需要键盘输入的程序的方法。输入命令后,其后紧跟&字符,该命令就会被送往到linux后台执行,而终端又可以继续输入下一个命令了。

1. 简单并发

sh a.sh &
sh b.sh &
sh c.sh &

这三个命令就会被同时送往linux后台执行,在这个程度上,认为这三个命令并发执行了。

shell脚本里实现并发操作技能点

  1. for循环

  2. &后台运行符

  3. wait等待所有子进程结束

2. 批量 ping 并发

for ip in 192.168.56.{1..254} do ( ping $ip -c 4 &>/dev/null if [ $? -eq 0 ]; then echo $ip is alive fi ) & done wait

这会导致254 个进程同时 ping,可能会触发系统限制或网络拥塞。

wait等待所有后台子程序执行完毕

3.分批并发(您贴的最后一个例子)

只让for循环中某条指令多进程执行

for ((i=0; i<$cishu; i++)) do start_num=$(expr $i \* $rsnum + $i) end_num=$(expr $start_num + $rsnum) for j in `seq $start_num $end_num` do create_dir $j & done wait # 等这一批全部完成,再进入下一批 done

这是“分批串行 + 组内并发”模式。

更简单的并发数控制(使用xargsparallel

# 使用 xargs(系统自带,轻量) seq 1 254 | xargs -I {} -P 10 ping -c 1 192.168.56.{} &>/dev/null && echo "{} is alive" # 使用 GNU parallel(需要安装) parallel -j 10 'ping -c 1 192.168.56.{} &>/dev/null && echo {} is alive' ::: {1..254}

性能监控与优化

在并发执行时,可以监控系统资源使用情况:

# 查看CPU使用情况 top -b -n 1 | head -n 12 # 查看内存使用情况 free -m # 查看磁盘I/O iostat -x 1 3

根据监控结果动态调整并发进程数量,以获得最佳性能。

参考资料

Linux Shell多进程并发以及并发数控制 - 简书

bash shell实现并发多进程操作_bash 多进程并发_低调小一的博客-CSDN博客

http://www.zskr.cn/news/1466735.html

相关文章:

  • 找广告背景音乐 12个高质量素材平台整理
  • Google认证不是考试,而是数字工作流重构指南
  • 纯C++手写AES-128加解密工具(ECB模式),含源码、编译说明与原理文档
  • 全国大学生电子设计竞赛备赛指南:核心题型解析与实战技能锤炼
  • 2026 汉中防水补漏三家品牌横向测评:厨卫屋面地下室修缮哪家靠谱?吉修匠 99.8 分五星稳居榜首 - 吉修匠
  • 2026惠州惠城黄金回收指南:附六家优质店铺推荐 - 生活测评小能手
  • 【AI上市加速器】:2024年智能IPO整合工具链TOP7实战清单,错过再等三年
  • 5大核心功能深度解析:douyin-downloader如何重塑你的抖音内容管理体验
  • 别急着改代码!Keil报‘expected identifier’错误?可能是CMSIS头文件与编译器版本的‘历史遗留问题’
  • PCBA 元器件替换需要遵循哪些原则?
  • AI Agent工具链设计:从可用到可信的四层工程实践
  • STM32G431CB上直接可用的VL53L4CD激光测距驱动包,含液位检测实现实例
  • 从UGG雪地靴看产品设计:材料科学、场景定义与供应链策略
  • 露天矿卡车运输路径规划MATLAB可运行代码包(含任务案例P11-1与详细说明)
  • 5分钟快速上手:Android Studio中文界面完整配置指南
  • ArcGIS 10.1/10.2学校选址全流程实操资源:含原始数据、中间成果与可直接运行的MXD地图文档
  • 精选:推荐苏州优质的榫卯结构家具销售公司 - 品牌推广大师
  • 期货策略从 K 线研究脚本迁到快期模拟盘要改什么
  • MSC.Marc 90工程仿真实战包:含MFD建模文件、Fortran用户子程序源码与PROC工艺脚本
  • 如何快速解密QQ音乐加密音频?qmc-decoder完整使用指南
  • OneNote生产力革命:如何用160+功能插件OneMore打造高效笔记系统
  • 合肥市美的空调维修师傅电话|各区金牌师傅,靠谱选欧米到家 - 欧米到家
  • FineUploader 5.0.2 轻量纯JS上传核心包,无UI模板、零依赖、即引即用
  • LLM Token降本实战:四个轻量级组件精准压缩输入输出
  • 不想 ZUI 越更越难用?手把手教你向官方提交功能建议与 BUG 反馈
  • 五、应用层协议HTTP
  • 2026年6月9款视频转文字工具横向测评:准确率、实用性、创作赋能实测对比
  • PCB封装高效提取:告别手动复制,掌握EDA工具批量提取技巧
  • 抖音批量下载神器:3分钟搞定无水印内容批量采集
  • Office 2010 Word下可运行的VSTO Ribbon插件完整工程包(含文档级加载项与Excel兼容文件)