리눅스 시스템의 이해 - 프로세스

2022. 1. 31. 04:06리눅스마스터 1급 - 필기/리눅스 실무의 이해

프로세스란? Linux - 프로세스 - 1 (정의) (tistory.com) 

리눅스가 시스템을 시작하면 최초의 프로세스인 init 프로세스가 시스템에 필요한 프로세스들을 호출해서 실행시킵니다. 프로세스를 호출한다는 표현은 부모 프로세스가 자식 프로세스 생성하는 것이라고 생각하시면 됩니다.

프로세스가 다른 프로세스를 호출하는 방법에는 다음과 같이 두가지 방식이 있습니다.

 

fork :  자식 프로세스를 위한 메모리 공간을 할당받고 부모 프로세스의 복사본 형태로 실행하게 됩니다. 새로 메모리를 할당받아 복사본 형태로 실행하게 되며 기존 프로세스(부모 프로세스)는 그대로 실행됩니다.

 

exec : 자식 프로세스가 부모 프로세스를 덮어씌우면서 호출되는 방식으로 프로세스 실행시 기존의 부모 프로세스는 지워지고 새로운 자식 프로세스만 실행됩니다.

 

프로세스 중에는 데몬 프로세스라고 있습니다. 자세한 내용은 다음 링크에서 확인 부탁드립니다. Linux - 프로세스 - 3 (데몬 프로세스) (tistory.com

 

리눅스 서버는 데몬 방식으로 서비스를 운영 합니다. 이 운영 방식에는 크게 standalone 방식과 inetd(xinetd) 방식으로 나뉩니다.

 

1. Standalone 타입의 데몬

독자적으로 프로세스가 구동되어 서비스 하는 데몬이며 웹 서버, DB 서버, 센드메일 서버 등이 있습니다.

Standalone 타입의 데몬은 메모리상에 항상 구동되어야 하기 때문에 자주 요청되는 데몬이 적합합니다.

상시 실행되고 있다가 클라이언트로부터 요청을 받으면 바로 서비스해 주는 데몬입니다

Standalone의 실행 파일은 /etc/init.d 디렉터리에 저장되어 있습니다.

사용 방법 : systemctl start/stop/restart 데몬명

 

2. xinetd 타입의 데몬

사용 빈도수가 적은 데몬들입니다. 요청이 올때마다 메모리에 올라가며 평상시에는 실행되고 있지 않습니다. 설정 파일은 /etc/xinetd.d 디렉터리에 저장되어 있습니다.

이 데몬들은 외부로부터 요청이 들어오면 바로 서비스를 제공하지 않습니다. 예를 들어 클라이언트가 telnet이라는 xienetd 타입의 데몬에 요청을 하면 telnet이 바로 실행되는 것이 아닙니다. 우선 xinetd 데몬이 이 요청을 먼저 받습니다. xinetd 데몬과 xinetd 타입의 데몬은 서로 다른 것입니다.

 

xinetd 데몬 : Standalone 타입의 데몬이며 슈퍼데몬이라고 부릅니다.

xinetd 데몬은 xinetd 타입의 데몬들의 상위 존재하며 이들을 관리하는 역할을 합니다. 그러므로 telnet에 요청이 들어오면 슈퍼데몬이 먼저 요청을 받고 요청한 사용자가 허가를 받은 사용자인지, 현재 하위 데몬(xinetd 타입의 데몬)에 telnet 데몬이 있는지를 검사한뒤 telnet 데몬의 서비스를 사용할 수 있도록 연결해주는 것입니다.

수퍼데몬의 설정 파일은 /etc/xinetd.conf 이며 수퍼데몬은 설정파일을 통해 요청한 데몬의 유무를 확인 합니다