两台机器上运行的进程之间的通信

时间:2014-03-06 05:58:18

标签: java linux process

所以,我有两台Linux机器,我在机器A上运行java代码并运行ssh在机器B上运行一些模拟。有什么方法可以在结束时将结果传回机器A.有计算(我不想使用数据库)。结果主要是每个模块的状态消息,如果它按预期执行。另外如何跟踪机器B的模拟运行状态(我可以检查进程的pid,如果它存在那么作业正在运行,但有没有更好的方法)。机器B有一些安全限制,比如我无法打开端口等。

1 个答案:

答案 0 :(得分:1)

使用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) {....}