在karaf控制台中“找不到命令:grep”

时间:2011-09-28 10:11:28

标签: osgi apache-karaf apache-servicemix

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

有时命令的一部分不会加载而不可用。通常情况下,我经常使用命令grep。这看起来如下:

  

karaf @根>列表| grep spring

     

找不到命令:grep

它似乎是随机的,重启通常有帮助。以前版本的Fuse ESB有时会发生,但非常罕见,现在经常发生。有人可以帮助,导致问题的原因是什么?

2 个答案:

答案 0 :(得分:1)

也许完全没有关系,但我在Karaf及其依赖项中遇到过一些启动时间竞争条件。最重要的是,我提交了这个:

https://issues.apache.org/jira/browse/KARAF-910   “在FeatureService和ConfigAdmin之间争用解析mvn:URL?”

如果您对pax-url-mvn有一些非标准设置,那么这个特定缺陷只会出现,但这是configadmin异步应用设置的一般问题的症状,所以如果configadmin线程比它更快或更慢,这很重要主OSGi捆绑启动线程。

我没有看到任何与该种族相关的Karaf Command问题,但我的问题表面上看似乎有些捆绑服务随机无法启动。

答案 1 :(得分:0)

'grep'命令有一个全名 - shell:grep。您可以尝试查看是否另一个命令已经安装了相同的短(不合格)名称,并且它变得混乱。

另一种可能性是提供grep服务的bundle已经停止,可能是偶然的。

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

至于为什么要停止捆绑 - 也许某事(或某人)明确地停止了它?或者它被意外停止了?