2014-06-11 39 views
4

我已經運行了Tomcat 7和Fabric的問題。我可以遠程阻止tomcat。不幸的是,我無法用python結構來啓動它。它給了我一個輸出,並沒有錯誤的跡象,但仍然沒有啓動tomcat。 這是我的布命令:使用Fabric遠程啓動Tomcat

@task 
def start_tomcat(): 
    sudo('/opt/tomcat/bin/startup.sh') 

輸出繼電器:

[bw.node1] Executing task 'start_tomcat' 
Starting Tomcat 
[bw.node1] run: echo $JAVA_HOME 
[bw.node1] out: /usr/lib/jvm/java-1.6.0 
[bw.node1] out: 

[bw.node1] sudo: ./startup.sh 
[bw.node1] out: sudo password: 
[bw.node1] out: Using CATALINA_BASE: /opt/tomcat 
[bw.node1] out: Using CATALINA_HOME: /opt/tomcat 
[bw.node1] out: Using CATALINA_TMPDIR: /opt/tomcat/temp 
[bw.node1] out: Using JRE_HOME:  /usr/lib/jvm/java-1.6.0 
[bw.node1] out: Using CLASSPATH:  /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar 
[bw.node1] out: 


Done. 
Disconnecting from bw.node1... done. 

並且仍然什麼也沒有發生。我也檢查過catalina.out,而tomcat沒有啓動。

回答

10

最後,我能夠弄清楚如何使用結構遠程啓動tomcat。

該問題出現在後臺任務中,因爲命令結束時會被終止。

解決方案很簡單:只需添加「set -m;」命令前的前綴。 完整的面料命令應該是:

sudo('set -m; /opt/tomcat/bin/startup.sh') 

Source

+1

老兄你的輝煌! – laike9m

+0

不錯的解決方案。謝謝。什麼是''set -m''? – Spike

+0

很高興幫助!此選項用於:後臺進程在單獨的進程組中運行,並且在完成後打印包含其退出狀態的行。 –