Я использую библиотеку sshj для java.Автоматически закрыть и отключить сеанс java sshj
Мне нужно открыть сеанс ssh на удаленном сервере, выполнить команду, которая может работать в течение нескольких минут, а затем продолжить выполнение в моем java-коде. Когда команда, запущенная на удаленном сервере, будет завершена, я хотел бы закрыть сессию ssh и отключить sshclient.
Я видел следующий код:
public class Exec {
public static void main(String... args) throws IOException {
final SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("localhost");
try {
ssh.authPublickey(System.getProperty("user.name"));
final Session session = ssh.startSession();
try {
final Command cmd = session.exec("ping -c 1 google.com");
System.out.println(IOUtils.readFully(cmd.getInputStream()).toString());
cmd.join(5, TimeUnit.SECONDS);
System.out.println("\n** exit status: " + cmd.getExitStatus());
} finally {
session.close();
}
} finally {
ssh.disconnect();
}
}
}
В принципе, я не хочу ждать команды до конца (не cmd.join
вызова) и мне нужно session.close()
и ssh.disconnect()
будет вызываться автоматически после того, как команда вышла. Это возможно?