[Linux, CentOS] 톰켓 자동실행기능
- Computer/기타
- 2022. 2. 17.
[Linux, CentOS] 톰캣 자동실행기능
대상의 톰캣
본 내용을 테스트하기 위해서 /usr/local에 있는 test_mobile이라는 이름을 갖고 있는 apache-tomcat을 활용하였다.
버전은 centOS7을 사용하고 있다.
보통 톰캣은 apache-tomcat 안의 bin 디렉터리 안에 startup.sh가 담당하고 있다.
tomcat의 실행을 위해서는 이를 명령해야만 실행된다는 것이 기본 원리이다.
그러나 이는 자동 실행하기 위해서는 적합하지 않다.
Linux의 Service가 아니므로 Linux가 해당 apache-tomcat을 찾아서 재시작할 수가 없다.
그래서 tomcat의 자동실행을 만들기 위해서는 Linux의 service 등록이 필요한 부분이다.
자동 실행 기능
어디에서나 사용자의 명령어를 사용하기 위해서는 Linux service의 도움이 필요하다.
리눅스에서 db를 한 번이라도 끄거나 실행해보았다면 익숙한 명령어가 있다.
systemctl start mysql이다.
이를 활용하여 apache-tomcat에도 적용하려고 한다.
# cd /etc/systemd/system
# ll
Service의 위치는 /etc/systemd/system에 속해있다.
여기엔 우리가 사용하는 systemctl의 대부분이 저장되어있다.
그러므로 우리가 필요한 service를 만들기 위해서는 해당 위치에서 확장명이 .service인 파일을 만들면 된다.
# vi test_mobile.service
# Systemd unit file for tomcat
[Unit]
Description= TEST_MOBILE # SERVICE NAME, MEMO
After=syslog.target network.target
[Service]
Type=forking
#Environment=JAVA_HOME=/usr/lib/jvm/jre # Java 설치경로, OPEN JAVA는 SKIP
Environment=CATALINA_PID=/usr/local/test_mobile/bin/catalina.pid #apache-tomcat 경로
Environment=CATALINA_HOME=/usr/local/test_mobile #apache-tomcat 경로
Environment=CATALINA_BASE=/usr/local/test_mobile #apache-tomcat 경로
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/usr/local/test_mobile/bin/startup.sh # apache - tomcat 경로
ExecStop=/bin/kill -15 $MAINPID
User=root # Tomcat 관리자 ID
UMask=0007 # 허가권
RestartSec=10 # 재시작 주기
Restart=always # 재시작 주기
[Install]
WantedBy=multi-user.target
#은 주석 문구이다.
vi의 저장 방식은 실행 서비스 이름. service이다.
필자는 test_mobile이란 apache-tomcat을 실행하기 때문에 test_mobile이라고 명칭을 지었다.
위의 내용을 복사해서 붙여 넣어서 사용하면 된다.
Apache-tomcat을 실행하기 위한 Java jre가 설치되어 있다면, jre 경로 또한 적어줘야 한다.
만약 OPEN JAVA를 사용할 경우에는 Java jre가 별도로 설정이 되어있지 않으므로 주석 처리해도 상관없다.
User는 대상의 apache-tomcat을 실행하기 위해 사용되는 id를 뜻 한다.
만약 권한 없는 id가 실행하려 한다면, 정상적으로 실행되지 않으므로 주의해야 한다.
//service upload
# systemctl daemon-reload
//Linux서버 시작 시, 자동 시작
# systemctl enable test_mobile.service
//service 실행하기
# systemctl start test_mobile
// service 종료하기
# systemctl stop test_mobile
// service 재실행하기
# systemctl restart test_mobile
// service 실행상태 확인하기
# systemctl status test_mobile
저장 후, 간단한 명령어를 실행한다.
service 내용이 추가, 변경, 삭제될 경우에는
반드시 systemctl daemon-reload 명령어를 수행해야 한다.
그 후에 필요한 systemctl 명령어를 실행하기만 하면 끝났다.
만약. 위에처럼 아무런 메시지가 출력이 안 되지 않고 무언가가 출력되었다면 service 입력 부분에서 잘못된 것이 있다는 뜻이다. 그러므로 status로 실행 여부를 체크하여 오타를 고치도록 해야 한다.
실행 후에는 apache-tomcat에서 log를 확인하여 실행 여부를 확인하자.
apache-tomcat에서./shutdown.sh 명령어를 수행했을 때, 약 10초 후에 다시 재실행이 된다면 정상적으로 끝마쳤다.
'Computer > 기타' 카테고리의 다른 글
[기타] Web Server와 Was Server (0) | 2022.02.22 |
---|---|
[IntelliJ] 인텔리제이 프로젝트 복구하기 (2) | 2022.02.21 |
[기타] GoDaddy로 도메인 구입 및 도메인 DNS 연결 (0) | 2022.02.16 |
[CentOS] Linux에서 DNS대신 사용할 수 있게 만들기 (0) | 2022.02.11 |
[CentOS] GPG key retrieval failed: [Errno 14] curl#60 (0) | 2022.02.08 |