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)
- 예제 : /etc/systemd/system/example.service
[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 |