본문 바로가기

리눅스-기본 개념

프로세스

프로세스의 정의

실행중인 프로그램 또는 PCB (Process control block)을 지닌 시스템

프로그램 카운터를 가진 프로그램을 프로세스로 정의한다.

 

프로세스가 실행되는 방법

 

  리눅스 프로세스는 fork(새로 메모리를 할당받아 복사본 형태로 실행) 방식과 exec(새로운 프로세스를 호출하여 대체 하여 기존의 프로세스는 지워지며 새로운 프로세스만 실행) 방식으로 작동된다. 

  이렇게 새로운 프로세스로 대체하는 과정에서 지워지지 않는 프로세스를 좀비 프로세스 라고 부르며 kill명령어로 프로세스작업을 죽이는 작업을 해야 한다.

하지만 kill명령어로 죽지않는 경우가 대부분인데, 이럴때는 부모프로세스를 kill해야한다. (물론 부모프로세스를 kill하여도 문제가없을 경우만)



프로세스 확인 방법

 

pstree

프로세스 와 프로세스의 하위 프로세스를 트리형태로 볼 수 있다.

[root@Linux ~]# pstree
├─systemd─┬─(sd-pam)
                  │           

                   ├─at-spi-bus-laun─┬─dbus-broker-lau───dbus-broker
                  │                 |         │                         

                   │                 |         └─3*[{at-spi-bus-laun}] 

 

해당 프로세스의 부모, 자식프로세스를 알수 있다.

 

옵션

옵션 설명
-a 각 프로세스의 명령행 인자까지 보여준다.
-h 현재 프로세스와 그 프로세스의 조상 프로세스를 하이라이트로 강조해서 보여준다.
-n 프로세스 이름 대신에 PID 값으로 정렬해서 보여준다.(Numeric sort)
-p PID 값을 같이 보여준다.

 

'리눅스-기본 개념' 카테고리의 다른 글

Linux 파일 시스템 권한  (3) 2023.08.31
systemd  (1) 2023.08.31
링크(link)  (2) 2023.08.31
i-node  (0) 2023.08.31
절대 경로와 상대 경로  (2) 2023.08.31