본문 바로가기
리눅스공부/명령어와 필수 작동법

[개념] 프로세스/데몬/서비스

by 으노으뇨 2022. 12. 18.
728x90
반응형
SMALL

리눅스나 유닉스에 익숙하지 않은 사용자는 조금 생소한 용어일 수 있으므로 정리해 보았다.

프로세스

프로세스를 정의하면 '하드디스크에 저장된 실행 코드(프로그램)가 메모리에 로딩되어 활성화 된 것' 이라고 설명할 수 있다. 
예를 들어 웹 브라우저 프로그램인 FireFox 는 하드디스크의 어딘가에 저장되어 있을 것이다. 이러헥 하드에 저장된 파일을 '프로그램'이라고 부르며, Fire Fox 를 실행해서 화면에 나타난 상태( 더 정확히 표현하면 메모리에 로딩된 상태 ) 를 '프로세스'라고 부른다. 

포그라운드 프로세스

포그라운드 프로세스는 Fire Fox 등의 프로그램을 실행했을 때 화면에 나타나 사용자와 상호 작용하는 프로세스를 말한다.  즉, 화면에서 실행되는 것이 보이는 프로세스라고 생각하면 된다.

백그라운드 프로세스

백그라운드 프로세스는 실행되어 있지만, 화면에 나타나지 않고 뒤에서 실행되는 프로세스를 말한다. 예를 들어 바이러스 백신, 서버 데몬등은 눈에 보이지 않지만 실행되고 있다.

프로세스 번호

메모리에 로딩되어 활성화된 프로세스를 구분하려면 각각 고유 번호가 필요하다. 이렇게 각각 프로세스에 할당된 고유 번호를 프로세스 번호라고 한다. 프로세스 번호가 필요한 이유는 활성화된 프로세스를 메모리에서 강제로 제거할 때 프로세스 번호를 사용해야 하기 때문이다.

작업 번호

현재 실행되는 백그라운드 프로세스의 순차 번호를 의미한다.

부모 프로세스와 자식 프로세스

모든 프로세스는 혼자서 독립적으로 실행되는 것이 아니라 부모 프로세스의 하위에 종속되어 실행된다. 예를 들어 Fire Fox는 X 윈도 프로세스가 구동된 상태에서 실행되어야 하므로, X 윈도는 Fire Fox의 부모 프로세스, FireFox 는 X 윈도의 자식 프로세스라고 부른다.
여기서 Fire Fox 는 그냥 두고 X윈도만 강제 종료하면 Fire Fox가 계속 실행될까? 당연히 Fire Fox도 종료된다. 즉, 부모 프로세스를 종료하면 그에 종속된 자식 프로세스도 모두 종료된다. 

다음은 프로세스와 관련된 주요 명령어이다.

ps
현재 프로세스의 상태를 확인하는 명령어로, 많은 옵션과 함께 사용할 수 있다. 이 책에서 프로세스의 번호 및 상태를 확인 할 때에는
ps -ef | grep 프로세스 이름

명령을 사용한다. 이 정도는 꼭 기억하면 좋다

kill
프로세스를 강제로 종료하는 명령어로 -9 옵션과 함께 사용하면 무조건 프로세스가 종료된다. 예를들어 응답하지 않고 무한 루프를 도는 프로세스는
kill -9 프로세스 번호

명령을 실행해서 강제 종료시키면 된다.

pstree
부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다.
728x90
반응형
LIST

댓글