Java-JSCH的SSH連接遠程主機無法獲得環境變量的問題

問題現象

用SSH工具連接主機,手動執行程序,正常。

通過平臺WEB網頁方式連接主機,執行程序,報錯,找不到Oracle庫文件。
測試中發現讀取到的環境變量少了很多。

分析

經過查詢資料,是因爲程序採用了non interactive + non login shell的方式。
hint:工具手動SSH登錄是interactive + login shell方式。

所以無法讀取到全局配置:/etc/profile
詳細的原理:交互方式/登錄shell,參考其他資料吧。
這裏借一張圖說明幾種方式的不同:
登錄/交互

解決辦法

最簡單的解決辦法就是把需要讀取環境變量放入用戶的~/.bashrc中。

小問題:由於平臺不知道應用的程序會讀取哪些環境變量,所以需要用戶自己把/etc/profile中已知需要用到的環境變量都在~/.bashrc中再寫一次……

似乎需要別的解決方案啊,呵呵呵……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章