2013-03-26 272 views
1

我有一個start函數,我把它放在一個腳本駐留在遠程站點上,該函數的代碼如下所示。SSH命令無法啓動遠程java進程

function start() { 
    cd $install_dir 

    mkdir -p logs 

    export classpath=$classpath:$target_jar 
    nohup java -Xms2048m -Xmx8192m -server -XX:PermSize=128m -XX:MaxPermSize=256m \ 
     -XX:+PrintGCDetails -XX:+PrintGCDateStamps \ 
     -XX:-OmitStackTraceInFastThrow \ 
     -cp $target_jar $main_class >> logs/jvm.log 2>&1 & 

    echo "Service started, see logs" 
} 

當我嘗試調用該函數使用SSH ssh [email protected] "./service.sh start",我無法啓動的java程序,我只得到了「服務已啓動,請參閱日誌」,有沒有錯誤的響應消息中,jvm.log是也是空的。很明顯,我的腳本已經執行,但目標java進程沒有運行。

如果我登錄到該遠程站點,並執行./service.sh start,它的工作原理。

回答

0

由於您能夠手動運行該服務,所以ssh和腳本部分沒有問題。

可能出現的問題是環境。例如,你提到了沒有絕對路徑的java。因此,你可能會運行它的不同版本。共享庫加載變量(LD_LIBRARY_PATH)也可能具有不同的值。

最後檢查文件權限