IT 삽질기

CentOS 7 serviced 등록 및 실행 본문

개발

CentOS 7 serviced 등록 및 실행

화이팅빌런 2021. 5. 17. 19:24

Service란 ?

서버가 실행되거나 문제가 발생해 다운되는 경우 자동으로 실행 시키기 위해 등록하며,

예를 들어 웹 서비스가 계속 동작해야하는 서버의 경우 웹 서비스 용도로 사용하는 tomcat를 서비스로 등록하여 사용하는 경우

문제가 발생하는 경우나 서버를 재시작하는 경우에도 해당 서비스가 자동으로 재시작

CentOS는 RedHat 계열의 리눅스로 Service에 대한 좀 더 자세한 내용은 RedHat에 있는 service 관련문서를 참고하도록 한다.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd

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

 

참고자료

https://victorydntmd.tistory.com/215

'개발' 카테고리의 다른 글

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
Comments