서버를 다시 시작하지 않고 Jenkins에서 멈추지 않는 좀비 작업을 중지하는 방법은 무엇입니까?


178

Jenkins 서버에 3 일 동안 실행 된 작업이 있지만 아무것도하지 않습니다. 모서리에있는 작은 X를 클릭해도 아무 것도 수행되지 않으며 콘솔 출력 로그에도 아무 것도 표시되지 않습니다. 빌드 서버를 확인했는데 실제로 작업이 전혀 실행되지 않는 것 같습니다.

젠킨스에게 파일이나 잠금 등을 편집하여 작업이 "완료"되었다고 알리는 방법이 있습니까? 많은 작업이 있으므로 서버를 다시 시작하고 싶지 않습니다.


1
최신 버전의 Jenkins에서 솔루션이 허용 된 것으로 표시되지 않았습니다. (그러나 '16 년 중 하나)
NicolasW

답변:


213

"Jenkins 관리"> "스크립트 콘솔"로 이동하여 서버에서 스크립트를 실행하여 중단 스레드를 중단하십시오.

모든 라이브 스레드를 가져 Thread.getAllStackTraces()오고 걸려있는 스레드를 중단 할 수 있습니다 .

Thread.getAllStackTraces().keySet().each() {
  t -> if (t.getName()=="YOUR THREAD NAME" ) {   t.interrupt();  }
}

최신 정보:

스레드를 사용하는 위의 솔루션은 최신 Jenkins 버전에서 작동하지 않을 수 있습니다. 고정 된 파이프 라인을 중단하려면 대신 alexandru-bantiuc에 의한 솔루션을 참조하여 다음 을 실행하십시오.

Jenkins.instance.getItemByFullName("JobName")
                .getBuildByNumber(JobNumber)
                .finish(
                        hudson.model.Result.ABORTED,
                        new java.io.IOException("Aborting build")
                );

48
잘 했어! 읽는 사람이라면 먼저 다음을 호출하여 메소드를 호출하여 스레드 이름을 볼 수 있습니다.t -> println(t.getName());
Phil

2
여전히 위의 스크립트에서도 작동하지 않지만 스크립트를 가져 오지만 동일한 스크립트는 죽이지 않습니다.
Raghav S

2
에서 이름을 일치시킨 후 특정 스레드의 이름을 인쇄 할 수 t.getName()=="SOME NAME"있습니까?
Zahra

3
이것은 나에게 도움이되지 않습니다-스레드가 인터럽트 ()에 반응하지 않습니다.
Zitrax

2
나를 위해 인터럽트가 충분하지 않았기 때문에 t.stop대신 전화해야 했습니다.Thread.getAllStackTraces().keySet().each() { t -> if (t.getName()=="YOUR THREAD NAME" ) { println(“Found, stopping now… “); t.stop(); } }
금요일

258

나는 또한 같은 문제가 있었고 Jenkins Console을 통해 수정했습니다.

"Jenkins 관리"> "스크립트 콘솔"로 이동하여 스크립트를 실행하십시오.

 Jenkins .instance.getItemByFullName("JobName")
        .getBuildByNumber(JobNumber)
        .finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build")); 

JobName과 JobNumber를 지정하면됩니다.


다른 작업을 시작한 파이프 라인 작업으로이 작업을 수행했습니다. 서버가 추락하고 다른 작업은 사라졌지 만 파이프 라인 작업은 여전히 ​​좀비였습니다. 나는 먼저 대답을 시도했지만 아무 소용이 없었다. 파이프 라인 작업의 진행률 표시 줄이 약간 움직이는 것을 볼 때마다 @Alexandru의 명령을 여러 번 실행해야했습니다. 마지막으로 파이프 라인 작업이 종료되었고 적절한 조치를 취하기 위해이를 삭제했습니다.
Amedee Van Gasse

18
이것은 다중 브랜치 프로젝트에도 효과적이지만 핵심은 JobName을 Jenkins.instance.getItemByFullName ( "<project-name> / <branch-name>")으로 지정하는 것입니다.
evasilchenko

22
이 답변은 문제를 해결하는 데 도움이되었습니다. 파이프 라인은 총 좀비였습니다. 위의 스크립트가 작동하지 않았으며 몇 개의 jenkins를 다시 시작한 후에도 파이프 라인이 계속 실행 중입니다. 내부 클래스 문서를 읽고 delete () 메소드를 찾았으므로 스크립트가 다음과 같이 Jenkins.instance.getItemByFullName("JobName").getBuildByNumber(JobNumber).delete();보입니다.
Szymon Sadło

5
finishAbstractBuild 나 FreeSyleBuild, MavenModulesetBuild 에는 메소드가 없습니다.
Jakub

3
이 스크립트를 실행할 때 문제가 있습니까? groovy.lang.MissingMethodException: No signature of method: hudson.model.FreeStyleBuild.finish() is applicable for argument types: (hudson.model.Result, java.io.IOException) values: [ABORTED, java.io.IOException: Aborting build] Possible solutions: find(), findAll(), find(groovy.lang.Closure) at
Tien Dung Tran

31

경우에 당신은 가지고 Multibranch 파이프 라인 -job을 (당신은 젠킨스 - 관리자입니다)에서의 사용 젠킨스 스크립트 콘솔 이 스크립트 :

Jenkins.instance
.getItemByFullName("<JOB NAME>")
.getBranch("<BRANCH NAME>")
.getBuildByNumber(<BUILD NUMBER>)
.finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"));

에서 https://issues.jenkins-ci.org/browse/JENKINS-43020

작업의 전체 이름 (경로)이 무엇인지 확실하지 않은 경우 다음 스 니펫을 사용하여 모든 항목의 전체 이름을 나열 할 수 있습니다.

  Jenkins.instance.getAllItems(AbstractItem.class).each {
    println(it.fullName)
  };

에서 https://support.cloudbees.com/hc/en-us/articles/226941767-Groovy-to-list-all-jobs


이것에 사이드 참고 : SVN을 사용하는 (그리고 당신이 표준 규칙에 따라) 경우, <BRANCH 이름>과 같이 될 것입니다 지점 / my_branch
tvt173

25

이 작업에 모니터링 플러그인 을 사용 합니다 . 플러그인 설치 후

  1. Jenkins 관리> Hudson / Jenkins 마스터 모니터링으로 이동하십시오.
  2. 오른쪽의 작은 파란색 링크 인 스레드 세부 사항을 펼치십시오.
  3. 중단 된 작업 명 검색

    스레드 이름은 다음과 같이 시작됩니다

    Executor #2 for master : executing <your-job-name> #<build-number>

  4. 원하는 작업이있는 행 표의 오른쪽에있는 빨간색, 둥근 버튼을 클릭하십시오.


3
그것은 죽었다고하지만, 다시 페이지를 새로 고치면 스레드가 살아있는 것 같습니다
Raghav S

흥미 롭군 나는 이것을 볼 것이다. 아마도 빌드에 달려 있습니다. ANT 또는 Maven 확장으로 외부 프로세스를 시작한 경우 실패 할 수 있습니다.
cheffe

이것은 나를 위해 일한 솔루션입니다. 스레드 목록에 들어가서 작업 이름을 검색하고 빨간색 버튼을 클릭했습니다. jenkinsServer / monitoring # threads
Gilberto Treviño

24

"스크립트 콘솔"로 중지 할 수없는 빌드가 발생했습니다. 마지막으로 다음 단계로 문제를 해결했습니다.

ssh onto the jenkins server
cd to .jenkins/jobs/<job-name>/builds/
rm -rf <build-number>
restart jenkins

실제로 내 경우에 도움이되었습니다 : 콘솔을 통해 죽일 때 작업이 더 이상 존재하지 않았습니다 (동적 파이프 라인 작업, 기능 분기가 삭제됨)
mkko

24

첫 번째 제안 된 솔루션은 매우 가깝습니다. interrupt () 대신 stop ()을 사용하면 그루비 시스템 스크립트에서 끝없이 실행되는 런 어웨이 스레드도 죽입니다. 이것은 작업을 위해 실행되는 모든 빌드를 종료합니다. 코드는 다음과 같습니다.

Thread.getAllStackTraces().keySet().each() {
    if (it.name.contains('YOUR JOBNAME')) {  
      println "Stopping $it.name"
      it.stop()
    }
}

4
허용되는 답변이어야하는 IMO. 빌드가 이미 중단 된 상태이지만 빌드 후 단계에 매달려 있기 때문에 다른 모든 답변은 저에게 효과적이지 않았습니다. 이 솔루션 만이 실제로 빌드를 중단했습니다
Kutzi

1
contains여기에서 사용하는 것은 정확하지 않으며 위험합니다. 작업 이름이 "테스트 실행"인 경우 "테스트 실행-통합", "테스트 실행-단위"등의 작업도 종료됩니다.이를 사용하는 사람은주의하지 않아야합니다. 관련없는 작업을 예기치 않게 종료
Brandon

13

중지 할 수없는 파이프 라인 작업이있는 경우 다음을 시도하십시오.

  1. 빌드 진행률 표시 줄 옆에있는 빨간색 X를 클릭하여 작업을 중단하십시오.
  2. 빌드에서 "일시 중지 / 다시 시작"을 클릭하여 일시 중지
  3. "일시 정지 / 재개"를 다시 클릭하여 빌드를 다시 시작하십시오.

파이프 라인 작업 일시 중지 / 재개

Jenkins는 작업을 종료하고 빌드를 중지해야 함을 인식합니다.


8
이 메뉴 항목이 없습니다.
papaiatis

13

스크립트 콘솔 또는 추가 플러그인을 사용하지 않고도 수행 할 수 있습니다 단순히 빌드 중단 입력하여 /stop, /term또는/kill 브라우저에서 빌드 URL 후.

위의 링크에서 구두로 인용 :

파이프 라인 작업은 빌드의 URL 엔드 포인트에 HTTP POST 요청을 보내 중지 할 수 있습니다.

  • <빌드 ID URL> / 중지 -파이프 라인을 중단합니다.
  • <BUILD ID URL> / term- 강제로 빌드를 종료합니다 (중지가 작동하지 않는 경우에만 사용해야합니다).
  • <BUILD ID URL> / kill- 파이프 라인을 강제 종료합니다. 이것은 파이프 라인을 막는 가장 파괴적인 방법이며 최후의 수단으로 만 사용해야합니다.

7

이러한 경우 빌드 타임 아웃 플러그인 이 유용 할 수 있습니다. 너무 오래 걸리면 작업이 자동으로 종료됩니다.


1
불행히도 그것은 우리에게 옵션이 아닙니다. 며칠 동안 실행해야하는 몇 가지 작업이 있기 때문입니다 (요청하지 마십시오)
blokkie

7
작업별로 빌드 시간 초과를 구성합니다.
Draco Ater

1
아니요, 타임 아웃이 95 분으로 설정된 상태에서 3 시간 이상 빌드가 멈췄습니다. 타임 아웃 플러그인이 수동으로 "Abort"를 클릭하는 것과 같은 방식으로 도움이되지 않는다고 생각합니다.
Jakub Bochenski

7

대답하기에는 너무 늦었지만 일부 사람들의 도움이 필요합니다.

  1. 모니터링 플러그인을 설치하십시오. ( http://wiki.jenkins-ci.org/display/JENKINS/Monitoring )
  2. jenkinsUrl / 모니터링 / 노드로 이동
  3. 하단의 스레드 섹션으로 이동
  4. 마스터 왼쪽의 세부 정보 버튼을 클릭하십시오
  5. 사용자 시간 (ms)별로 정렬
  6. 그런 다음 스레드의 이름을 보면 빌드의 이름과 번호가 표시됩니다
  7. 죽여

이미지를 게시 할 정도로 평판이 좋지 않습니다.

그것이 도움이되기를 바랍니다.


1
도움이되지 않는다고한다. 그러나 다시 페이지가 다시로드되면 Thread
Raghav S

빌드의 스레드 또는 빌드의 하위 스레드를 종료합니까? 이 스레드의 이름은 무엇입니까? 나는 당신이 좋은 것을 죽이지 않는 것 같아요. 빌드 스레드를 종료하면 빌드가 성공적으로 완료된 것을 볼 수 있습니다.
사이먼

2
작업 이름을 가진 슬레이브의 실행기 번호와 관련된 스레드를 죽이려고했습니다. 또한 GET 처리와 관련된 몇 가지 다른 스레드를 발견했으며 포함 된 정보는 Subversion과 관련이 있습니다. 둘 다 죽이는 것도 도움이되지 않았습니다. 마침내 다시 시작하면 도움이되었습니다. 또 다른 관찰은 SVN 연결이없는 다른 스레드는 죽일 수 있다는 것입니다.
Raghav S

이 답변은 1 개월 전에 게시 된 @cheffe 답변의 사본입니다.
t0r0X

6

가장 큰 대답 은 거의 효과가 있었지만 한 가지 큰 문제가 있습니다. 특히 Jenkins가 제대로 시작되지 않아서 좀비 작업이 너무 많아서 (~ 100) 매우 많았습니다. 따라서 작업 이름과 빌드 번호를 수동으로 찾고 모든 좀비 작업과 수동으로 죽일 수 없었습니다. 좀비 작업을 자동으로 찾아서 죽이는 방법은 다음과 같습니다.

Jenkins.instance.getItemByFullName(multibranchPipelineProjectName).getItems().each { repository->
  repository.getItems().each { branch->
    branch.builds.each { build->
      if (build.getResult().equals(null)) {
        build.doKill()
      }
    }
  }
}

이 스크립트는 모든 작업의 ​​모든 빌드를 반복 getResult().equals(null)하며 작업 완료 여부를 결정하는 데 사용 됩니다. 대기열에 있지만 아직 시작되지 않은 빌드는 반복되지 않으며 (빌드가 포함되지 않기 때문에 job.builds) 이미 완료된 빌드는 nullfor 이외의 것을 반환 합니다 build.getResult(). 합법적으로 실행되는 작업은 다음과 같은 빌드 결과를 갖습니다.null 도이므로이 작업을 실행하기 전에 종료하지 않으려는 실행중인 작업이 없는지 확인하십시오.

다중 분기 루프는 다중 분기 파이프 라인 프로젝트에서 모든 저장소에 대한 모든 분기 / PR을 발견하는 데 주로 필요합니다. Multibranch Pipelines를 사용하지 않는 경우 다음과 같이 직접 모든 작업을 반복 할 수 있습니다 Jenkins.instance.getItems().each.


3
스크립트를 약간 개선했습니다. runningBuilds = Jenkins.instance.getView('All').getBuilds().findAll() { it.getResult().equals(null) } runningBuilds.each { branch->branch.doKill() }
Tobi

5

Jenkins 소스를 살펴본 결과 작업 중단이 스레드 인터럽트를 통해 수행되는 것처럼 보이기 때문에 수행하려는 작업이 불가능한 것으로 보입니다. 나는 왜 일이 걸려 있는지 모르겠다 ..

편집하다:

막을 수없는 직업에 대한 가능한 이유 :

  • Jenkins가 무한 루프에 빠지면 중단 될 수 없습니다.
  • Jenkins가 Java VM 내에서 네트워크 또는 파일 I / O를 수행하는 경우 (예 : 긴 파일 복사 또는 SVN 업데이트) 중단 할 수 없습니다.

이것은 실제로 불가능하지 않습니다. jenkins 스크립트 콘솔을 사용하여 작업을 실행중인 스레드를 중단 할 수 있습니다. 여기 설명을 참조하십시오 : stackoverflow.com/a/26306081/1434041
Zahra

3

나는 보통 그런 경우 jenkins-cli를 사용합니다. 페이지에서 jar 파일을 다운로드 할 수 있습니다 http://your-jenkins-host:PORT/cli. 그런 다음 실행

java -jar jenkins-cli.jar delete-builds name_of_job_to_delete hanging_job_number

보조 정보 :

같은 빌드 범위를 전달할 수도 있습니다 350:400. 다음을 실행하여 사용 가능한 일반 도움말

java -jar jenkins-cli.jar help

delete-builds의해 컨텍스트 명령 도움말

java -jar jenkins-cli.jar delete-builds

3

Alexandru Bantiuc의 답변은 빌드를 중단하는 데 효과적 이었지만 내 유언 집행 인은 여전히 ​​바쁘게 나타났습니다. 다음을 사용하여 바쁜 실행기 상태를 지울 수있었습니다.

server_name_pattern = /your-servers-[1-5]/
jenkins.model.Jenkins.instance.getComputers().each { computer ->
  if (computer.getName().find(server_name_pattern)) {
    println computer.getName()
    execList = computer.getExecutors()      
    for( exec in execList ) {
      busyState = exec.isBusy() ? ' busy' : ' idle'
      println '--' + exec.getDisplayName() + busyState
      if (exec.isBusy()) {
        exec.interrupt()
      }
    }
  }
}

3

이 같은 문제가 있었지만 스택 스레드가 없었습니다. Jenkins 콘솔에서이 스 니펫을 사용하여 작업을 삭제했습니다. 작업 이름과 buil dnumber를 자신의 것으로 바꾸십시오.

def jobname = "Main/FolderName/BuildDefinition"
def buildnum = 6
Jenkins.instance.getItemByFullName(jobname).getBuildByNumber(buildnum).delete(); 

1
작동하지 않습니다! 그것은 것입니다 에만 잠겨 실행중인 프로세스를 떠나보기에서 빌드 및 모든 자원 삭제
야쿱 Bochenski

3

최근 파이프 라인 작업의 빌드 "X"가 하나의 executor를 며칠 동안 점유 한 노드 / 에이전트를 발견했습니다. 파이프 라인 작업에서 구성). 디스크에서 확인 : 빌드 "X"가 실제로 사라졌습니다.

해결책 : 점유 된 실행자가 빌드 "X"를 실행하는 중이라고 잘못보고 한 것이 에이전트 / 노드였습니다. 실행기의 스레드를 중단하면 즉시 스레드가 해제됩니다.

def executor = Jenkins.instance.getNode('NODENAME').computer.executors.find {
    it.isBusy() && it.name.contains('JOBNAME')
}

println executor?.name
if (executor?.isBusy()) executor.interrupt()

고려 된 다른 답변들 :

  • @cheffe의 답변 : 작동하지 않습니다 (다음 요점 참조 및 아래 업데이트).
  • 대답 Thread.getAllStackTraces() 없음 : 일치하는 스레드가 없습니다.
  • @ levente-holló의 답변과 모든 답변 getBuildByNumber()빌드가 더 이상 존재하지 않았 :의 적용되지 않았습니다!
  • @ austinfromboston의 대답 : 그것은 내 요구에 가까웠지만 현재 실행중인 다른 빌드를 숨겼을 것입니다.

업데이트 :
비슷한 상황이 발생하여 Executor가 (기존의) 완성 된 파이프 라인 빌드로 며칠 동안 점령되었습니다. 이 코드 스 니펫은 유일한 작동 솔루션이었습니다.


이것은 나를 위해 트릭을했다, 감사합니다! 빌드 번호가 이미 삭제되어 다른 솔루션이 작동하지 않았습니다 (lat 5 빌드 만 유지하므로 job.getBuildByNumber (...)는 아무것도 반환하지 않았습니다).
L. Tischler

2

지난 반 시간에 같은 문제가 발생했습니다 ...

다중 분기 파이프 라인에서 실행중인 좀비 빌드를 삭제할 수 없습니다. 심지어 서버로 UI를 다시 시작하거나 명령 줄에서 다시 sudo service jenkins restart 실행 해도 실행이 차단되었습니다 ... 빌드를 중지 할 수 없었습니다 ... 항상 다시 시작되었습니다.

사용 된 버전 : Jenkins ver 2.150.2

나는 매우 화가 났지만 ... 빌드의 로그를 볼 때 로그 끝에 무언가 흥미로운 것을 발견했습니다.

좀비 빌드의 로그 파일 출력 및 재시작을 표시해도 중지되지 않았습니다.

빨간색으로 표시된 부분은 "충분한 부분"입니다. 보시다시피 항상 UI에서 빌드를 중단하고 싶었지만 작동하지 않았습니다 ...

그러나 텍스트가있는 하이퍼 링크가 있습니다 Click here to forcibly terminate running steps... (첫 번째 녹색 링크) 이제 링크를 눌렀습니다 ...) 링크 실행 후 Still paused다른 링크와 함께 메시지가 나타납니다.Click here to forcibily kill entire build (두 번째 녹색 이 링크를 누르면 빌드가 마침내 어려웠습니다. 살해 ...

따라서 이것은 특별한 플러그인없이 작동하는 것 같습니다 (멀티 브랜치 파이프 라인 빌드 플러그인 자체 제외).


"전체 빌드를 강제 종료하려면 여기를 클릭하십시오"링크를 제공하면 투표가 가능합니다. 불행히도 로그 파일이 몇 GB이기 때문에 Jenkins가 최신 로그를 표시하지 못하기 때문에이 솔루션은 아닙니다.
mjaggard

죄송합니다. 현재이 로그에 더 이상 액세스 할 수 없습니다. 이 오류가 다시 발생하면 의견 / 업데이트 솔루션에 의견을 추가합니다. 그러나 젠킨스 머신에서 로그온 tail하고 링크를 얻기 위해 로그 뷰어를 사용 하는 것은 어떻습니까?
de-jcup

3
이것은 나를 위해 일했습니다. 감사합니다! @mjaggard : 링크는 다음과 같습니다<a href="#" onclick="new Ajax.Request('[server]/jenkins/job/[pipeline_name]/[job_number]/kill'); return false">Click here to forcibly kill entire build</a>
kaveish

1

좀비 작업이 많았으므로 다음 스크립트를 사용했습니다.

for(int x = 1000; x < 1813; x = x + 1) {
    Jenkins .instance.getItemByFullName("JOBNAME/BRANCH")
    .getBuildByNumber(x)
    .finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"))
}

1

이것은 매번 나를 위해 작동합니다.

Thread.getAllStackTraces().keySet().each() {
if (it.name.contains('YOUR JOBNAME')) {  
  println "Stopping $it.name"
  it.stop()
}

funql.org 덕분에


0

지금 같은 문제가 두 번 나에게 발생했지만 유일한 수정 소파는 Tomcat 서버를 다시 시작하고 빌드를 다시 시작하는 것입니다.


0

내가 작성한 jkillthread 유틸리티 는 동일한 계정으로 서비스를 실행하는 시스템에 로그인 할 수있는 한 모든 Java 프로세스에서 스레드를 중지하는 데 사용할 수 있습니다.


0

매우 간단한 솔루션

이 문제가 발생하는 이유 http는 페이지의 링크 가 잘못되어 https작업이 중단 된 것입니다. onclickHTML 페이지에서 속성 을 편집하기 만하면됩니다.

  1. 중단 된 작업 (파이프 라인)의 콘솔 로그를 엽니 다.
  2. 작업을 종료 할 수있는 항목 (x 아이콘, "실행중인 단계를 강제 종료하려면 여기를 클릭하십시오"등)을 클릭하여 "전체 빌드를 강제 종료하려면 여기를 클릭하십시오"링크가 표시됩니다. 하지 순간에 클릭 할 거)
  3. 브라우저 콘솔을 엽니 다 ( 크롬에는 세 가지 중 하나를 사용하십시오 : F12; ctrl + shift + i; 메뉴-> 추가 도구-> 개발자 도구 )
  4. 수동으로 또는 콘솔의 "페이지에서 요소 선택"단추를 사용하여 "전체 빌드를 강제 종료하려면 여기를 클릭하십시오"링크를 찾으십시오.
  5. 더블 클릭 onclick속성을 하여 값을 편집
  6. 추가] shttp 있습니다합니다https
  7. Enter 키를 눌러 변경 사항을 제출하십시오.
  8. "전체 빌드를 강제 종료하려면 여기를 클릭하십시오"링크를 클릭하십시오.

