Я выполняю некоторые команды, используя SSHJ, я делаю это следующим образом:
private Command executeCommand(String command, SSHClient client) {
Command commandObject = client.startSession().exec(command);
commandObject.join();
return commandObject;
}
Это работает хорошо, пока я не выполню эту команду:
cd $SOLR; nohup java -Dsolr.solr.home=./solr -DSTOP.PORT=8079 -DSTOP.KEY=stopkey -jar start.jar 2> logs/solr.log &
В этом случае вся программа зависает на
commandObject.join();
Конечно, процесс, который он запускает, запущен. Также та же самая строка, выполненная из shell, сразу же возвращается.
Есть идеи, почему и как это преодолеть?
EDIT:
то же самое происходит, когда я не присоединяюсь (), но читаю команду (с помощью commons-io):
IOUtils.toString(commandObject.getInputStream()))