프로세스는 실행 중인 프로그램을 뜻합니다.
프로세스의 종류 | 설명 |
---|---|
부모 프로세스 | 다른 프로세스를 생성할 수 있는 프로세스 |
자식 프로세스 | 부모 프로세로부터 만들어지는 프로세스 정상적으로 자식 프로세스가 끝난 뒤 부모 프로세스가 종료됨 |
데몬 프로세스 | 윈도우에서는 서비스와 같은 존재 백그라운드에서만 동작(화면에 보이지 않는다) |
고아 프로세스 | 일반적으로는 자식 프로세스는 종료 되면 부모 프로세스로 되돌아 가는데 부모 프로세스가 먼저 종료된 경우에는 자식 프로세스를 고아 프로세스라고 한다. |
좀비 프로세스 | 정상적으로 종료를 했지만 자원을 반납하지 않은 상태로 계속 남아있는 상태 |
ps 명령어는 윈도우의 작업 관리자와 비슷한 기능을 하는 명령어이다. ps에는 2가지 옵션이 있습니다.
옵션 | 기능 |
---|---|
-e | 시스템 상의 모든 프로세스 정보를 출력 |
-f | 상세한 정보 출력 |
따라서 이 옵션을 가지고 출력을 해보면 다음과 같은 결과를 얻을 수 있습니다.
여기서 각각의 요소들의 의미를 살펴보자면 다음과 같습니다.
옵션 | 기능 |
---|---|
UID | 프로세스를 실행한 사람 |
PID | 프로세스를 구분하기 위해 만들어진 프로세스 ID, 실행할 때마다 숫자가 바뀐다 |
PPID | 부모 프로세스 ID |
C | 스케줄링을 위한 CPU 사용량, 별로 의미 없는 필드 |
STIME | 프로세스 시작 시간 |
TTY | 장치 번호(터미널 창마다 장치 번호가 있는데, 그 터미널의 번호를 의미, ?는 운영체제가 자동으로 실행시켜주는 프로세스) |
TIME | 프로세스 누적 실행 시간 |
CMD | 프로그램을 어떻게 실행시켰나(명령어가 나옴) |
시그널 번호 | 설명 |
---|---|
1 | SIGHUP 프로세스 종료 없이 프로그램을 초기화 |
2 | SIGINT Ctrl+C 명령어를 누르면 발생하는 기능 |
9 | SIGKILL 무시할 수 없는 종료 |
15 | SIGTERM 무시할 수 있는 종료 |
명령어 | 설명 |
---|---|
kill | PID로 프로세스를 제어 |
pkill | 프로세스 이름으로 제어 |
터미널을 2개 켜놓고 한쪽에서 다른 한쪽의 pid를 알아내 종료를 시키면 종료되는 걸 알 수 있습니다.
다음과 같이 죽었음이 뜨고 종료가 됩니다.