본문 바로가기
Linux

[리눅스 커맨드라인] Part1. Shell 학습 - 4

by _avocado_ 2021. 1. 31.
'리눅스 커맨드 라인 완벽 인문서'의 내용을 정리하였습니다.

 

10장. 프로세스

명령어

ps - 현재 프로세스의 상태를 알려준다.
top(htop) - 프로세스를 표시한다. (htop은 조금 더 좋은 뷰를 제공한다.)
jobs - 실행 작업을 나열한다.
bg - 프로세스를 백그라운드 상태로 전환한다.
fg - 프로세스를 포그라운드 상태로 전환한다.
kill - 프로세스에 시그널을 보낸다.
killall - 프로세스명으로 프로세스를 종료한다.
shutdown - 시스탬을 종료하거나 재시작한다.

 

프로세스 - 리눅스가 CPU를 사용하기 위해 기다리는 프로그램들을 나열한 것

 

▶ 프로세스의 종류

 

init 스크립트 - 시스탬이 시작될 때 자동으로 실행되는 프로세스

 

데몬 프로그램 - 사용자 인터페이스 없이 백그라운드 상태로 실행되는 프로그램

 

부모, 자식 프로세스 - A 프로그램을 실행하기 위해 A가 B를 실행시킬 때 A는 부모, B는 자식 프로세스가 된다.

 

프로세스 ID(PID) - 커널이 프로세스를 관리하기 위해 프로세스마다 ID를 부여하여 관리한다.


프로세스 확인

 

● ps 로 프로세스 보기

ps: 현재 터미널과 관련된 프로세스의 상태를 보여준다.

ps x: 전체 프로세스에 대한 정보를 보여준다.

ps aux: 전체 프로세스에 대한 상세한 정보를 보여준다.

ps 결과 칼럼의 의미

컬럼명 의미
USER 사용자 ID, 프로세스의 소유자를 나타냄
PID 프로세스 ID
%CPU CPU 사용량(%)
%MEM 메모리 사용량(%)
VSZ 가상 메모리 크기
RSS 사용자 메모리 크기, 프로세스가 사용중인 물리적 메모리(RAM)을 나타낸다.(KB)
TTY teletype의 약자, 프로세스 제어 터미널을 나타낸다. ?: 현재 없다는 뜻
STAT 프로세스의 상태를 나타낸다. R: 실행,S: 휴면, T: 종료 등
START 프로세스가 시작된 시간, 24시간을 넘기면 날짜를 나타낸다.
TIME CPU 사용시간을 나타낸다.

 

● top으로 프로세스 변화 살펴보기

 

ps와 top의 차이: ps는 실행된 시점의 프로세스 상태를 보여준다. top은 지속적으로 갱신되는 결과를 화면에 보여준다.

 

top 결과: 시스템 요약과 프로세스를 나타내는 테이블을 보여준다.


프로세스 제어

프로세스 실행: 명령어처럼 입력한다.

 

프로세스 인터럽트: ctrl + c로 프로세스를 중단할 수 있다.

 

● jobs: 현재 실행중인 프로그램의 상태와 번호(PID와 다른)를 확인할 수 있다.

 

프로세스를 백그라운드로 전환

명령문 &: 명령이 백그라운드에서 실행된다.

bg %번호: jobs로 확인된 프로세스 번호를 이용하여 프로그램을 백그라운드로 전환한다.

프로세스 포그라운드로 전환

fg %번호: jobs로 확인된 프로세스 번호를 이용하여 프로그램을 포그라운드로 전환한다.

프로세스 일시 정지

프로세스 실행중 ctrl + z: 일시정지되면서 백그라운드로 전환된다.

시그널

● kill -옵션 프로세스ID: 프로세스에 옵션별 시그널을 보낸다. (종료시키는 것이 아닌 종료해라는 신호를 보낸다.)

 

주요 kill 시그널

번호 이름 의미
1 HUP 터미널 세션 종료, 데몬 프로그램에서 많이 사용된다.
2 INT ctrl + C 와 같은 기능을 한다. 인터럽트
9 KILL 프로세스를 즉시 종료한다. 강제 종료
15 TERM 기본 kill 시그널, 프로그램이 살아있다면 종료하는 신호를 보냄
18 CONT STOP시그널로 정지된 프로세스를 복원한다.
19 STOP 프로세스를 종료없이 일시 정지 시킨다. 이 시그널은 무시할 수 없다.

 

● killall -옵션 프로그램명: 이름과 일치하는 여러 프로세스에 동시에 신호를 보낸다. 

댓글