왜 서비스를 자동으로 실행시키려고 하는 것일까?
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 |