【问题标题】:GNU Parallel timeout for process进程的 GNU 并行超时
【发布时间】:2016-09-20 21:02:09
【问题描述】:

我想为此命令使用 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 秒”这样的小变化而编辑帖子?停止为业力做它..

【问题讨论】:

  • “GNU Parallel 不尊重您的超时”是什么意思?如果你的程序在 10 分钟后自动停止,GNU Parallel 如何让它继续运行?
  • GNU Parallel 手册页说 --timeout 值以秒为单位。
  • 在我的 java 程序中,我有一个 600 秒的超时时间来完成一项任务。使用 GNU 并行时,进程将超过此超时并继续尝试解决问题
  • 不,它说 “如果命令运行时间超过 val 秒”
  • 试试这个...time parallel --timeout 10 sleep {} ::: 15

标签: parallel-processing gnu-parallel


【解决方案1】:

GNU Parallel 的超时时间以秒为单位,而不是毫秒。您可以使用这个等待 15 秒但超时会在 10 秒后将其切断的 sn-p 进行测试:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-10
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多