현재 Java 용 Ganymed-SSH2-Library를 사용하여 ssh-server에서 일부 명령을 실행하려고합니다. 또한 perl 스크립트를 호출해야하기 때문에 Session.execCommand();
을 사용할 수 없습니다. "정상적인"unix-commands를 실행하기 때문입니다 (또는 이것이 잘못된 것입니까?). 대신 의사 터미널을 사용해야합니다. 나는 다음과 같은 코드를 실행하면Java Ganymed-SSH - 버퍼에서 읽는 중 멈춤
는 응답 :
session = con.openSession();
session.requestPTY("vt220");
session.execCommand("/bin/bash");
session.getStdin().write("echo test".getBytes());
int b = 1;
InputStream is = new StreamGobbler(session.getStdout());
while ((b = is.read()) != -1) {
System.out.print((char)b);
}
System.out.println("finished");
는 다음과 같은 출력 (검열 USERNAME 및 HOST)가 발생합니다 :
echo [email protected]:~
# echo test
하지만 코드가이 시점에서 중지 결코 것 도달 범위 System.out.println("finished");
다음 코드를 실행하면 연결 빌드가 제대로 작동합니다.
session = con.openSession();
session.execCommand("ls");
BufferedReader reader = new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout())));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
System.out.println(line);
}
System.out.println("finished");
문제가있는 사람은 누구입니까? 몇 시간 전 Jsch (다른 SSH-Lib for Java)를 사용해 보았지만 동일한 문제가 있습니다.
미리 감사합니다 :)
내게 다음과 같은 출력을 주지만, 또한 멈 춥니 다 :'echo test; exitUSER @ HOST : ~ # echo test; exit' – user1571117
Ganymed에 대해 모르겠지만 JSch에서 같은 결과를 얻었습니까? – ymnk
그 중 하나도 작동하지 않습니다 :(이전처럼 응답하지 않습니다. – user1571117