728x90
반응형
쉘스크립트를 실행하는 서비스를 시작하고 상태를 확인 시 아래와 같이 status=127 에러가 발생했습니다.
● test.service - test Service
Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: disabled)
Active: failed (Result: start-limit) since 월 2024-11-11 14:27:13 KST; 3s ago
Process: 31064 ExecStart=/home/app/test.sh start (code=exited, status=0/SUCCESS)
Main PID: 31067 (code=exited, status=127)
실행하는 쉘스크립트는 아래와 같이 작성했습니다.
#!/bin/sh
export PATH=${PATH}:${JAVA_HOME}/bin
nohup java -jar -Dspring.profiles.active=dev /home/app/test.jar 1> /dev/null 2>&1 &
status=127 오류는 ExecStart로 지정된 명령어나 스크립트 내에서 실행하려는 명령어를 찾지 못할 때 발생합니다. 즉, 스크립트 내에 있는 명령어의 경로나 파일이 제대로 지정되지 않았거나, 환경 변수가 부족할 때 발생할 수 있습니다. 제 경우에는 경로나 파일은 이상이 없었고 환경 변수 이슈였습니다.
systemd는 일반적인 셸 환경을 상속받지 않기 때문에, PATH 등의 환경 변수가 제대로 설정되지 않으면 특정 명령어를 찾지 못해 127 오류가 발생할 수 있습니다. 이런 경우 서비스 유닛 파일에 Environment 옵션을 사용해 PATH 변수를 추가하면 됩니다.
기존 서비스 유닛파일은 아래와 같습니다.
[Unit]
Description=potholeCollect Service
After=network.target
[Service]
Type=forking
ExecStart=/home/app/start.sh
Restart=on-failure
User=root
Group=root
[Install]
WantedBy=multi-user.target
수정한 서비스 유닛파일은 아래와 같습니다.
Environment 옵션을 사용해 PATH 변수와 JAVA_HOME 변수를 추가해줬습니다.
[Unit]
Description=potholeCollect Service
After=network.target
[Service]
Type=forking
ExecStart=/home/app/start.sh
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/jdk-21/bin:/root/bin JAVA_HOME=/usr/lib/jdk-21"
Restart=on-failure
User=root
Group=root
[Install]
WantedBy=multi-user.target
그 후에 데몬 재로드 및 서비스 재시작을 하니 아래와 같이 정상 실행된것을 확인할 수 있습니다.
● test.service - test Service
Loaded: loaded (/etc/systemd/system/test.service; enabled; vendor preset: disabled)
Active: active (running) since 월 2024-11-11 14:59:23 KST; 56min ago
Main PID: 32371 (java)
728x90
반응형
'개발 > 리눅스' 카테고리의 다른 글
Systemd 서비스 시작 문제 해결하기: 쉘스크립트로 프로세스 유지하는 방법 (0) | 2024.11.12 |
---|---|
리눅스 서비스 등록 에러 해결: code=exited, status=203/EXEC 문제 해결법 (0) | 2024.11.11 |
CentOS 부팅 오류 해결: 파티션 오류 수정 방법 (0) | 2024.08.12 |
[CentOS7] yum 명령어 오류 해결 (Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류) (4) | 2024.07.03 |
[CentOS7] [Spring Boot] [WebSocket] WebSocket Server 연결안되는 현상 (0) | 2024.06.13 |