I started Apache Karaf 3.0.0 in server mode using $KARAF_HOME/bin/start
in CentOS 6.5. Then I wanted to run several commands using $KARAF_HOME/bin/client
and also capture the output of these commands, so as to make sure the commands ran successfully. The output did get spit out on my console but I was never able to redirect it into a file. Seems like Karaf doesn't write anything to the output stream or error stream. I tried the following:
[apache-karaf-3.0.0]$ ./bin/start clean
[apache-karaf-3.0.0]$ ./bin/client "bundle:list"
Logging in as karaf
282 [pool-2-thread-3] WARN org.apache.sshd.client.keyverifier.AcceptAllServerKeyVerifier - Server at /0.0.0.0:8101 presented unverified key:
START LEVEL 100 , List Threshold: 50
ID | State | Lvl | Version | Name
------------------------------------------------------------------------------------
91 | Active | 80 | 1.8.0 | Commons Codec
92 | Active | 80 | 2.6 | Commons Lang
93 | Active | 80 | 15.0.0 | Guava: Google Core Libraries for Java
[apache-karaf-3.0.0]$ ./bin/client "bundle:list" >& bundleList
[apache-karaf-3.0.0]$ cat bundleList
null
Nothing got written to the file bundleList
. Piping the output doesn't seem to help either.
Apache Karaf is powered by OSGi (but you don't need to know what OSGi is to use Karaf). Apache Karaf uses either the Apache Felix or Eclipse Equinox OSGi frameworks, providing additional features on top of the framework.
If you're running from the main console, exiting the shell using logout or Ctrl+D will also terminate the Karaf instance.
The Karaf web console provides a graphical overview of the runtime. You can use it to: install and uninstall features. start, stop, install bundles. create child instances.
To make Aviv's solution work, simply use a pipe, e.g. "bundle:list | tac -f /tmp/yourfile"
I'm able to capture client output in Karaf version 3.0.2 .
user@hostname:~$ client bundle:list > bundleinfo.txt
This results in following debug info on the console:
2053 [sshd-SshClient[36c8e545]-nio2-thread-2] WARN org.apache.sshd.client.keyverifier.AcceptAllServerKeyVerifier - Server at [/0.0.0.0:8101, DSA, xx:xx:xx:xx:xx:xx:xx:c 2:3a:5a:9b:87:ed:e0:b2:6a] presented unverified {} key: {}
..and of course the bundleinfo.txt file with content as expected:
user@hostname:~$ head -5 bundleinfo.txt
START LEVEL 100 , List Threshold: 50
ID | State | Lvl | Version | Name
---------------------------------------------------------------------------------------------
38 | Active | 80 | 3.2.5.RELEASE | Spring Security Core
39 | Active | 80 | 1.0.0.1 | Apache ServiceMix :: Bundles :: javax.inject
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With