【问题标题】:GNU Parallel and Solaris 11GNU 并行和 Solaris 11
【发布时间】:2016-05-28 12:35:19
【问题描述】:

我正在尝试通过以下命令在 Solaris 11 中使用并行命令运行多个作业:

find . -name "job*" | parallel -P 64 :::

CWD 有我需要运行的脚本文件 job1...job256。这些文件有一些变量定义,运行良好: ./job1 & ./job2 & 等等

但是,当我运行命令时,我确实从 gnu 并行收到以下错误:

/usr/bin/bash: 1: command not found
...
/usr/bin/bash: 1: command not found

256 次

这些程序在我的 Debian 机器上运行良好,但在我的 Solaris 11 + SPARC 机器上却不行。

谁能指出解决方法?

谢谢!

【问题讨论】:

  • 您需要提供更多详细信息,因为根据您提供的信息,您将得到的唯一答案将返回类似的数据:“有东西坏了。”
  • --dry-run 是否满足您的期望?本教程是否如所述(man parallel_tutorial)工作?你确定 Solaris 上的并行是 GNU Parallel?
  • Andrew:现在我正在尝试运行最简单的情况。脚本 job1...job256 只是单行脚本 -> echo "hello world!"。 Ole:我正在并行运行 GNU。我什至从 GNU 网站编译并运行了最新版本,并给出了相同的结果。 --dry-run 确实给了我预期的输出。该教程似乎也错过了行为。
  • @Leonus -- 尝试删除“!”来自您的输出,因此 bash 不会尝试将其解释为对先前命令的引用。
  • 如果'parallel ::: echo'失败,附加'parallel -Dall ::: echo'的输出。如果这也失败了:在“man parallel”中关注“REPORTING BUGS”。

标签: parallel-processing solaris


【解决方案1】:

我不知道这是否是你的问题,但你的问题对我来说有谷歌的汁液,也许我可以帮助有同样问题的人。

这是我第一次使用 GNU 并行,我在我的 bash 脚本上设置了 PARALLEL=1 作为一个标志,您可以使用它来启用并行测试。当我运行它时,我看到了您的错误消息。即使我将测试命令剥离为简单的回显。但是在这个 bash 脚本之外,不会发生错误。嗯。

PARALLEL=2 导致“2: command not found”。

事实证明,这是由 GNU 并行读取的。

来自手册页:

$PARALLEL
      The environment variable $PARALLEL will be used as default options for GNU parallel. If the variable
      contains special shell characters (e.g. $, *, or space) then these need to be to be escaped with \.

1 可以解释为 GNU 并行的参数。它不以破折号开头,因此被解释为命令。

【讨论】:

  • 我最终摆脱了 Solaris 11 并安装了 Debian 7。不幸的是,我没有更多的时间来调试这个问题。感谢您的帮助!
  • 是的,我确实遇到了这个问题,花了几个小时试图找出到底出了什么问题。我认为这是一个错误,parallel 不会验证选项,而是以某种方式将其添加到要执行的命令之前。我使用 --plain 忽略了 PARALLEL 变量。谢谢。
猜你喜欢
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2012-03-06
  • 1970-01-01
  • 2013-06-07
  • 2011-11-28
  • 1970-01-01
相关资源
最近更新 更多