首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行运行bash命令和xargs

并行运行bash命令和xargs
EN

Stack Overflow用户
提问于 2011-12-11 16:46:58
回答 3查看 1.9K关注 0票数 2

我希望有人能帮我解决这个简单的问题。我想并行运行此命令

代码语言:javascript
复制
windmill chrome test=./test http://www.google.ch

我正在使用xargs,并查看了互联网上的示例。但是,我无法构造xargs命令来并行执行我提到的命令。

我尝试了以下几种方法

代码语言:javascript
复制
echo "chrome test=./test http://www.google.ch" | xargs -n 1 -P 2 windmill

它没有执行正确的命令,这意味着windmill一定是执行了错误的命令,因为输出不正确(指定错误参数的windmill的默认输出)。

然而,我得到了另一个问题,即终端/python抱怨"socket.error: errno48地址已在使用中“。

因此,当我并行运行风车命令时,只需打开例如两个终端,并在每个终端中运行风车命令,它就可以工作了。

如果xargs不是解决方案,那么如果你能给我指明正确的方法,我将非常感激:)

EN

回答 3

Stack Overflow用户

发布于 2011-12-11 17:03:16

xargs不会运行你的命令是并行的。

为什么不直接在任何与bourne兼容的shell中执行呢?

代码语言:javascript
复制
for i in 1 2; do windmill chrome test=./test http://www.google.ch & done
票数 1
EN

Stack Overflow用户

发布于 2011-12-12 22:10:51

你提到你想并行运行一个命令。这只能在程序本身被内部并行化的情况下才能实现。

但是,您可以并行运行多个命令。假设你想并行运行这些命令:

代码语言:javascript
复制
windmill chrome test=./test http://www.google.ch
windmill chrome test=./test http://www.google.se
windmill chrome test=./test http://www.google.no
windmill chrome test=./test http://www.google.de

使用GNU并行,您可以做到:

代码语言:javascript
复制
parallel windmill chrome test=./test http://www.google.{} ::: ch se no de

观看介绍视频以了解更多信息:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1并浏览教程(man parallel_tutorial)。你的命令行带着对你的爱。

如果这不是你想要的,请重新表述你的问题。

票数 1
EN

Stack Overflow用户

发布于 2011-12-12 16:22:00

我发现,有时一个程序在绑定到最近发布的套接字时会出现问题--出于安全原因,内核试图阻止这种情况。如果您需要能够立即重新绑定,您可能应该尝试SO_REUSEADDR,或者每次只绑定到不同的端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8462834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档