Infra
systemd
umyu.__.3
2025. 8. 5. 13:11
애플리케이션 무중단 운영을 위해 systemd를 활용한다.
근데 systemd가 뭐지..
systemd
- 리눅스 초기화 시스템.
- 부팅 후 가장 먼저 실행되는 PID 1번 프로세스.
- 다른 모든 프로세스 관리.
주요 특징
- 병렬 처리 : 여러 서비스를 동시에 시작하여 시스템 부팅 속도 향상.
기존의 SysVinit, Upstart 같은 init 시스템은 순차 실행으로 부팅 속도가 느렸다. - 종속성 관리 : 서비스 간 의존 관계를 자동 분석하고 해결하여 서비스가 올바른 순서로 실행되도록 보장.
- 유닛 기반 관리 : 서비스, 마운트 지점, 소켓 등 모든 관리 대상을 Unit이라는 표준화된 단위로 다룬다.
- .timer : 특정 시점에 작업 수행.
- .path : 특정 경로 감시.
- .target : 시스템 상태 그룹화.
- On-Demand 실행 : 소켓 기반 활성화 기능을 통해 특정 서비스에 요청이 있을 때만 해당 서비스를 실행시켜 시스템 자원을 효율적으로 사용.
- 로그 관리 : journald라는 자체 로깅 시스템을 통해 시스템 및 서비스 로그를 통합 관리.
- 서비스 제어 : systemctl 명령어로 서비스를 시작, 중지, 재시작, 활성화, 비활성화 등 제어.
서비스(.service)
- 시스템에서 실행되는 데몬이나 애플리케이션을 관리하는 데 사용하는 유닛 파일로 정의.
- 어떻게 시작/중지할지, 어떤 조건에서 재시작할지 등을 설정.
- 주로 /etc/systemd/system/ 또는 /usr/lib/systemd/system/ 경로에 위치.
- systemctl 명령어로 서비스들을 관리.
데몬(Daemon)
사용자가 직접 제어하지 않고, OS 백그라운드에서 지속적으로 실행되는 프로그램.
시스템이 부팅될 때 자동 시작되어 종료될 때까지 계속 실행되는 경우가 많다.
- 백그라운드 실행 : 터미널이나 사용자 인터페이스에 직접 연결되지 않는다.
- 서비스 제공 : 네트워크 요청 처리(httpd), 작업 스케줄링(crond), 원격 접속 허용(sshd) 등 시스템 핵심 기능 제공.
- 프로세스 이름 : 관례적으로 끝에 'd'가 붙는 경우가 많다.
systemctl
systemd 시스템 및 서비스 관리자를 제어하는 핵심 명령어.
서비스 시작/중지
- systemctl start 서비스 : 서비스 시작.
- systemctl stop 서비스 : 실행 중인 서비스 중지.
- systemctl restart 서비스 : 서비스 재시작.
- systemctl reload 서비스 : 설정을 다시 불러와서 서비스를 재시작하지 않고 변경사항 적용.
서비스 활성화/비활성화
- systemctl enable 서비스 : 시스템 부팅 시 서비스 자동 시작 활성화.
- systemctl disable 서비스 : 부팅 시 서비스 자동 시작 비활성화.
서비스 상태 확인
- systemctl status 서비스 : 서비스의 현재 실행 상태(활성화,동작 여부, 로그 등) 확인.
- systemctl is-active 서비스 : 서비스가 실행 중인지.
- systemctl is-enabled 서비스 : 서비스가 부팅 시 자동 시작 활성화되어 있는지.
유닛 목록 조회
- systemctl list-units : 현재 메모리에 로드된 모든 활성 유닛 목록.
- systemctl list-units --type=service : 현재 실행 중인 서비스 유닛만 필터링.
- systemctl list-unit-files : 설치된 모든 유닛 파일과 상태.
전에는 service 명령어로 서비스 시작/중지, chkconfig 명령어로 부팅 시 자동 실행을 설정했으나, 최신 시스템에서는 내부적으로 systemctl로 리디렉션되어 실행된다.
기존 명령어들의 기능을 통합해서 더 일관되고 강력한 관리가 가능하기 때문이다.
그러니까 잘 알고 있자~