【问题标题】:"Command not found: grep" in karaf consolekaraf 控制台中的“找不到命令:grep”
【发布时间】:2011-11-26 18:02:38
【问题描述】:

Servicemix 版本 Fuse ESB 4.4.1 有一个奇怪的问题。

有时部分命令将无法加载且不可用。通常这种情况发生在我经常使用的命令 grep 中。如下所示:

karaf@root> 列表 | grep 春天

找不到命令:grep

这似乎是随机的,重新启动通常会有所帮助。对于以前版本的 Fuse ESB,它有时会发生,但非常罕见,现在它经常发生。谁能帮忙看看是什么原因造成的?

【问题讨论】:

    标签: osgi apache-karaf apache-servicemix


    【解决方案1】:

    也许完全不相关,但我在 Karaf 及其依赖项中遇到了许多启动时竞争条件。最重要的是,我提交的这个:

    https://issues.apache.org/jira/browse/KARAF-910 “FeatureService 和 ConfigAdmin 之间的竞赛以解决 mvn: URLs?”

    该特定缺陷仅在您对 pax-url-mvn 有一些非标准设置时才会出现,但这是 configadmin 异步应用设置的一般问题的症状,因此 configadmin 线程是否比主 OSGi 包启动线程。

    我没有看到任何与那场比赛有关的 Karaf 命令问题,但我的问题表面上很相似,因为某些捆绑服务随机无法启动。

    【讨论】:

    • 我认为这在某种程度上是相关的 - 新版本的 Servicemix 非常有问题:(
    • 有可能。这个错误似乎在最新的 (apache-servicemix-4.4.1-fuse-06-03) 版本中得到修复。
    【解决方案2】:

    “grep”命令有一个全名 - shell:grep。你可以试试看,例如使用相同的短(非限定)名称安装了另一个命令,它变得混乱。

    另一种可能是提供 grep 服务的包已停止,可能是意外。

    osgi:list -t 0 -s

    将按符号名称显示所有捆绑包的列表,其中包括这个:(数字可能不同):

    [  18] [Active     ] [Created     ] [   30] org.apache.karaf.shell.commands (2.2.3)
     karaf@root> osgi:stop 18
     You are about to access system bundle 18.  Do you wish to continue (yes/no): yes
     karaf@root> help | grep grep
     Command not found: grep
     karaf@root> osgi:start 18
     You are about to access system bundle 18.  Do you wish to continue (yes/no): yes
     karaf@root> help | grep grep
             shell:grep
    

    至于为什么要停止该捆绑包-也许某事(或某人)明确停止了它?还是意外停止了?

    【讨论】:

    • 它在启动时发生,并且某些命令集不可用。有时是列表命令本身。
    • 我会检查是否有东西在随机启动或停止捆绑。如果您停止该捆绑包,则命令将消失,但不会导致它们停止。
    猜你喜欢
    • 2016-05-20
    • 1970-01-01
    • 2017-10-08
    • 2022-06-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 2019-04-19
    • 1970-01-01
    相关资源
    最近更新 更多