2015-06-20 111 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

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

相關問題