프로세스의 개념과 종류
프로세스: 실행중인 프로그램
시스템 프로세스
유닉스 운영에 필요한 기능 수행
사용자 프로세스
사용자들이 실행시킨 프로세스
프로세스의 종류
프로세스 | 설명 |
데몬(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
죽었음
'UNIX 시스템' 카테고리의 다른 글
usermod - 15주차 수업 - 2 (0) | 2023.06.16 |
---|---|
Process Management - 14주차 수업 - 2 (0) | 2023.06.11 |
Function - 13주차 수업 - 2 (0) | 2023.06.02 |
조건식 / 프로그램 인자 - 13주차 - 1 (0) | 2023.06.02 |
Loop - 12주차 수업 - 2 (실습 3-2 질문) (0) | 2023.06.01 |