관리 메뉴

드럼치는 프로그래머

[Linux] 프로세스와 그 관련명령어 본문

★─Programing/☆─Linux

[Linux] 프로세스와 그 관련명령어

드럼치는한동이 2007. 7. 30. 20:22

 리눅스나 유닉스에 익숙하지 않은 사용자는 좀 생소하겠지만, 중요한 개념들이므로 잘 이해하도록 하자.


| 프로세스 |
 프로세스(Process)를 간단히 정의하자면, "하드디스크에 저장된 실행 코드(프로그램)가 메모리에 로딩되어 활성화된 것"이라고 할 수 있다.
 
 프로세스와 관련된 필수 개념및 용어

1. 포그라운드 프로세스
 방금 얘기한 Firefox 등과 같이 실행하면 화면에 나타나서 사용자와 상호 작용을 하는 프로세스를 말한다. 화면에서 실행되는 것이 보이는 프로세스라고 생각하면 된다.

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

3. 프로세스 번호
 메모리에 로딩되어 활성화된 프로세스를 구분하기 위해서는 각각의 고유 번호가 필요하다. 이렇게 각각의 프로세스에 할당된 고유 번호를 프로세스 번호라 부른다. 프로세스 번호가 필요한 이유는 메모리에서 활성화된 프로세스를 메모리에서 강제로 퇴장시키기 위해서는 프로세스 번호를 사용해야 하기 때문이다.

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

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



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

1. ps
 현재 프로세스의 상태를 확인하는 명령어로, 많은 옵션과 함께 사용할 수 있다. 이 책에서 프로세스의 번호 및 상태를 확인할 때 주로 사용하게 될 명령은 "ps -ef | grep <프로세스 이름>" 이다. 이 정도 꼭 숙지하도록 하자.

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

3. pstree
 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다.

Comments