오류 해결/Linux 오류 해결

[오류 해결] /bin/bash: line 1: exec: java: not found

dalgong 2025. 1. 23. 09:58
반응형

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
반응형