티스토리 뷰

<프로세스 관련 개념>

 

포그라운드 프로세스

화면에 나타나서 사용자와 상호작용하는 프로세스. 

 

백그라운드 프로세스

실행되고 있지만 화면에 나타나지 않고 뒤에서 실행되는 프로세스.

 

명령을 백그라운드로 실행시키려면 뒤에 & 문자를 붙인다.

그러나, vi 에디터와 같이 현재 터미널에서 입출력해야하는 프로세스는 &을 붙여서 백그라운드로 실행해도 아무 의미가 없다. 

& 붙여도 백그라운드로 실행 안되고 터미널에서 실행된다.

 

프로세스 번호

각각의 프로세스에 할당된 고유 번호.

활성화된 프로세스를 메모리에서 강제로 제거할 때 프로세스 번호가 사용된다.

 

작업 번호(Job number)

현재 실행되고 있는 백그라운드 프로세스의 순차 번호

Fore<->Back 바꿀 때 작업번호 필요하다.

 

부모 & 자식 프로세스

모든 프로세스는 부모 프로세스의 하위에 종속되어 실행된다. 혼자서 실행되는 것이 아니다.

예를 들어 firefox는 X윈도 프로세스가 구동된 상태에서만 실행할 수 있으므로 firefox는 X윈도의 자식 프로세스, X윈도는 부모 프로세스이다.

부모 프로세스를 종료하면 자식 프로세스도 당연히 종료된다.

 

 

<프로세스 관련 주요 명령어>

ps 

프로세스 목록을 보여준다.

ps -ef 명령을 입력하면 시스템 상의 모든 프로세스를 보여준다.

ps -ef | grep 프로세스이름 

주로 위와 같은 명령으로 보고싶은 프로세스만 볼 수 있도록 한다.

 

kill

프로세스를 강제 종료하는 명령어이다. 그런데 이 명령어는 kill, 무조건 죽이는 것보다는, 프로세스에게 어떤 signal을 보내는 명령어이다.

signal을 보냈을 때 그걸 받은 프로세스가 그 signal을 처리하는 handler가 없으면 죽는 것이다.

signal은 0~32까지 존재한다. 

 

kill -9 프로세스번호

9번 signal을 보내게 되면 무조건 죽는다. 프로세스를 강제 종료 시키는 것이다.

 

프로세스번호는 ps -ef | grep 프로세스이름 명령을 통해 알아내자.

[유저이름   프로세스번호   부모프로세스번호  ... ]

순서로 정보가 나오므로, 앞에서 두번째의 번호가 프로세스 번호이다.

 

 

pstree

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

 

 

bg 

포그라운드 프로세스 -> 백그라운드로 돌리기

 

jobs 

현재 백그라운드로 가동 중인 프로세스를 확인할 수 있다.

맨앞에 나오는 번호가 작업번호이다.

 

fg 작업번호

백그라운드 프로세스 -> 포그라운드로 바꾸기