Запустите фоновый процесс с шага сборки TeamCity - PullRequest
0 голосов
/ 30 января 2020

Когда я пытаюсь запустить фоновый процесс из моего Custom Script Step Runner в TeamCity, я вижу, что он завершает фоновый процесс, как только шаг завершается. Есть ли способ сохранить фоновый процесс запущенным?

Вот что я пытаюсь сделать на своем шаге:

ORACLE_POD_NAME=`...complex logic here...`

oc port-forward $ORACLE_POD_NAME 15210:1521 &
PORT_FORWARD_PID=$!

echo $PORT_FORWARD_PID > port_forward.pid

Идея состоит в том, чтобы создать постоянный порт, перенаправленный на мой модуль OpenShift на время сборки b / c многим последующим шагам сборки она понадобится. Затем я убил бы процесс переадресации порта, используя PID, который я записал в файл.

К сожалению, oc port-forward завершается, как только завершается шаг. Есть ли способ заставить это работать?

1 Ответ

0 голосов
/ 30 января 2020

Решение состояло в том, чтобы отключить входы и выходы фонового подпроцесса, который я запускаю от родительского процесса, и сказать подпроцессу не отвечать на сигнал HUP (hangup).

nohup oc port-forward $ORACLE_POD_NAME 15210:1521 > /dev/null 2>&1 </dev/null &
PORT_FORWARD_PID=$!

Это гарантирует, что процесс переадресации портов переживает завершение шага TeamCity, что делает переадресацию портов доступной для последующих шагов сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...