当前位置: 首页 > 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.jsqmd.com/news/955112/

相关文章:

  • 2026年四大医学SCI论文润色平台实测,医生/科研人选机构必看避坑
  • 找广告背景音乐 12个高质量素材平台整理
  • 2026西安黄金回收全区域排行,无隐形扣费机构精选 - 奢侈品交易观察员
  • 2026 泰兴防水补漏哪家好?住建实地测评权威榜单 TOP5|长江潮汐顶托返潮、中部高沙土窜水、化工园区湿热渗漏修缮白皮书(6 月专项调研) - 苏易修缮
  • 别被IDE骗了!深入KEIL语法检查机制,看懂cmsis_armcc.h的‘假错误’
  • 怎样轻松备份微信聊天记录:3步完成数据永久保存的实用指南
  • Google认证不是考试,而是数字工作流重构指南
  • LabVIEW 8.5 安装部署与兼容性配置实战指南
  • 汽车改装合规科普|看懂现行交规,车灯升级、车辆改装再也不怕年检被罚 - 英特菲斯
  • 全国大学生电子设计竞赛备赛指南:核心题型解析与实战技能锤炼
  • 纯C++手写AES-128加解密工具(ECB模式),含源码、编译说明与原理文档
  • Mac音乐格式解密终极指南:3步解锁QQ音乐加密文件
  • 濮阳华龙区6月金价高位变现攻略:家里旧金饰这样卖不踩坑,上门回收秒到账 - 润富黄金回收
  • 2026 GEO监测工具中,搜极星的“中立”底牌有多硬?
  • AI 电动园林用品智能功率 MOSFET 完整选型方案
  • 2026 汉中防水补漏三家品牌横向测评:厨卫屋面地下室修缮哪家靠谱?吉修匠 99.8 分五星稳居榜首 - 吉修匠
  • 粽香情浓端午传承|端午节主题特色网络投票评选活动方案! - 投票评选活动
  • JSON Viewer终极指南:告别混乱JSON,轻松掌握数据可视化技巧
  • 实战演练,基于快马平台从零构建并部署可用的电商客服agent
  • 【AI上市加速器】:2024年智能IPO整合工具链TOP7实战清单,错过再等三年
  • VB6实现Windows按钮突破工具:深入理解HWND与API消息机制
  • 从零构建ATT7022 SPI驱动:ARM嵌入式开发与电能计量实践
  • 抖音去水印批量下载终极指南:3分钟掌握完整解决方案
  • 利用CY7C68013A开发板自制逻辑分析仪:原理、制作与协议调试实战
  • 【汇编和指令集 . 第2026 .06期】點赞和電路
  • 2026惠州惠城黄金回收指南:附六家优质店铺推荐 - 生活测评小能手
  • 深入解析7805三端稳压器:从基础原理到进阶应用实战
  • 5大核心功能深度解析:douyin-downloader如何重塑你的抖音内容管理体验
  • 别急着改代码!Keil报‘expected identifier’错误?可能是CMSIS头文件与编译器版本的‘历史遗留问题’
  • PCBA 元器件替换需要遵循哪些原则?