0
因此,我有兩臺Linux機器,我在機器A上運行一個java代碼,並在機器B上運行一些模擬。我可以通過結果返回的方式是什麼在計算完成時加工A(我不想使用數據庫)。如果按預期執行,結果主要是每個模塊的狀態消息。還有如何跟蹤機器B模擬運行的狀態(我可以檢查進程的PID,如果存在,那麼作業正在運行,但有沒有更好的方法)。計算機B具有一定的安全限制,就像我不能打開一個端口等在兩臺機器上運行的進程之間的通信
因此,我有兩臺Linux機器,我在機器A上運行一個java代碼,並在機器B上運行一些模擬。我可以通過結果返回的方式是什麼在計算完成時加工A(我不想使用數據庫)。如果按預期執行,結果主要是每個模塊的狀態消息。還有如何跟蹤機器B模擬運行的狀態(我可以檢查進程的PID,如果存在,那麼作業正在運行,但有沒有更好的方法)。計算機B具有一定的安全限制,就像我不能打開一個端口等在兩臺機器上運行的進程之間的通信
使用jSCH
JSch shell = new JSch();
session = shell.getSession(userName, serverIP, 22);
session.setPassword(password);
session.setTimeout(timeout);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("shell");
input = new InputStreamReader(channel.getInputStream(), encoding);
output = new PrintStream(channel.getOutputStream());
channel.connect();
output.write ("/home/test/runCommand");
// result
while ((ch = input.read() != -1) {....}
謝謝@ user2310289 – kunal
您使用jsch運行你的ssh?如果是這樣的話,如果你創建了一個'shell'通道,你可以使用通道輸出流回寫結果 –
在機器A上使用消息使用者來監聽在SSH腳本完成時會發布消息的主題。 –