1. Service 생성
- 경로 : /usr/lib/systemd/system
- 명령어 : vi keycloak.service
keycloak.service 코드
[Unit]
Description=Keycloak Server
After=syslog.target network.target postgresql.service
[Service]
Type=simple
User=keycloak
Group=keycloak
WorkingDirectory=/apps/keycloak-7.0.1/bin
ExecStart=/apps/keycloak-7.0.1/bin/standalone.sh -b 0.0.0.0
Environment=KEYCLOAK_HOME=/apps/keycloak-7.0.1
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
[Install]
WantedBy=multi-user.target
코드 설명
- [Unit]
- Description : 해당 서비스에 대한 설명
- After : 서비스가 언제 실행될지에 대해 정할 수 있는 부분
- syslog.target : 시스템 로그에 관련된 것이 설정된 후
- network.target : 네트워크가 연결된 후
- postgresql.service : keycloak 실행시 DB가 실행되어있어야 해서 postgresql을 실행하는 service를 만들고, DB가 실행되면 keycloak이 실행되도록 구성
- [Service]
- Type : keycloak의 `standalone.sh` 스크립트는 자체적으로 백그라운드로 전환되므로 simple 사용
- User : keycloak을 실행하는 유저
- Group : keycloak을 실행할 그룹
- WorkingDirectory : keycloak 실행에 필요한 디렉토리 명시
- ExecStart : keycloak을 실행하는 명령어
- Environment : Keycloak 실행에 필요한 환경 변수 설정
( 기존에는 `nohup ./standalone.sh -b 0.0.0.0 &`로 실행 했는데 `nohup`과 `&`를 사용하는 방식은 `systemd`와 잘 맞지 않는다고 해서 실행 명령어가 다름)
- [Install]
- WantedBy : 서비스 run level을 설정하는 부분 (`multi-user.target`은 다중 사용자)
2. 서비스 활성화
sudo systemctl enable keycloak.service
3. 서버 재시작
sudo systemctl reboot
4. 기타 명령어
서비스 상태 확인
sudo service keycloak status
서비스 확인
systemctl
'IT > Linux' 카테고리의 다른 글
WSL(Windows Subsystem for Linux) 설치하기 (0) | 2024.09.06 |
---|---|
서버 재기동시 Java 애플리케이션 자동실행(.jar) (0) | 2024.07.03 |
서버 재기동시 postgresql 자동 실행 (0) | 2024.06.24 |