繁体   English   中英

如何在没有后台进程的情况下并行运行shell命令?

[英]How to run shell commands in parallel without background processes?

我试图以并行方式运行多个shell命令,而不使用“&”进行后台进程。 另外,我想(以一种公平的方式)为一个CPU分配一个作业。例如,如果我有四个内核,我想按如下所示向cmd4分配四个cmd1:

CPU#1:cmd1

CPU#2:cmd2

CPU#3:cmd3

CPU#4:cmd4

您能告诉我这样做的方法吗?

我找到了“并行”命令,但是我不知道如何使用它。 另外,我尝试了以下命令:./cmd1 | ./cmd2 | ./cmd3 | ./cmd4似乎四个命令(cmd1到cmd4)正在并行运行,但是我不确定如上面所说的那样,这些作业已分配给内核。

谢谢!

抱歉。 我在linux上运行命令。

首先,如果要并行执行进程,则它们必须是后台作业。 您反对使用&做什么?

其次,您可以使用taskset将进程绑定到一个CPU内核或一组内核。 例如:

taskset -c 0 cmd1 &
taskset -c 1 cmd2 &
taskset -c 2 cmd3 &
taskset -c 3 cmd4 &

但是,这可能不是一个好主意。 如果一个进程长时间闲置,其他三个进程则无法使用分配给它的内核。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM