2012-12-03 24 views
0

我正在Web服務器上運行Java程序並將它傳遞給來自PHP變量的參數,並且我遇到了一些令人困惑的問題。我使用的Java程序似乎表現出不同的行爲,當我從shell運行它並使用PHP中的shell_exec()運行它時。Java程序的運行方式與shell不同,並且在PHP中使用exec()

如果我使用像膩子一個工具從命令行執行該程序,像這樣:

ksh runexample.ksh ClassName methodName 

它正常運行,這意味着程序發送請求,約20秒後接收從網關服務器它的響應連接到。然後,我可以通過在外部數據庫中查看結果記錄來看到通信成功。

現在,當我通過使用PHP腳本執行這個程序時,出現了這個問題。

shell_exec('path/ssh [email protected] "cd /path/path/examples/ ksh runexample.ksh ClassName methodName;') 

如果我加載此PHP腳本,後續代碼var_dump()的輸出,該程序似乎加載;但它給了我一個來自Java程序的簡短通用消息,如「在連接模式下運行的程序等等」,並且不輸出通常的響應。 PHP腳本幾乎立即使用此輸出加載頁面。此外,外部數據庫中不會創建任何記錄。

我在腳本中有set_time_limit(0),但是這個問題可能是由於shell_exec()在Java程序中的請求/響應完成之前以某種方式超時了嗎?

感謝您的任何見解/類似的經驗,我感謝幫助!

回答

2

這可能是由於按照您的方式運行應用程序時沒有(或其他).profile文件加載的事實。

我已經做了非常相似,你彷彿可以在這裏做一些事情,並結束了posting this question here,作爲後續this question這兩者現在可能是你有幫助。

相關問題