Linux

Linux에서 service 등록 하는 이유

코딩공부 2021. 9. 30. 00:38

 

왜 서비스를 자동으로 실행시키려고 하는 것일까?

 

24시간 돌아가야하는 웹 서비스가 예상치 못한 이유로 서버가 다운되었을 때

서버 관리자가 root 계저으로 접속해 톰캣을 실행시켜야하는데 root 계정은 일반적으로 원격 접속이 허용되지 않기 때문에 서버 컴퓨터 앞에서 로그인을 해야한다.

 

 

하지만 톰캣을 서비스로 등록해놓으면, 서버를 실행했을 때 자동으로 톰캣이 돌아가는 이점이 있다.

 

 

서비스 등록 방법 예제

1. tomcat 설치

wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp
sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

tomcat 설치 후에 /opt 폴더에 압축을 품

권한 추가 - bin 디렉토리 내의 스크립트에는 실행 플래그가 존재 해야함

 

[ opt폴더는 외부에서 다운로드 받은 프로그램들을 넣는것이 좋다고 한다.]

 

 

2. service 파일 생성 

$ cd /etc/systemd/system
$ vi /etc/systemd/system/tomcat.service

- 서비스들은 서비스이름.service 파일명을 가지며, systemctl 명령어로 제어할 수 있다.

 

3. service에 붙여넣기

# /etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=root
Group=root

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

* java경로나 tomcat경로를 수정이 필요할 시 수정 해야함

 

4. 설정 등을 바뀌어 systemd 데몬을 리로드

systemctl daemon-reload

 

5. 시스템 시작될 때 자동으로 시작되도록 등록

systemctl enable tomcat.service

 

6. tomcat 서비스 시작

systemctl start tomcat

tomcat or tomcat.service 사용 

 

7. 방화벽 허용

 - iptables 사용

sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

 

추후 변경 내용을 적용하려면 Tomcat 구성 파일을 편집할 때마다 Tomcat 서비스를 다시 시작

sudo systemctl restart tomcat

 

 

참조 : https://haenny.tistory.com/141

 

[Linux] CentOS 7 에서 Tomcat 서비스 등록하기

[Linux] CentOS 7 에서 Tomcat 서비스 등록하기 서비스란, 윈도우에서도 볼 수 있는데, 현재 구동중인 서비스 목록 확인 및 서비스 관리(수동 시작, 중지 등)를 할 수 있다. 리눅스에서도 서버가 실행되

haenny.tistory.com

 

'Linux' 카테고리의 다른 글

profile, bashrc 설정 파일  (0) 2022.03.17
Ubuntu20.04 Mysql 외부접속 허용  (0) 2021.11.25
init.d, systemd 비교  (0) 2021.09.30
ssh - windows에서 linux(ubuntu)로 파일 전송하기  (0) 2021.09.24
Linux 단축키(업데이트 중)  (0) 2021.09.24