리눅스 프로세스
리눅스 프로세스
프로세스 vs 바이너리
바이너리 - 코드 이미지 (실행 파일)
실행 중인 프로그램을 프로세스라고 한다.
리눅스는 다양한 프로세스 실행 환경
유닉스 철학 : 여러 프로그램이 유기적으로 각자의 일을 수행하면서 전체 시스템이 동작하도록 하는 모델
foreground process / background process
foreground process: 쉘 에서 해당 프로세스가 실행되고 있으면 수행 종료 전까지 다른 입력을 하지 못하는 프로세스
background process: 사용자 입력과 상관 없이 실행되는 프로세스.
쉘(shell) 에서 해당 프로세스 실행시, 맨 뒤에 &를 붙여줌.
1 | find / -name '*.py' > list.txt & |
[1]
은 작업 번호 57은 pid를 나타냄.
1 | kill -9 [pid번호] |
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 강제로 죽이기