У меня есть сценарий оболочки на удаленной машине Linux, который содержит следующее:
#!/bin/sh
for i in $(seq 1 10);
do
echo "CREATE TABLE ben$i (id NUMBER NOT NULL);
! sleep 30
select * from ben$i;
! sleep 30
DROP TABLE ben$i;" | sqlplus system/password &
done
wait
Имя этого сценария - ben.sh.
В Java, я хочу выполнитьэтот сценарий и продолжайте выполнение сценария в фоновом режиме.
У меня есть команда для успешного выполнения сценария:
sshshell.execute("su - oracle -c './ben.sh'");
Я хочу, чтобы сценарий по-прежнему выполнялся на удаленной машине Linuxи я хочу закрыть соединение ssh сразу после того, как я выполню команду выше, не вмешиваясь в сценарий.
Я подумал, если я поставлю & в конце этой команды, вот так:
sshshell.execute("su - oracle -c './ben.sh' &");
Но все же java-программа застряла и ожидает завершения сценария
Очень важное примечание: я не хочу использовать Threads ИЛИ какие-либо дополнительные ssh-соединения.
Какие у меня есть варианты?