Uruchamianie procesu w tle dla zadania rurociągu


15

Szukam sposobu na uruchomienie procesu Java w tle przy użyciu deklaratywnego potoku Jenkins. Poniżej znajduje się fragment kodu

stage('Deploy'){
        steps{
            script{
                withEnv(['BUILD_ID=dontkill']) {
                    sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
                }
            }
        }
}

Już wiem o ProcessTreeKiller z Jenkins i każda odpowiedź sugeruje, aby zrobić to samo. Próbowałem używać środowiska w bloku kroków bez powodzenia.

Wersja Jenkins: 2.60.1

Wtyczka potoku: 1.1.7

Każda pomoc jest mile widziana.


Co się dzieje? Komunikat o błędzie? Cicha porażka?
B Warstwa

Nie mam uruchomionego procesu Java. To ostatni etap w moim przygotowaniu, więc domyślam się, że Jenkins zaczyna go i kończy w następnej chwili.
Dharanidhar

Co się stanie, gdy uruchomisz polecenie bezpośrednio na urządzeniu slave? Zaloguj się do agenta / hosta podrzędnego, przejdź do obszaru roboczego zadania (lub jeśli został wyczyszczony ręcznie skopiuj gdzieś plik wojny gdzieś ... /tmpna przykład) i uruchom wszystko między podwójnymi cudzysłowami.
B Warstwa

Ponadto, jeśli obszar roboczy nie został wyczyszczony, poszukaj pliku o nazwie nohup.out w dowolnym katalogu, który uruchomiłaby komenda powłoki. nohup automatycznie loguje się do takiego pliku, gdy dane wyjściowe nie są przekierowane w inny sposób.
B Warstwa

@BlairM ten sam skrypt działa poprawnie, gdy próbuję go z użytkownikiem jenkins za pomocą nieinteraktywnej powłoki. Podwójne cytaty nie mają znaczenia. nohup.out jest obecny, ale ma 0 KB.
Dharanidhar,

Odpowiedzi:


16

Każdy, kto boryka się z tym samym problemem i korzysta z projektu potoku, JENKINS_NODE_COOKIEzamiast tego ustawia BUILD_ID.

Nie trać ustawienie czasu HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIElub JENKINS_SERVER_COOKIE. Żadne z nich nie działa w projekcie rurociągowym.

Więcej informacji można znaleźć na stronie https://issues.jenkins-ci.org/browse/JENKINS-28182 .


1
Zaraz, to trochę w środku baseballu. Dobrze wiedzieć.
B Layer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.