일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정규표현식
- slack app
- yarn
- airflow
- HDFS
- SlackWebhookOperator
- Kafka
- HBase
- LDAP
- python
- Lambda architecture
- Example DAG
- hadoop
- HIVE
- docker
- NoSQL
- Namenode
- jupyter
- ambari
- java
- Scala
- re
- HDP
- MapReduce
- Windows
- 람다 아키텍처
- slack
- 빅데이터
- Service
- execution_date
- Today
- Total
IT 삽질기
CentOS 7 serviced 등록 및 실행 본문
Service란 ?
서버가 실행되거나 문제가 발생해 다운되는 경우 자동으로 실행 시키기 위해 등록하며,
예를 들어 웹 서비스가 계속 동작해야하는 서버의 경우 웹 서비스 용도로 사용하는 tomcat를 서비스로 등록하여 사용하는 경우
문제가 발생하는 경우나 서버를 재시작하는 경우에도 해당 서비스가 자동으로 재시작
CentOS는 RedHat 계열의 리눅스로 Service에 대한 좀 더 자세한 내용은 RedHat에 있는 service 관련문서를 참고하도록 한다.
Service 파일 만들기
수동으로 Service를 등록하기 위해서는 서비스명.service 형식의 파일을 만들어야 하는데,
여기서는 tomcat에 대한 내용을 등록한다고 가정
tomcat.service 파일을 만들어 내용을 살펴보도록 하자.
# Systemd unit file for tomcat
# https://gist.github.com/ryanpadilha/a7cb7a31bdbea05fdef3ab3716ca0c9c
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
필요한 몇몇 내용들에 대해서만 살펴보도록 하자.
- Environment : 환경변수를 등록하는 부분으로 필요에 따라 여러개를 추가할 수 있으며, 파일을 만들어 경로를 지정하는 방식으로 사용하는 것도 가능
- ExecStart : 해당 서비스를 실행시키기 위한 명령어를 지정하는 것으로 여기서는 tomcat를 시작시키기 위한 명령어를 지정
- ExecStop : 서비스를 중지 Stop 하는 경우 실행되는 명령어 지정
- User / Group : 서비스를 실행할 User, Group 설정
- RestartSec : 서비스 재시작을 수행하는 경우 다시 시작하기까지 대기하는 시간
- Restart : 유닛이 죽거나 생존 응답 시간이 초과한 경우 재시작 되는 옵션
설정에 대한 추가내용과 자세한 내용은 아래의 링크를 참고하기 바란다
https://potatogim.net/wiki/Systemctl
Service 등록하기
수동으로 Service를 등록하기 위해서는 서비스명.service 형식의 파일을 만들어 아래의 경로에 추가
/usr/lib/systemd/system
위의 예시에서 만들었던 tomcat.service를 /usr/lib/systemd/system/tomcat.service에 저장
문제가 없다면 서비스를 활성화 시키고 시작시키면 된다.
service 활성화 및 실행
# 서비스 활성화
systemctl enable tomcat
# 서비스 시작
systemctl start tomcat
service에 문제가 없다면 정상적으로 service가 실행될 것이다.
문제가 있어 service가 정상적으로 실행되지 않는 경우 아래의 명령어를 통해 service의 log를 확인할 수 있으며,
service 파일 내용이 변경되는 경우 아래의 명령어를 통해 적용할 수 있다.
systemctl daemon-reload
참고자료
'개발' 카테고리의 다른 글
OLTP과 OLAP (0) | 2021.08.08 |
---|---|
LDAP(Lightweight Directory Access Protocol)이란? (0) | 2021.08.01 |
WAL(Write-ahead logging)란 ? (0) | 2021.05.14 |
Windows WSL Version up 및 초기화 (2) | 2021.01.25 |
jupyter 외부접속 허용 (0) | 2019.06.16 |