我想对这个命令使用GNU并行:
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并行使用毫秒-所以600000是10分钟,这是我所需要的,但12分钟后进程仍在运行。我需要6个进程一次运行最多10分钟。
任何帮助都会很好。谢谢。
编辑:为什么人们觉得需要编辑帖子的小变化,如“600秒”到“600秒”?别再为因果报应这么做了。
发布于 2016-05-23 08:05:32
GNU并行的超时以秒为单位,而不是毫秒。您可以使用这个等待15秒的片段来测试它,但是使用一个在10秒后切断它的超时:
time parallel --timeout 10 sleep {} ::: 15
real 0m10.961s
user 0m0.071s
sys 0m0.038shttps://stackoverflow.com/questions/37272925
复制相似问题