是否可以在后台启动 GNU Parallel,或者以某种方式将其发送到后台?
我想这样做,以便我可以使用parallel
同时运行的两个命令。
为什么我不在一个并行命令中执行所有操作呢?两个原因:
- 一段时间后并行速度减慢,
- 因为我想将它分开,这样我就可以停止一组的执行而不停止一切
答案1
可以在后台并行运行。最近,我正在研究需要并行执行的类似脚本,我在中得到了建议这回答。如果您访问链接指定的作为我答案的一部分,我看到以下答案。
GNU Parallel 可以用作计数信号量。这比正常模式更慢且效率更低。
的别名parallel --semaphore
是sem
.默认设置是一次只允许一个程序运行(技术上称为互斥体)。该程序在后台启动。用于--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
.