본문 바로가기

mlops, devops

service 생성 후 systemd에 등록

 

ex) /home/run-server.sh 스크립트를 서비스로 등록해서 재부팅 시에도 항상 서비스가 뜰 수 있게 하고자 함

 

1. service 파일 생성

  • 기본 서비스 위치 : /etc/systemd/system
  • root 권한으로 실행
    sudo su
  • cd /etc/systemd/system
  • vi ${SERVICE_NAME}
    • 예제 : /etc/systemd/system/example.service
      • Requires : 필요한 타겟
      • After : 의존성이 있는 타겟 (이 타겟들이 실행된 후에, 서비스를 띄움)
      • ExecStart : 등록할 스크립트 위치를 기입 (ex- /home/run-server.sh)
[Unit]
Description= ${서비스 설명}
Requires=network.target
After=network.target
 
[Service]
Type=simple
ExecStart=/home/run-example.sh               # 작성한 서비스 실행 스크립트
WorkingDirectory=/home
User=1100
Group=1100
TimeoutStopSec=5
KillMode=process
KillSignal=SIGTERM
PrivateTmp=false
Restart=on-failure
RestartSec=10
LimitNOFILE=5242880
LimitNPROC=131072
 
[Install]
WantedBy=multi-user.target

 

2. service를 인식할 수 있도록 systemd에 등록 (systemctl)

  • service파일을 systemd에 인식
        sudo systemctl daemon-reload

 

3. 서비스를 시작 & 서버 재부팅 시 자동으로 시작

  • 서비스 시작 / 재시작
        sudo systemctl start example.service
        sudo systemctl restart example.service
  • 서버 재부팅 시 자동으로 시작
        sudo systemctl enable example.service

 

4. 서비스 상태 확인

sudo systemctl status example.service

sudo journalctl --output cat -u ${SERVICE_NAME} -f

'mlops, devops' 카테고리의 다른 글

인증 오픈소스 vault  (0) 2022.05.11
fastapi context 주입  (0) 2022.04.01
로깅 시스템 및 로그 설계  (0) 2022.03.21
kubeflow를 활용한 모델 운영의 효율화  (0) 2022.03.19
컨테이너간 통신  (0) 2022.03.11