加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash:限制并发作业的数量?

发布时间:2020-12-15 18:54:17 所属栏目:安全 来源:网络整理
导读:有没有一个简单的方法来限制bash中并发作业的数量?我的意思是制作当在后台运行n个并发作业时阻塞. 我知道我可以用ps |来实现这个grep式的技巧,但是有更简单的方法吗? 如果您安装了GNU Parallel http://www.gnu.org/software/parallel/,可以这样做: parall
有没有一个简单的方法来限制bash中并发作业的数量?我的意思是制作&当在后台运行n个并发作业时阻塞.

我知道我可以用ps |来实现这个grep式的技巧,但是有更简单的方法吗?

如果您安装了GNU Parallel http://www.gnu.org/software/parallel/,可以这样做:
parallel gzip ::: *.log

每个CPU内核将运行一个gzip,直到所有日志文件都被gzip压缩.

如果它是较大循环的一部分,则可以使用sem:

for i in *.log ; do
    echo $i Do more stuff here
    sem -j+0 gzip $i ";" echo done
done
sem --wait

它会做同样的,但是给你一个机会,为每个文件做更多的东西.

如果GNU Parallel并没有为您的发行版打包,您可以通过以下方式安装GNU Parallel:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

它将下载,检查签名,并且如果无法在全球安装,则进行个人安装.

观看GNU Parallel的简介视频,了解更多信息:
https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读