02 · CHAPTER 03 · SYSTEMS
보이지 않는
일꾼들
프로세스와 systemd 서비스를 확인하며 프로그램이 시작되고 멈추는 흐름을 살펴봅니다.
SYSTEMS STUDY NOTE보이지 않는 일꾼들Process · systemd · Service · Signal
01
주방 문이 닫혀도 요리는 계속된다
핵심 용어
Process systemd Service Signal
터미널 창을 닫아도 서버의 서비스는 백그라운드에서 계속 일합니다.
프로세스는 실행 중인 프로그램의 한 순간입니다. PID로 구분되고 부모·자식 관계, 실행 사용자, CPU와 메모리 사용량을 가집니다.
systemd는 서비스 시작, 종료, 자동 시작과 상태를 관리합니다. 서비스가 active라고 해도 애플리케이션이 정상 응답하는지는 별도로 확인해야 합니다.
02
상태를 세 갈래로 나누기
핵심 개념
Process Unit Listen Response
프로세스, 서비스 관리자, 네트워크 응답을 각각 확인합니다.
Process프로그램이 실제 실행 중인지
Unitsystemd가 어떤 상태로 관리하는지
Listen포트에서 연결을 기다리는지
Response요청에 정상 응답하는지
03
서비스가 안 될 때의 순서
관련 명령어
systemctl status ssh --no-pager journalctl -u ssh --since today --no-pager ps -ef --forest ss -tulnp curl -I http://127.0.0.1 상태와 로그, 포트, 로컬 응답을 차례로 확인합니다.
$ systemctl status ssh --no-pager
$ journalctl -u ssh --since today --no-pager
$ ps -ef --forest
$ ss -tulnp
$ curl -I http://127.0.0.1
04
프로세스 이름만 믿지 않기
보안 관점
위험 요소 확인 기준 대응 원칙
공격자는 정상처럼 보이는 이름을 사용할 수 있으므로 실행 경로와 사용자, 네트워크 연결을 함께 봅니다.
강제 종료는 마지막 수단입니다. 먼저 로그와 상태를 보존하고 정상 종료 신호를 사용한 뒤, 반복 재시작의 원인을 설정과 의존 서비스에서 찾습니다.
프로세스가 있다는 사실은 서비스가 정상이라는 뜻이 아니다. 실행 상태와 포트, 응답, 로그를 함께 확인하자.
CHAPTER REVIEW
이번 장에서 기억할 한 문장
서비스 장애는 실행 여부, 포트, 로그를 순서대로 연결해 보면 대부분 원인의 범위를 좁힐 수 있다.