프로그래밍/리눅스
리눅스(Ubuntu) 에서 Shell Script 서비스를 생성하는 방법
자바조아!
2024. 12. 17. 20:30
Shell 스크립트 작성
# 이부분 주의 해야함 맨 윗줄에는 해당 주석이 있어야함.
#!/bin/bash
# 서비스는 원래 백그라운드로 돌기때문에 nohup이나 & 백그라운드 연산자가 필요 없습니다.
JENKINS_NODE_COOKIE=dontKillMe && java -Xms512m -Xmx2048m -jar -Dspring.profiles.active=prd /var/lib/jenkins/workspace/oasis-api/oasis-api/build/libs/oasis-api-1.0.0-SNAPSHOT.jar
서비스 등록
# 해당 위치로 이동
root@oasis:/app# cd /etc/systemd/system
# <서비스명>.service 패턴 파일 생성 C + D 입력하면 생성 됨.
root@oasis:/etc/systemd/system#cat > oasis-api.service
[Unit]
Description=oasis-api service
After=network.target
[Service]
ExecStart=/bin/bash /app/oasis-api-start.sh
User=jenkins
Group=jenkins
Restart=always
[Install]
WantedBy=multi-user.target
# 권한 부여
root@oasis:/etc/systemd/system# chmod 644 oasis-api.service
# 서비스 리로드
root@oasis:/etc/systemd/system# systemctl daemon-reload
# 서비스 활성화 ( 서버 재부팅 이후에도 실행 됨 )
root@oasis:/etc/systemd/system# systemctl enable oasis-api.service
# 서비스 상태 확인
root@oasis:/etc/systemd/system# systemctl status oasis-api.service
# 서비스 실행
root@oasis:/etc/systemd/system# systemctl start oasis-api.service
# 실행이 잘 되지 않을 경우 상세 로그 확인
root@oasis:/etc/systemd/system# sudo journalctl -u oasis-api.service
주의사항
Shell 스크립트는 서비스에 등록되면 백그라운드로 돌기때문에 nohup이나 & 백그라운드 연산자가 필요 없습니다.
오히려 백그라운드 관련 코드를 넣어주면 오류가 발생합니다.