시그널

리눅스에서는 프로세스끼리 서로 통신을 할 때 사용되는 것이다.존재하는 시그널의 종류를 보기 위해서는 kill -l명령을 실행하면 된다.

프로세스 생성

하나의 프로세스가 다른 프로세스를 생성하기 위한 시스템 호출방법은 fork, exec이 있다.

fork는 새로운 프로세스를 위해 메모리를 할당받아서 복사본 형태의 프로세스를 실행하고, exec는 원래의 프로세스를 새로운 프로세스를 덮는 형태이다.

리눅스는 부팅이 시작하면 커널이 init프로세스라는 최초의 프로세스를 발생시키고 init은 PID 1번을 할당받는다.

프로세스를 관리하는 명령어는 프로세스 관리 명령어 에 있다.

데몬

데몬은 주기적이고 지속적인 서비스 요청을 처리하기 위해 계속 실행되는 프로세스로 백그라운드로 실행된다. 이들은 이름뒤에 데몬을 뜻하는 d가 붙는다.

데몬 프로세스의 실행 방법은 standalone과 inet방식이 있다. standalone 방식은 보통 부팅시에 실행되어 프로세스가 메모리에 상주하면서 서비스 요청을 처리한다. 웹, 메일처럼 빈번한 요청이 들어오는 서비스는 대부분 이러한 방식을 사용한다.

반면 inet방식은 서비스 요청이 들어왔을 때 관련 프로세스를 실행시키고, 접속 종료 후에는 자동으로 프로세스를 종료하는 방식이다. 자주 사용하지 않는 서비스들에 대해 메모리를 효율적으로 관리하기 좋으므로 사용한다. 리눅스 커널 2.2버전까지는 inted라는 데몬이 이러한 서비스들을 관리한다.

2.4버전 부터는 xinetd가 이 역할을 수행한다.