2015-06-20 88 views
0

如果某个命令(在我的情况下为./karaf)在shell中运行一个子进程,接受它自己的命令,是否可以通过命令在脚本中执行随后列出的命令到子进程? 例如,将命令传递给shell中的子进程

sudo ./karaf

打开在接受其自己的命令的壳的方法。如果我从一个shell脚本运行这个命令,然后想运行命令

feature:install odl-openflowplugin-flow-services-u 

要运行在./karaf程序中,我该如何去做这件事?

谢谢!

回答

1

您可以重定向命令karaf,如:

./sudo karaf < echo 'feature:install' 

但我不建议你这样做。你会发现shell会将命令imidiatelly传递给karaf,而karaf并不准备接受这些命令(我认为karaf需要一些时间来初始化它自己)

相反,你最好通过karaf客户端来执行命令。

./bin/client feature:install 
+0

这正是我所需要的!不幸的是,当使用sudo ./client功能时,我收到一条错误消息:install 197 [pool-2-thread-2] WARN org.apache.sshd.client.keyverifier.AcceptAllServerKeyVerifier - Server at /0.0.0.0:8101提供未经验证的密钥: 你知道这可能是什么原因吗? –

+0

说实话我到目前为止还没有和karaf一起工作。我在客户端使用了servicemix容器。看起来像apache监听端口8010的ssh连接。并且afaik ssh为身份验证生成公钥。这篇文章应该为你清除一些事情。 http://karaf.apache.org/manual/latest/users-guide/start-stop.html#Connect – deathangel908

+0

我想通了。感谢你的回答。 :) –

相关问题