리눅스 프로세스

리눅스 프로세스

프로세스 vs 바이너리

바이너리 - 코드 이미지 (실행 파일)
실행 중인 프로그램을 프로세스라고 한다.

리눅스는 다양한 프로세스 실행 환경

유닉스 철학 : 여러 프로그램이 유기적으로 각자의 일을 수행하면서 전체 시스템이 동작하도록 하는 모델

foreground process / background process

foreground process: 쉘 에서 해당 프로세스가 실행되고 있으면 수행 종료 전까지 다른 입력을 하지 못하는 프로세스

background process: 사용자 입력과 상관 없이 실행되는 프로세스.
쉘(shell) 에서 해당 프로세스 실행시, 맨 뒤에 &를 붙여줌.

1
2
find / -name '*.py' > list.txt &
[1] 57

[1]은 작업 번호 57은 pid를 나타냄.

1
2
3
kill -9 [pid번호]

jobs

kill 명령어를 통해 프로세스를 종료시키고, jobs 명령어를 통해 background process로 실행중인 프로세스를 확인한다.

foreground process 제어하기

컨트롤 + z : foreground 프로세스를 실행 중지 상태로 변경

맨 마지막 컨트롤 + z 로 중지된 프로세스는 bg 명령으로 background로 실행될 수 있다.

jobs 명령어를 통해 진행 또는 중지된 프로세스를 보여준다.

컨트롤 + c : 프로세스를 완전히 종료 시킴

프로세스 상태 확인

ps 프로세스 상태 확인

데몬 프로세스(daemon process) : 사용자 모르게 시스템 관리를 위해 실행되는 프로세스로 보통 시스템이 부팅될 때 자동 실행.

보통 ps aux를 많이 사용한다.

USER: 소유자 정보

PID : process id

%CPU : CPU 사용하고 있는 퍼센트

%MEM : memory 사용하고 있는 퍼센트

VSZ : 가상메모리에서 실제로 쓰고 있는 메모리

RSS : 페이징 시스템을 사용해서 실제 물리 메모리에서 사용하고 있는 사이즈

TTY : 어떤 터미널과 연결되 있는가? 하드웨어 리소스

STAT : 상태

프로세스 죽이기

kill -9 <pid> -9 강제로 죽이기