프로세스
하드디스크에 저장된 실행 코드(프로그램)가 메모리에 로딩되어 활성화 된 것 정도로 볼 수 있다.
예를 들어 웹 브라우저 프로그램인 파이어폭스는 하드디스크 어딘가에 저장되어 있을 것이다. 이렇게 하드에 저장된 파일을 '프로그램' 이라 부르며 우리가 이 프로그램을 실행 하여 화면에 나타난 상태(메모리에 로딩된 상태)를 '프로세스'라 한다.
프로세스와 관련된 용어
포그라운드 프로세스 :
파이어폭스 등과 같은 프로그램이 실행하면 화면에 나타나서 사용자와 상호 작용하는 프로세스를 말한다.
화면에서 실행되는 것이 보이는 프로세스라고 생각하면 된다.
백그라운드 프로세스 :
실행은 되었지만 화면에는 보이지 않고, 뒤에서 실행되는 프로세스를 말한다. 예를 들면 백신, 서버 데몬 등등이 있다.
프로세스 번호(PID) :
메모리에 로딩되어 활성화된 프로세스를 구분하려면 각각의 고유 번호가 필요하다. 이렇게 각각의 프로세스에 할당된 고유 번호를 프로세스 번호라고 한다. 프로세스 번호가 필요한 이유는, 활성화된 프로세스를 메모리에서 강제로 제거하려면 프로세스 번호를 사용해야 하기 때문이다.
작업 번호 :
현재 실행되는 백그라운드 프로세스의 순차 번호를 의미한다.
부모프로세스 와 자식프로세스 :
모든 프로세스는 혼자서 독립적으로 실행되는 것이 아니라 부모 프로세스의 하위에 종속되어 실행된다.
예를 들어 파이어폭스 같은 경우 x윈도 프로세스가 구동된 상태에서 실행되어야 하므로, x윈도 는 파이어폭스의 부모 프로세스이며 파이어폭스는 x윈도의 자식 프로세스 이다. 부모 프로세스가 종료되면 자식 프로세스도 강제로 종료된다. 자식 프로세스는 부모에게 의존 하고 있기 때문에.
관련된 주요 명렁어
ps
현재 프로세스의 상태를 확인 하는 명령어
프로세스의 번호 및 상태를 확인 할 떄는 ps -ef | grep [프로세스이름]을 쓰면 된다. 자주 쓰는 명령어니 기억해두자
- a (All processes) : 프로세스 현황 표시
- u (User) : 유저 지향적 (top 포맷)
- x : 터미널 제어 없이 프로세스 현황 보기
- e (All processes) : 현재 시스템 내에서 실행중인 모든 프로세스 정보를 출력
- f (Full listing) : 모든 정보 확인
- o (User) : 유저 포맷팅
ps -f 명령으로 나타나는 항목들의 의미
항목 |
의미 |
UID |
프로세스의 실행 / 소유자 아이디 |
PID |
프로세스의 고유 번호(Process Identification Number) |
PPID |
부모 프로세스의 PID(Parent PID) |
C |
프로세스 우선순위 |
STIME |
프로세스가 시작된 시간 |
TTY |
프로세스와 연결된 터미널 |
TIME |
실행에 걸린 시간 |
CMD |
프로세스를 생성하는데 내린 명령 |
kill
프로세스를 강제로 종료하는 명령어 이다. -9와 함께 사용하면 무조건 프로세스가 종료된다.
예를들어 종료가 되지않고 무한루프를 도는 프로그램은 kill -9 [프로세스번호] 명령을 실행해 강제 종료시키면 된다.
pstree
부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다
&
명령어 뒤에 붙이는 &는 백그라운드로 프로세스를 실행시키겠다는 의미다.
(압축프로그램 같은 것들을 대용량으로 만든다면 시간이 오래 걸릴 텐데 이럴 때 쓰면 유용하다.)
'리눅스' 카테고리의 다른 글
표준어 입력 재지정 (I/O Redirection), 파이프라인 (0) | 2021.02.22 |
---|---|
파일 및 디렉토리 검색 관련 명령어 (grep, find) (0) | 2021.02.22 |
리눅스 관련 기초 프롬프트 및 디렉토리 관련 명령어 (0) | 2021.02.19 |
리눅스 - 링크 (0) | 2021.01.28 |
리눅스 - 마운트 (0) | 2021.01.26 |