목차
0. Why?
0.1. systemctl(systemd)이란?
- RHEL 7에 도입된 systemd(system daemon)를 관리하는 명령어
- 서비스를 쉽고 편하게 제어할 수 있는 명령어(stop, status, start, auto start...)
- systemd(system daemon)은 전통적으로 Unix 시스템이 부팅 후에 가장 먼저 생성된 후에 다른 프로세스를 실행하는 init 역할을 대체하는 데몬입니다.
0.2. 톰캣(Tomcat)을 왜 서비스에 등록하나요?
- 톰캣을 실행하려면 직접 경로에 접근해서 sh 파일을 실행해 주게 되는데 이러한 비효율 및 불편함을 해결해 줄 수 있습니다.
- 톰캣을 재부팅 시에도 자동으로 실행되도록 만들 수 있습니다.
- 톰캣의 간략한 상태를 쉽게 확인할 수 있습니다.
0.3. 세팅 환경
- 필자는 CentOS 7(centos-release-7-9.2009.0.el7.centos.x86_64) 환경에서 설정했습니다.
1. 서비스 등록하기
1.1 tomcat.service 파일 생성
- /etc/systemd/system 또는 /usr/lib/systemd/system 경로에 vi(vim) 툴을 이용해 tomcat.service를 생성해줍니다.
- /usr/lib/systemd/ vs /etc/systemd/system/
→ 기본적으로 배포 저장소에서 다운로드한 패키지로 제공되는 파일은 /usr/lib/systemd/
→ 시스템 관리자(사용자)가 수정한 사항은 로 이동합니다 /etc/systemd/system/
# vi /etc/systemd/system/tomcat.service
1.2 tomcat.service 내용 저장
- 아래의 내용을 사용자 경로에 맞게 잘 입력 후 저장해 줍니다.
Environment=사용자의 톰캣 경로
ExecStart=사용자의 톰캣 경로/bin/startup.sh
ExecStop=사용자의 톰캣 경로/bin/shutdown.sh
[UNIT]
Description=tomcat
After=syslog.target network.target
[Service]
Type=forking
Environment=/usr/local/lib/apache-tomcat-8.5.69
ExecStart=/usr/local/lib/apache-tomcat-8.5.69/bin/startup.sh
ExecStop=/usr/local/lib/apache-tomcat-8.5.69/bin/shutdown.sh
User=root
Group=root
[Install]
WantedBy=multi-user.target
2. 명령어 사용
2.1. 명령어 종류
- 아래 명령어처럼 systemctl 명령어를 이용해 사용할 수 있습니다.
서비스 실행
# systemctl start 서비스명
서비스 중지
# systemctl stop 서비스명
서비스 상태 확인
# systemctl status 서비스명
서버 재부팅시 서비스 자동 실행 등록
# systemctl enable 서비스명
서버 재부팅시 서비스 자동 실행 해제
# systemctl disable 서비스명
위의 서비스 설정을 바로 적용을 위한 명령어
# systemctl daemon-reload
서비스와 관련된 프로세스도 모두 죽임
# systemctl kill 서비스명
존재하는 전체 서비스 목록
# systemctl
서비스 목록 (부팅 시 자동 실행 활성화 여부만 표시)
# systemctl list-unit-files
부팅시 실행에 실패한 서비스목록
# systemctl --failed
서비스 활성화 여부
# systemctl is-enabled 서비스명
서비스 현재 동작 여부
# systemctl is-active 서비스명
서비스의 자세한 상태 (해당 서비스의 로그도 표시)
# systemctl status -l 서비스명
- 사용 예시
# systemctl start tomcat
# systemctl status tomcat
● tomcat.service
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since 일 2021-08-01 17:09:50 KST; 5s ago
...
# systemctl stop tomcat
# systemctl status tomcat
● tomcat.service
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 일 2021-08-01 17:10:01 KST; 3s ago
...
# systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.
# systemctl disable tomcat
Removed symlink /etc/systemd/system/multi-user.target.wants/tomcat.service.
2.2. 로그 확인
- 서비스로 등록한 경우 journalctl를 이용해 서비스와 관련된 로그를 살펴볼 수 있습니다. 설정이 잘못됐거나, 서비스를 시작할 수 없을 때 journalctl 명령어로 원인을 파악할 수 있습니다.
journalctl -u 서비스이름
# journalctl -u tomcat
'OS > Linux' 카테고리의 다른 글
[Linux] iptables 특정 포트 열기 / 닫기 (iptables 사용법) (0) | 2021.09.05 |
---|---|
[Linux] CentOS7 Apache 설치 (아파치 웹 서버) (0) | 2021.08.11 |
[Linux] CentOS7 아파치 톰캣(apache tomcat) 설치 (0) | 2021.08.02 |
[Linux] CentOS7 yum으로 Java(jdk) 설치 - yum (0) | 2021.08.01 |
[Linux] 리눅스 환경변수 설정 (2) | 2021.07.30 |