★ 프로세스와 데몬에 대한 설명
○ 프로세스
프로세스는 실행 중인 프로그램의 인스턴스입니다. 즉, 메모리에 로드되어 CPU 시간을 할당받아 실행되는 프로그램의 단위라고 할 수 있습니다.
- 포그라운드 프로세스: 사용자가 직접 명령어를 입력하거나 프로그램을 실행하여 생성되는 프로세스입니다. 사용자가 직접 제어하고 상호작용할 수 있으며, 사용자가 작업을 종료하면 프로세스도 종료됩니다.
- 백그라운드 프로세스: 사용자가 명령어 뒤에 &를 붙여 실행하거나, 시스템이 자동으로 시작하는 프로세스입니다. 사용자의 직접적인 개입 없이 시스템 백그라운드에서 실행되며, 시스템이 종료될 때까지 계속 실행될 수 있습니다.
○ 데몬 (Daemon)
데몬은 특별한 종류의 백그라운드 프로세스입니다. 시스템이 부팅될 때 자동으로 시작되어 사용자의 로그인 여부와 상관없이 항상 실행되며, 특정 서비스를 제공하는 역할을 합니다. 데몬은 일반적으로 다음과 같은 특징을 가지고 있습니다.
- 시스템 서비스 제공: HTTP 서버, SSH 서버, 데이터베이스 서버 등 다양한 시스템 서비스를 제공합니다.
- 부모 프로세스가 없거나 init 프로세스: 데몬은 일반적으로 부모 프로세스 없이 시스템 초기화 프로세스인 init 프로세스의 자식 프로세스로 실행됩니다.
- 프로세스 ID가 낮은 값: 시스템의 중요한 프로세스임을 나타내기 위해 낮은 프로세스 ID를 할당받습니다.
- 프로세스 이름에 'd'가 붙는 경우가 많음: 예를 들어, HTTP 서버 데몬은 httpd, SSH 서버 데몬은 sshd라고 부릅니다.
☞ systmed: 최신 리눅스 시스템에서는 systemd라는 시스템 및 서비스 관리자를 사용하여 데몬을 관리합니다. systemd는 데몬을 유닛이라고 부르며, 유닛 파일을 통해 데몬의 동작을 설정합니다.
★ 서비스와 소켓
- 서비스 (Service): 시스템이 제공하는 기능 또는 기능의 집합입니다. 데몬은 서비스를 구현하는 실행 가능한 프로그램입니다. 서비스는 항상 존재하며, 시스템이 실행되는 동안 계속해서 사용 가능한 상태를 유지합니다.
- 소켓 (Socket): 프로세스 간 통신을 위한 연결점입니다. 클라이언트와 서버 사이의 데이터 흐름을 위한 논리적인 주소 역할을 합니다. 소켓은 서비스를 이용하기 위해 임시적으로 생성되며, 통신이 종료되면 소멸됩니다.
- 생존 기간: 서비스는 항상 존재하지만, 소켓은 임시적입니다.
- 역할: 데몬은 서비스를 구현하며, 소켓은 통신을 위한 연결점입니다.
댓글 영역