OS/Linux

[Linux] System Service 등록하기

logan.jeon 2023. 11. 23. 23:44
반응형

잡설

백엔드 서비스를 만들때, 개발 혹은 운영 서버에 직접 배포하게 될 경우 있다.
물리 서버든, 클라우드 서버든 대체로 OS는 linux 일텐데, 개발중인 백엔드 서비스가 Srping 이라서 Java 설치하고 빌드된 백엔드 서비스가 문제없이 실행 되는지 테스트를 해봤다.

java -jar .... 

음... 잘 된다. 근데 서비스 리빌드하거나 하면 서비스를 재시작해야하는데...매번 PID를 찾아서 kill 하고 다시 java -jar...
를 한번에 하는 스크립트를 작성해서 사용해도 된다..!
근데 전 회사 팀장님이 시스템에 서비스를 등록해달란다...그게뭔데...어떻게 하는건데...

찾아보니까 /etc/systemd/system/ 경로에 xxx.service 파일을 생성해서 내용을 작성해주고 등록해주면 된다고 한다.
그럼...바로하기 좀 겁나니까 (쫄?) ...테스트로 사용할 스크립트 파일을 작성하고 서비스를 등록해보자.


code

1. Test Script 파일 작성

  • 테스트로 사용할 스크립트를 간단하게 작성.. 계속 뭔가 흔적을 남겨줘야하니까 while문으로 반복해보자.
#!/bin/bash
echo -e "Start Systemd Test" | logger -t Testsystemd

while:  
do  
    echo -e "Running systemd test"  
    sleep 30  
done

2. Systemd Service 등록

  • /etc/systemd/system/test-service.service 파일 작성해보자.
[Unit]
Description=Systemd Test Daemon

[Service]
Type=simple
User=centos
Group=centos
WorkingDirectory=/home/centos
ExecStart=test-daemon.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • 서비스 파일을 만들었으면 진짜 서비스를 등록해주도록 하자
  • 아래 명령어를 입력하면 위에서 작성한 서비스가 등록되서 systemctl 명령어를 또는 service 명령어를 사용해서 start/stop/restart 가 가능해진다.
sudo systemctl daemon-reload

Service 명령어

  • 시작
$ systemctl start test-service
  • 시스템 재부팅 후에도 서비스가 시작되도록 등록
$ systemctl enable test-service
  • 정지
$ systemctl stop test-service
반응형

'OS > Linux' 카테고리의 다른 글

[Cent OS] bash: clear: command not found  (2) 2023.11.29