[Linux] 프로세스 제어

seogi kim·2021년 2월 22일
0

Linux

목록 보기
3/5
post-thumbnail

프로세스란??

프로세스는 실행 중인 프로그램을 뜻합니다.

프로세스의 종류

프로세스의 종류설명
부모 프로세스다른 프로세스를 생성할 수 있는 프로세스
자식 프로세스부모 프로세로부터 만들어지는 프로세스
정상적으로 자식 프로세스가 끝난 뒤 부모 프로세스가 종료됨
데몬 프로세스윈도우에서는 서비스와 같은 존재
백그라운드에서만 동작(화면에 보이지 않는다)
고아 프로세스일반적으로는 자식 프로세스는 종료 되면 부모 프로세스로 되돌아 가는데 부모 프로세스가 먼저 종료된 경우에는 자식 프로세스를 고아 프로세스라고 한다.
좀비 프로세스정상적으로 종료를 했지만 자원을 반납하지 않은 상태로 계속 남아있는 상태

ps 명령어

ps 명령어는 윈도우의 작업 관리자와 비슷한 기능을 하는 명령어이다. ps에는 2가지 옵션이 있습니다.

옵션기능
-e시스템 상의 모든 프로세스 정보를 출력
-f상세한 정보 출력

따라서 이 옵션을 가지고 출력을 해보면 다음과 같은 결과를 얻을 수 있습니다.

여기서 각각의 요소들의 의미를 살펴보자면 다음과 같습니다.

옵션기능
UID프로세스를 실행한 사람
PID프로세스를 구분하기 위해 만들어진 프로세스 ID, 실행할 때마다 숫자가 바뀐다
PPID부모 프로세스 ID
C스케줄링을 위한 CPU 사용량, 별로 의미 없는 필드
STIME프로세스 시작 시간
TTY장치 번호(터미널 창마다 장치 번호가 있는데, 그 터미널의 번호를 의미, ?는 운영체제가 자동으로 실행시켜주는 프로세스)
TIME프로세스 누적 실행 시간
CMD프로그램을 어떻게 실행시켰나(명령어가 나옴)

프로세스 제어 명령어

시그널 번호

시그널 번호설명
1SIGHUP
프로세스 종료 없이 프로그램을 초기화
2SIGINT
Ctrl+C 명령어를 누르면 발생하는 기능
9SIGKILL
무시할 수 없는 종료
15SIGTERM
무시할 수 있는 종료

kill, pkill 명령어

명령어설명
killPID로 프로세스를 제어
pkill프로세스 이름으로 제어

kill 예제

터미널을 2개 켜놓고 한쪽에서 다른 한쪽의 pid를 알아내 종료를 시키면 종료되는 걸 알 수 있습니다.

다음과 같이 죽었음이 뜨고 종료가 됩니다.

profile
개미같은 개발자

0개의 댓글