2014-12-16 3 views
1

В настоящее время я разрабатываю простой сценарий развертывания для vms, работающего с ubuntu. Все эти машины должны запускать приложение java, предоставляемое как банку.Запустить java-приложение в качестве фонового процесса через ssh

Это соответствующая часть сценария установки Java, копирование баночки с локальной машины на удаленную машину, а затем запуск приложения:

ssh [email protected]$line -i ~/.ssh/key.pem -o StrictHostKeyChecking=no <java_installation.sh 
scp -i ~/.ssh/key.pem $JARFILE [email protected]$line:~/storagenode.jar 
ssh [email protected]$line -i ~/.ssh/key.pem <java_start_jar.sh 

установки с помощью скрипта java_installation.sh преуспевает, команда УПП делает также. Проблема возникает при попытке выполнить команды в 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 не работает нормально как фоновый процесс?

ответ

2

Перемещение & до конца строки

#!/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 
+0

Вау, просто, спасибо! Я новичок в Shellscripts, поэтому извините меня;) – JaEb

+0

без проблем, рад помочь :) –

Смежные вопросы