Запустите Java-приложение в качестве фонового процесса через SSH

В настоящее время я разрабатываю простой сценарий развертывания для VMS под управлением Ubuntu. Все эти машины должны запускать Java-приложение, предоставленное как jar.

Это соответствующая часть скрипта, устанавливающая java, копирующая jar с локального компьютера на удаленный компьютер и затем запускающая приложение:

ssh ubuntu@$line -i ~/.ssh/key.pem -o StrictHostKeyChecking=no <java_installation.sh
scp -i ~/.ssh/key.pem $JARFILE ubuntu@$line:~/storagenode.jar
ssh ubuntu@$line -i ~/.ssh/key.pem <java_start_jar.sh

установка через скрипт java_installation.sh завершается успешно, команда scp также работает. Проблема возникает при попытке выполнить команды в java_start_jar.sh через ssh. java_start_jar.sh:

#!/bin/sh
# this script starts a jar file and creates a shellscript which can be used to stop the execution.
nohup java -jar ~/storagenode.jar & > ~/storagenode.log
pId=$!
echo "kill $pId" > ~/stop_storagenode.sh
chmod u+x ~/stop_storagenode.sh

Скрипты запускают выполнение файла .jar, но затем просто блокируют. Ssh не возвращает, остальная часть локального кода выполняется только после закрытия соединения вручную. Есть идеи, почему Java-приложение не работает как фоновый процесс?

Ответы на вопрос(1)

Ваш ответ на вопрос