在后台启动 GNU Parallel?

在后台启动 GNU Parallel?

是否可以在后台启动 GNU Parallel,或者以某种方式将其发送到后台?

我想这样做,以便我可以使用parallel同时运行的两个命令。

为什么我不在一个并行命令中执行所有操作呢?两个原因:

  1. 一段时间后并行速度减慢,
  2. 因为我想将它分开,这样我就可以停止一组的执行而不停止一切

答案1

可以在后台并行运行。最近,我正在研究需要并行执行的类似脚本,我在中得到了建议回答。如果您访问链接指定的作为我答案的一部分,我看到以下答案。

GNU Parallel 可以用作计数信号量。这比正常模式更慢且效率更低。

的别名parallel --semaphoresem.默认设置是一次只允许一个程序运行(技术上称为互斥体)。该程序在后台启动。用于--wait完成所有“sem”:

sem 'sleep 1; echo The first finished' &&
    echo The first is now running in the background &&
    sem 'sleep 1; echo The second finished' &&
    echo The second is now running in the background
  sem --wait

如果您看到我提供的链接中的示例,您一定可以找到您正在寻找的内容。

答案2

我经常并行运行几个不同的任务组:

parallel do_stuff ::: x y z

然后我意识到这do_stuff需要很长时间才能运行,并且我希望恢复我的终端,所以我按 CTRL-Z 并输入:

bg

将作业置于后台。

然后我可能会开始另一份工作:

parallel do_other_stuff ::: foo bar baz

这项新工作将与do_stuff.

相关内容