시스템 서비스 관리 (systemctl, 데몬, 소켓)
systemctl 명령어
- systemd 기반 리눅스에서 서비스(Unit)를 제어하는 명령어
주요 명령어
# 상태 확인
systemctl status [서비스명]
# 시작 / 정지 / 재시작
systemctl start [서비스명]
systemctl stop [서비스명]
systemctl restart [서비스명]
# 부팅 시 자동 실행 / 해제
systemctl enable [서비스명]
systemctl disable [서비스명]
# 실행 중인 유닛 목록 보기 (active 상태)
systemctl list-units --type=service
# 전체 서비스 (enable/disable 포함)
systemctl list-unit-files --type=service
데몬 (Daemon)
- 백그라운드에서 실행되는 서비스 프로세스
- 일반적으로 시스템 부팅 시 자동 실행됨
- 예시:
sshd,crond,firewalld,vsftpd
데몬 실행 방식
Standalone 방식
- 데몬이 항상 메모리에 상주하며 요청을 직접 처리
- 빠른 응답 가능
xinetd 기반 방식
- xinetd가 요청을 감시하다가 필요 시 데몬 실행
- 메모리 효율은 좋지만 약간 느릴 수 있음
- 현재는 거의 사용되지 않으며, systemd socket activation으로 대체됨
소켓 (Socket)
- 네트워크 통신의 엔드포인트
- systemd에서는
.socket유닛으로 관리
특징
- 요청이 들어올 때만 서비스 실행 (On-demand)
- systemd의 socket activation 기능
소켓 제어 예시
- 주의: 확장자를 생략하면
.service가 기본 적용됨
systemctl start telnet.socket
systemctl enable telnet.socket
telnet 서버 예시
# 설치
yum install -y telnet-server
# 소켓 활성화
systemctl start telnet.socket
# 자동 실행 설정
systemctl enable telnet.socket
# 방화벽 설정
firewall-cmd --add-service=telnet --permanent
firewall-cmd --reload
서비스 vs 소켓 비교
| 항목 | 서비스(.service) | 소켓(.socket) |
|---|---|---|
| 실행 시점 | 시작 시 바로 실행 | 요청 시 실행 |
| 메모리 사용 | 항상 상주 | 필요할 때만 실행 → 절약 |
| 성능 | 빠름 | 최초 요청 시 지연 가능 |
| 역할 | 실제 데몬 실행 | 트리거 역할 (리스닝) |
| 대표 구조 | traditional daemon | systemd socket activation |