我如何使用java api杀死远程机器进程

| 如果一个进程是通过java runtime.exec(通过ssh)启动的,那么您如何回到该进程来杀死它(通过ssh)呢?一旦启动,是否有办法获取被调用进程的PID?如果可以获取PID,是通过ssh发送\“ kill \”的唯一方法吗?
Process p;

public void startSomething()
{

 String[] cmd = {\"/usr/bin/ssh\", \"remoteIPAdd\", \"./prog\"};

 try
 {
   p = Runtime.getRuntime().exec(cmd);
 }
 catch(IOException e)
 { 
    System.out.print(\"Epic Fail\");
 }

}
public void stopSomething()
{

  //p.destroy if local would work but not remotely
  //How do I stop the remote process then?

}
    
已邀请:
        没有任何自动方法可以获取“ prog \”的远程计算机的PID。如果您可以控制prog的源代码,则可以将其PID输出到stdout,然后可以从Process中读取它。 假设您在* nix类型的计算机上...有了PID,要杀死它,您将需要使用ssh向远程计算机发送另一个命令。就像是
String[] cmdKill = {\"/usr/bin/ssh\", \"remoteIPAdd\", \"/bin/kill\", \"\"+pid};
被送入新流程应该可以解决问题。     

要回复问题请先登录注册