-
[AWS] Centos7 서비스 등록하기 (Reboot시 서비스 자동 시작)AWS, Infra/linux 2022. 4. 30. 22:01
[AWS] Centos7 서비스 등록하기 (Reboot시 서비스 자동 시작)
1. 서비스란 무엇일까? 🤔
서비스는 다양한 의미로 사용된다. 룸 서비스, 서비스업 등등..
하지만 OS단에서 사용하는 “서비스”라는 의미는 상이하다.서비스란 OS가 부팅되었을때, 생성되면서 종료될때까지 실행되는 Process 및 모든 설정 파일을 Service라고 한다.
실제로 우리가 많이 사용하고 있는 “Window”의 경우, 서비스를 가지고 있다.
예를 들면, 컴퓨터를 재부팅하면 카카오톡이 자동으로 실행이 되는 것이 대표적인 예라고 할 수 있을 것이다.
전원공급 차단, 물리적인 오류 등등으로 인해서 OS를 재기동 해야만할 경우 서비스를 등록하여 자동으로 서비스들이 재기동 되도록 해야한다.
- 예시 : 윈도우 서비스
- 예시 : 리눅스 서비스# 리눅스 서비스 리스트 조회 systemctl list-unit-files --type=service
2. 서비스를 등록해보자. 🛫
실제로 서비스를 등록을 하기 위해서는 “ROOT 권한”이 필요하다.
예시를 위해서, Tomcat을 자동으로 등록하도록 설정해보자.
2-1. 계정 접속
WAS 서버에 “ROOT” 권한을 가진 계정으로 접속을 하자.
# ssh로 root 계정 접속 ssh root@[IP] # root가 아니라면 스위칭 sudo -s
2-2. 서비스 파일 생성
CentOS6까지는 /etc/rc.d/init.d 디렉토리에 서비스 관련 파일들이 있었고, 이를 chkconfig, service 명령어를 통해 제어를 했다고 합니다.
CentOS7부터는 서비스들이 대부분 Unit으로 분리되었고, 이 Unit들은 서비스이름.service 파일명을 가지며, systemctl 명령어로 제어할 수 있게 되었습니다.- 서비스 파일 경로로 이동
# 서비스를 관리하는 폴더로 이동 cd /usr/lib/systemd/system # tomcat이라는 서비스를 하나 만들어주자 vi tomcat.service
- tomcat.service 생성 (각 서버의 Enviroment에 맞춰주면 됩니다)
[Unit] Description=tomcat 9 After=network.target syslog.target [Service] Type=forking Environment="JAVA_HOME=/bin/java" Environment="CATALINA_HOME=/home/tomcat/tomcat-8080/" User=tomcat Group=tomcat ExecStart=/bin/bash -c '${CATALINA_HOME}/bin/startup.sh' ExecStop=/bin/bash -c '${CATALINA_HOME}/bin/shutdown.sh' [Install] WantedBy=multi-user.target
2-3. 서비스 등록 및 테스트
- 서비스를 등록하여 재부팅을 할때, 서비스를 자동으로 시작하자 😀
systemctl enable tomcat
- 서비스 재기동, 시작하는 방법
# 시스템 재시작 systemctl restart tomcat # 단순 시작은 아래와 같다 systemctl start tomcat
- 재시작을 하면, Tomcat 고양이가 다시 잘 나온다. (서비스 재기동 성공 😄)- 오류가 발생한 경우, 아래 명령어로 서비스 로그를 볼 수 있다.
# journalctl -u [서비스명] journalctl -u tomcat # systemctl status [서비스명].service systemctl status tomcat.service
4. 재부팅을 해서 테스트를 하자.
위에서 서비스 재기동을 통해서, 테스트를 해봤다.
재부팅을 해보고 싶으면 아래 명령어로 가능하다.# 재부팅 reboot
재부팅시에, 라우팅 테이블도 유지하도록 해줘야 합니다.
다음 글을 참고해주세요
반응형'AWS, Infra > linux' 카테고리의 다른 글