В рамках развертывания приложения я использую Hudson для запуска встроенного приложения на сервере удаленного выпуска. Это можно сделать, указав шаг после сборки с помощью параметра «Выполнить оболочку».
Я копирую сценарий deploy.sh на удаленный сервер и выполняю его через ssh, например,
scp /opt/myapp/deploy.sh myapp@myserver:/export/home/myapp/scripts/
ssh myapp@myserver "/export/home/myapp/scripts/deploy.sh"
Сценарий deploy.sh запускает приложение Java, а затем записывает PID в файл, например,
java -jar /opt/myapp/myapp.jar > /opt/myapp/myapp.log &
echo $! > /var/run/myapp/myapp.pid
(Примечание: до этого есть шаги - например, разархивировать пакет развертывания)
Странно то, что когда я запускаю сборку Hudson, она зависает после выполнения через SSH сценария deploy.sh. Приложение Java запускается и правильный PID записывается в файл. Похоже, что Хадсон не смог обнаружить, что сценарий завершен. Если я выберу шаг запуска Java, он не завершится без проблем.
Кто-нибудь может увидеть, что я пропустил?
Спасибо
Andrew