GNU进程的并行超时

时间:2016-05-17 10:00:23

标签: parallel-processing gnu-parallel

我想在这个命令中使用GNU Parallel:

seq -w 30 | parallel -k -j6 java -javaagent:build/libs/pddl4j-3.1.0.jar -server -Xms8048m -Xmx8048m fr.uga.pddl4j.planners.hsp.HSP -o pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/domain.pddl -f pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/p{}.pddl -i 8 '>>' AstarMovie.txt

我在java程序中有600秒的超时但并行没有执行它。流程可以运行2,3,4或更多小时,永不停止。

我在网上尝试了基于GNU教程的命令,但它也没有工作:

seq -w 30 | parallel -k --timeout 600000 -j6 java -javaagent:build/libs/pddl4j-3.1.0.jar -server -Xms2048m -Xmx2048m fr.uga.pddl4j.planners.hsp.HSP -o pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/domain.pddl -f pddl/benchmarks_STRIPS/benchmarks_STRIPS/ipc1/movie/p{}.pddl -i 8 '>>' AstarMovie.txt

我在教程中看到GNU Parallel使用毫秒 - 所以600000是10分钟,这是我需要的但是在12分钟之后该过程仍在运行。我需要6个进程一次运行最多10分钟。

任何帮助都会很棒。感谢。

编辑: 为什么人们觉得需要编辑小的更改帖子,例如' 600秒'到' 600秒'?停止为业力而做..

1 个答案:

答案 0 :(得分:5)

GNU Parallel 的超时以秒为单位,而不是毫秒。您可以使用此片段进行测试,该片段等待15秒,但超时会在10秒后将其关闭:

time parallel --timeout 10 sleep {} ::: 15

real    0m10.961s
user    0m0.071s
sys     0m0.038s