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的简介视频,了解更多信息: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |