Linux 프로세스 관리

ohyujeong·2023년 12월 11일
0

linux

목록 보기
6/9

프로세스

메모리에 로드되어 실행 중인 프로그램을 프로세스라고 한다. 예를 들어 Linux에서 명령어가 실행(ls , pwd 등등)될 때마다 새 프로세스가 생성되고 시작된다.

  • 프로세스는 1~5자리의 고유한 PID (Process ID)를 가진다.
  • 동일한 PID를 가진 두 개의 프로세스가 존재할 수 는 없다.

프로세스 관리 명령어

ps

실행 중인 모든 프로세스를 조회한다. 명령과 함께 사용할 수 있는 다양한 옵션이 있다. 옵션 없이 명령 사용 시 현재 사용하는 쉘/터미널에 관련된 프로세스만을 보여준다.

아래와 같이 명령어를 사용한다.

# 현재 쉘/터미널 관련 프로세스
ps

# 현재 쉘/터미널 관련 프로세스의 상세정보 표시
ps -f

# 특정 사용자의 프로세스에 대한 확장된 정보 표시
ps -u <user-name>

# 메모리 상 존재하는 모든 프로세스 정보 표시
ps -e

option

옵션 없음 :-f : 프로세스의 상세 정보를 표시한다.
-u <user-name> : 특정 사용자의 프로세스에 대한 확장된 정보를 표시한다. user-name 을 입력하지 않을 경우 터미널에 로그인된 사용자로 지정된다.-e : 메모리 상 존재하는 모든 프로세스 정보를 표시한다.

필드 정보

USER,UID : 프로세스 실행 사용자 ID
PID : 프로세스 ID
PPID : 상위 프로세스 ID
- 터미널에서 ps 명령어를 입력하여 실행했기 때문에 ps 프로세스의 부모 프로세스는 터미널 프로세스인 bash가 된다.
%CPU : 프로세스의 CPU 사용량
%MEM : 프로세스의 메모리 사용량
VSZ : 프로세스의 가상 메모리 크기
RSS : 프로세스의 실제 메모리 크기
STAT : 프로세스의 상태
START, STIME : 프로세스 시작 시간
TTY : 프로세스와 실행된 터미널 유형
TIME : CPU에 의해 처리된 누적시간
CMD, COMMAND : 프로세스 실행 명령


kill

동작 중인 프로세스에 시그널을 전달한다. 여기서 기본 시그널값은 15번 SIGTERM으로, 보통 프로세스를 강제 종료할 때 사용한다. kill -l 명령어를 사용하여 시그널 목록을 확인할 수 있다. 아래와 같이 총 64개의 시그널이 있다.

아래와 같이 명령어를 사용한다.

# 프로세스를 종료한다.
kill <PID>

option

-[n] : n 에 프로세스에 전달할 시그널 번호를 넣어 사용한다. 예시로, 옵션 없이 명령어를 실행했는데도 종료되지 않을 경우 다음과 같이 9 시그널 번호를 사용하여 강제 종료시킬 수 있다.

kill -9 <PID>


예시로 PID가 4382인 sleep 프로세스를 -[n] 옵션으로 9 번 시그널을 전달하여 강제종료시켰다. ps 명령어를 통해 프로세스가 종료되었음을 확인할 수 있다.

좀 더 자세한 시그널 정보가 필요하다면 아래 명령어를 입력하여 문서에서 자세하게 볼 수 있다.

man 7 signal

renice

동작 중인 프로세스에 대한 우선순위를 재조정한다. 재조정 값은 -20~19 사이에 있고 -값이 우선순위가 높다.
아래와 같이 사용한다.

# 프로세스의 우선순위를 조정한다.
renice [우선순위 값] [PID]

top

프로세스 정보를 실시간 모니터링할 수 있다. 다음과 같이 명령어를 사용한다.

top

명령어를 실행하게 되면 다음과 같이 실시간 프로세스 정보를 출력하는 고정된 화면으로 진입한다.

필드 정보

PID : 프로세스 ID
USER : 프로세스 실행 사용자 ID
PR : 프로세스 우선순위, Priority
NI : 우선순위 조정값, niceness 로, renice 명령을 통해 우선순위를 변경할 수 있다. (-(마이너스)값이 클 수록 우선순위가 높다)
VIRT : 프로세스에 의해 사용되는 가상메모리 (Virtual image)
RES : 프로세스에 의해 사용되는 물리적 메모리 (Resident Size)
SHR : 프로세스에 의해 사용되는 공유 메모리 (Shared memory size)
S : 프로세스 상태
- Z : zombie
- T : traced or stopped
- S : sleep
- R : running
- D : uninterruptable sleep
- I : idle (커널 스레드 대기중이며 활성화되지 않음)
%CPU : CPU 사용률
%MEM : 메모리 사용률
TIME+ : 프로세스 실행 이후 사용된 CPU 사용시간 (1/100초 단위)
CMD : 프로세스 실행 명령


참고

https://m.blog.naver.com/sunguru/220744744609
https://www.geeksforgeeks.org/processes-in-linuxunix/?ref=lbp

profile
거친 돌이 다듬어져 조각이 되듯

0개의 댓글