Execute o aplicativo java como processo em segundo plano via ssh

Atualmente, estou desenvolvendo um script de implantação simples para vms executando o ubuntu. Todas essas máquinas devem executar um aplicativo java fornecido como um jar.

Esta é a parte relevante do script instalando o java, copiando um jar da máquina local para a máquina remota e iniciando o aplicativo:

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

Se a instalação via script java_installation.sh for bem-sucedida, o comando scp também. O problema ocorre ao tentar executar os comandos no java_start_jar.sh via 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

Os scripts iniciam a execução do arquivo .jar, mas simplesmente bloqueiam. Ssh não retorna, o restante do código local é executado somente após o fechamento manual da conexão. Alguma idéia de por que o aplicativo java não está sendo executado corretamente como um processo em segundo plano?

questionAnswers(1)

yourAnswerToTheQuestion