참조 용 스크린 샷 사용 여기에 이미지 설명을 입력하십시오


0

https : // my-jenkins / script 에서 스크립트 콘솔 사용

import hudson.model.Job
import org.jenkinsci.plugins.workflow.job.WorkflowRun

Collection<Job> jobs = Jenkins.instance.getItem('My-Folder').getAllJobs()
for (int i = 0; i < jobs.size(); i++) {
  def job = jobs[i]
  for (int j = 0; j < job.builds.size(); j++) {
    WorkflowRun build = job.builds[j]
    if (build.isBuilding()) {
      println("Stopping $job ${build.number}")
      build.setResult(Result.FAILURE)
    }
  }
}

0

이 솔루션들 중 어느 것도 나를 위해 일하지 않았습니다. 서버가 설치된 머신을 재부팅해야했습니다. 살해 할 수없는 직업은 이제 사라졌습니다.


-1

작업을 복사하고 이전 작업을 삭제할 수 있습니다. 중요하지 않은 경우 이전 빌드 로그를 잃어 버렸습니다.


-2

다음은 2.100Blue Ocean 버전에서이 문제를 해결 한 방법 입니다.

  • 내가 설치 한 유일한 플러그인은 bitbucket 전용입니다.
  • 단일 노드 만 있습니다.

ssh내 Jenkins 상자에
cd ~/.jenkins( Jenkins를 보관하는 곳)
cd job/<job_name>/branches/<problem_branch_name>/builds
rm -rf <build_number>

이 후, 선택적으로 수를 변경할 수 있습니다 nextBuildNumber(내가 이런 짓을)

마지막으로, 나는 (젠킨스를 다시 시작 brew services restart jenkins이 단계는 분명히 당신이 관리하는 방법 따라 다를 수 있으며 젠킨스를 설치합니다).


-3

블루 오션 UI를 입력하십시오. 거기서부터 작업을 중지하십시오.


그게 무슨 뜻이야? 내 Jenkins 서버에는 그러한 UI가 없습니다.
Nico Haase

Blue ocean는 매우 일반적인 Jenkins 플러그인이며 여기에서 읽을 수 있습니다 .
user3360767

이것이 실제로 클래식 UI와 다른 방식으로 작업을 중단합니까? 의심스러운 것 같습니다.
StockB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.