반응형
1. Error 상황
- Spring Boot로 생성된 jar 파일을 systemctl을 사용하여 실행하고자 하는데 아래와 같은 에러 발생
/bin/bash: line 1: exec: java: not found
- systemctl로 실행시에만 실행이 안되고 java -jar 명령어를 통해서는 실행이 됨
2. 원인
- systemd의 기본 경로에 java의 경로가 지정되지 않은 것 같음.
- java 환경 변수 설정을 통해 일반 명령어로는 PATH 설정이 잘 된 거 확인
echo $JAVA_HOME
/usr/local/jdk-21/
3. 해결 방안
- systemd 서비스 스크립트에 PATH 설정
- 변경된 스크립트
[Unit]
Description=Service Description
After=syslog.target network.target postgresql.service
[Service]
Environment=PATH=/usr/local/jdk-21/bin -> 이부분을 추가
ExecStart=/bin/bash -c "exec java -jar /data/gradle/gradle-8.11.1/app/build/libs/tomcat.jar"
Restart=on-failure
RestartSec=10
User=root
Group=root
[Install]
WantedBy=multi-user.target
- 변경 전 스크립트
[Unit]
Description=Service Description
After=syslog.target network.target postgresql.service
[Service]
ExecStart=/bin/bash -c "exec java -jar /data/gradle/gradle-8.11.1/app/build/libs/tomcat.jar"
Restart=on-failure
RestartSec=10
User=root
Group=root
[Install]
WantedBy=multi-user.target
반응형
'오류 해결 > Linux 오류 해결' 카테고리의 다른 글
[오류 해결] package http-devel available (0) | 2022.05.19 |
---|---|
[오류 해결] apachectl configtest (0) | 2022.05.19 |