"CreateProcess error=2, 지정된 파일을 찾을 수 없습니다" 오류
젠킨스 서버의 파이프라인에서 sh 명령어를 사용하면 "지정된 파일을 찾을 수 없습니다" 오류가 발생하고 있습니다. 테스트 환경은 다음과 같습니다.
- Windows 10 Pro x64
- Jenkins 2.332.1 버전
파이프라인 실행 시 젠킨스 Console Output에서 출력되는 메시지입니다.
java.io.IOException: CreateProcess error=2, 지정된 파일을 찾을 수 없습니다
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
... 중략 ...
Caused: java.io.IOException: Cannot run program "nohup" (in directory "C:\Program Files (x86)\Jenkins\workspace\TestBuild"): CreateProcess error=2, 지정된 파일을 찾을 수 없습니다
at java.lang.ProcessBuilder.start(Unknown Source)
at hudson.Proc$LocalProc.<init>(Proc.java:254)
at hudson.Proc$LocalProc.<init>(Proc.java:223)
오류 재현 및 테스트를 위한 파이프라인 스크립트는 다음과 같습니다. sh 명령어를 사용하여 현재 디렉토리의 파일 목록을 출력하는 간단한 동작을 수행합니다.
pipeline {
agent any
stage('sh test') {
steps {
sh "dir"
}
}
}
문제 해결
먼저 Git 관련 시스템 변수가 추가되어 있어야 합니다. 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 고급 > 환경 변수 > 시스템 변수에 입장합니다(윈도우 10 기준).
변수 | 값 |
Path | C:\Program Files\Git\bin |
Path | C:\Program Files\Git\usr\bin |
해당 깃 폴더에 대한 시스템 변수(Path)가 존재하지 않으면 추가합니다.
다음으로 젠킨스 서버를 재시작합니다(호스트 서버는 재시작 할 필요가 없습니다). 젠킨스 서버 재시작을 위해 웹 브라우저에서 다음 페이지에 접속합니다.
http://젠킨스 호스트:젠킨스 포트/restart
다시 젠킨스에 접속하여 파이프라인을 실행합니다. Console Output에서 다음과 같이 출력되면 정상입니다.
[Pipeline] sh
+ dir
Dockerfile build gradle.properties libs src
Dockerfiles build.gradle gradlew settings.gradle tool
bin gradle gradlew.bat sql
... 생략
'Build > Jenkins' 카테고리의 다른 글
[Infrastructure/Jenkins] 플러그인(Plugin) 설치 (0) | 2022.04.12 |
---|---|
[Infrastructure/Jenkins] Scripted 파이프라인 기본 구문 (0) | 2022.04.12 |
[Infrastructure/Jenkins] 파이프라인 소개 및 젠킨스 웹 UI로 파이프라인 만들기 (0) | 2022.04.11 |
[Infrastructure/Jenkins] MacOS에서 도커(Docker)를 사용한 젠킨스 설치 (0) | 2022.04.06 |
[Infrastructure/Jenkins] 젠킨스(Jenkins)란? (0) | 2022.04.06 |