반응형
어제 운영서버에서 잘 돌아가고 있는 서비스를 빌드배포를 했는데 갑자기 빌드에러가 떴다
java.io.IOException: error=0, Failed to exec spawn helper: pid: 520394, exit value: 1
.
.
.
Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 3b22021b-7a86-4e74-a92f-647df29aac39
Caused: java.io.IOException: Cannot run program "nohup" (in directory "{파일경로}"): error=0, Failed to exec spawn helper: pid: 520394, exit value: 1
.
.
.
위 에러 메세지는 nohup 명령어를 실행하는 동안 문제가 발생했다고 나타나는 메세지라고 한다 Jenkins가 nohup 명령어를 실행하기 위해 프로세스를 생성하려고 했지만 실패했다고 나오는 메세지임 젠킨스 구축 후 처음 만나보는 에러다보니 여러방면으로 찾아본 방법을 나열해보겠다.
탐색과정
1. nohup 명령어의 부재인지 확인
which nohup
nohup 이 설치되어있는지 확인
sudo apt-get install coreutils
nohup 이 설치되어 있지 않다면 위 명령어로 설치
2. 디렉토리 권한 확인
ls -ld {파일경로}
디렉토리의 권한을 확인
sudo chown -R jenkins:jenkins {파일경로}
디렉토리 소유 및 권한 변경
3. Jenkins 재시작
sudo systemctl restart jenkins
but!!
이렇게 진행해도 해결되지 않았다.. 왜냐면,
1. nohup 명령어는 이미 설치되어있었다.
2. 나는 supervisor를 이용하여 백그라운드 서비스 자동업을 진행중이었다.
3. 수퍼바이저를 재시동 해도 같은상황이었다
sudo supervisorctl status
sudo supervisorctl stop {서비스명}
sudo supervisorctl start {서비스명}
을 진행해도 똑같은 상황
4. Jenkins가 nohup 명령어를 실행할 권한이 있는지 확인. /usr/bin/nohup에 접근할 수 있는지 확인
sudo -u jenkins /usr/bin/nohup --version
Jenkins와 supervisor, 그리고 nohup에 관련한 부분만 시도해보다가 구글링에서 찾은 해결책이 있었다
해결할 수 있는 실마리!!
jenkins 커뮤니티에 올라온 글
StackOverflow 에서 찾은 글
위 링크를 참고하여
sudo nano /etc/default/jenkins
폴더에 접근하여
JAVA_ARGS="-Djava.awt.headless=true -Djdk.lang.Process.launchMechanism=vfork"
JAVA_ARGS 부분의 설정을 추가해주었다
우분투 기반이다보니 경로가 저렇고,
CentOs 기반이면
sudo nano /etc/sysconfig/jenkins
이 경로로 들어가면 된다
이후 젠킨스를 내렸다가 올리면 적용된다
그렇게 해결할 수 있었다.
반응형
'Infra > Server' 카테고리의 다른 글
VirtualBox에 우분투 설치하기 (0) | 2024.05.28 |
---|---|
VM VirtualBox 설치 (0) | 2024.05.28 |
Linux - 신규 서버에 Apache Tomcat 연동하기 -3 (1) | 2023.12.01 |
Linux - 신규 서버에 Apache Tomcat 연동하기 -2 (0) | 2023.12.01 |
Linux - 신규 서버에 Apache Tomcat 연동하기 -1 (0) | 2023.12.01 |