我正在使用JSch從後臺Java進程遠程啓動python腳本。使用JSch執行命令
修改JSch包中包含的Shell.java示例,我已成功安裝JSch,連接到我的Pi,甚至註釋掉用戶/域/密碼/主機密鑰檢查提示框,以便存儲這些值直接在我的Java代碼中。
我的Java代碼登錄到遠程皮後,我想它來發送類似
sudo nohup python2 myFoo.py & disown
到終端。
在Shell.java示例我修改,我看到重定向通道對象的輸入和輸出流的代碼行以System.in
和System.out
但我想簡單地手動上述線注入所述遠程終端並斷開連接。
爲什麼/我的目標是:
我有一個Pi的小網狀網絡,在一天中的大部分時間都運行腳本。 我想消除停機時間,但代碼有時會在連續循環3-4天后停止工作(有時在代碼錯誤出現和停止之前,只要一個星期)。
在每個節點上運行的腳本使用「上次簽入」字段更新mySQL數據庫。
我希望用Java編寫一個小的後臺程序,將我的服務器上運行下去,勾選「在最後一次檢查」爲每個站飄飛,如果它注意到一個節點下去,遠程SSH進去和sudo reboot now
,等待約60-100秒,然後sudo nohup python2 myFoo.py & disown
您可以直接寫入到輸出流,就像你會爲一個文件,我們的插座,從輸入流讀取同樣的方式 – MadProgrammer
[這個例子](http://stackoverflow.com/questions/20560240/send-command-via-ssh-and-read-ouput-results/20560773#20560773)可能有幫助 – MadProgrammer