본문 바로가기
UNIX 시스템

Process Management - 14주차 수업 - 1

by 세인트킴 2023. 6. 11.

프로세스의 개념과 종류

프로세스: 실행중인 프로그램

시스템 프로세스

유닉스 운영에 필요한 기능 수행

사용자 프로세스

사용자들이 실행시킨 프로세스

프로세스의 종류

프로세스 설명
데몬(daemon) 유닉스 커널에 의해 실행되는 프로세스로 특정 서비스 제공
부모(parent) 자식 프로세스를 만드는 프로세스
자식(child) 부모에 의해 생성된 프로세스, 실행이 끝나면 부모 프로세스에서 결과를 돌려주고 종료
고아(orpan) 실행 도중에 부모 프로세스가 종료된 프로세스, 1번 프로세스를 새로운 부모로 가진다.
좀비(zombie) 부모 프로세스가 종료처리를 하지 않은 프로세스, 할당된 시스템 자원이 회수되지 않은 상태

프로세스 관리

프로세스 목록 보기

ps [option]

프로세스 정보를 출력. PID, 터미널, CPU 시간, 명령어

옵션

더보기

-e: 시스템에 있는 모든 프로세스 출력

-f: 프로세스에 대한 자세한 정보 출력

-u UID: 특정 사용자에 대한 모든 프로세스 출력

프로세스 목록 보기 

더보기
구분 설명 구분 설명
UID 소유자의 사용자ID STIME 프로세스 시작시간
PID 프로세스 번호 TTY 터미널 번호(? : 데몬)
PPID 부모 프로세스 번호 TIME CPU사용시간
C 프로세스 우선순위 CMD 명령어 이름

pgrep [option] 패턴

프로세스 이름으로 찾아 정보를 출력한다. 솔라리스에만 있는 특별한 명령.

옵션

더보기

-x: 패턴과 정확히 일치하는 프로세스 정보 출력 

-n: 패턴을 포함하고 있는 가장 최근의 프로세스 정보 출력

-U uid: 특정 사용자의 모든 프로세스 출력

-I: PID와 프로세스 이름 출력

-t term: 특정 단말기와 관련된 프로세스 정보 출력

프로세스 종료 시키기

ps명령으로 찾은 프로세스 중 불필요한 프로세스를 강제로 종료시킨다. 프로세스를 종료시키면 자식 프로세스들도 같이 종료된다. 

Kill [-signal] 패턴

PID로 지정한 프로세스에게 시그널을 보낸다. 시그널을 받은 프로세스는 지정된 동작을 수행하고, 시그널을 지정하지 않으면 프로세스를 종료하는 15번 프로세스를 보내서 프로세스를 종료한다. 사용자의 프로세스만 종료시킬 수 있다. 

Signal

프로세스에게 보내는 신호, 시그널을 수신하면 지정된 동작을 수행한다.

종류

더보기
시그널 번호 시그널 이름 기능 기본 응답
1 SIGHUP 터미널 연결이 끊어진 경우에 발생 종료
2 SIGINT 보통 Ctrl+c에 의해 발생 종료
9 SIGKILL 프로세스를 강제 종료한다.
무시할 수 없는 시그널
종료
15 SIGTERM 프로세스를 종료
무시할 수 있는 시그널
kill이 보내는 기본 시그널
종료

pkill [Signal] 프로세스명

프로세스의 명령 이름으로 프로세스를 찾아 지정한 시그널을 보낸다. 사용자가 소유한 프로세스만 종료 가능하다.

 

포그라운드(전위)와 백그라운드(후위) 작업 제어

  • fg
  • bg
  • jobs

 


 

실습1

더보기

1. 터미널 두개(A, B)에서 로그인 한 후, 터미널 A에서 sleep 120 실행

sleep 120

 

2. 다른 터미널(B)에서 프로세스를 확인하려면?

ps -u 1236

1147470 pys/596 00:00:00 sleep

 

3. pkill 하려면?

pkill sleep *pkill은 프로세스 이름을 적는다.

202121165@cslinux2:~$ sleep 120

종료됨

 

4. kill 하려면?

kill 1147470

202121165@cslinux2:~$ sleep 120

종료됨

실습2

더보기

1. 다음 명령을 수행 후 종료

sleep 300

2. 다시 명령을 수행

sleep 300

 

3. 위 프로세스를 다른 터미널에서 확인

ps -u 1236

1148246 pts/599 00:00:00 sleep

 

4. 해당 프로세스에 다음 시그널을 보낸다.

4-1. SIGHUP

kill -SIGHUP 1148246

sleep 300

끊어짐

 

4-2. SIGINT

kill -SIGINT 1148662

sleep 300

 

4-3. SIGTERM

kill -SIGTERM 1148732

sleep 300

종료됨

 

4-4. SIGKILL
kill -SIGKILL 1148797

sleep 300

죽었음