Задача Ant sshexec не может выполнить удаленный файл сценария отдельно от сеанса

#bash #unix #jenkins #ant #jboss

#bash #unix #дженкинс #ant #jboss

Вопрос:

У меня есть сценарий Ant, который должен быть вызван из Jenkins, который — после других задач развертывания — запускает сервер JBoss. Пакет развертывания уже содержит сценарий запуска, который завершает сценарий запуска JBoss:

 [...]/bin/run.sh -b ip -c config >/dev/null 2>amp;1 amp;
 

Сценарий запуска выполняется нормально при выполнении вручную (т.е. ssh на сервер и sudo./startup.sh )

Теперь у меня возникли проблемы с вызовом этого сценария запуска из sshexec задачи. Задача может выполнить сценарий запуска, и JBoss запускается, но завершается, как только задача возвращается и переходит к следующей задаче — аналогично run.sh прямому запуску и закрытию сеанса.

Моя задача довольно стандартная

 <sshexec host="host" username="username" password="password"
command="echo password | sudo -S sh ${JBOSS_HOME}/server/config/startup.sh" />
 

Я в замешательстве. Разве приведенный выше сценарий запуска не должен уже включать запуск JBoss отдельно от сеанса? Есть идеи, как это решить?

Удаленная система — Redhat 6.

Ответ №1:

Неважно, я нашел это. Все еще необходимо объединить nohup и выполнить фоновый запуск со сценарием запуска. Плюс «грязный обходной путь» отсюда https://unix.stackexchange.com/questions/91065/nohup-sudo-does-not-prompt-for-passwd-and-does-nothing (на самом деле было блестяще)

Конечный результат:

 echo password | sudo -S env amp;amp; sudo sh -c 'nohup startup.sh > /dev/null 2>amp;1 amp;'