프로세스
프로세스 = 실행 중인 프로그램
프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다.
foreground process / background process
foreground process
셸에서 프로세스 실행을 명령했을 때, 해당 프로세스가 종료되기 전까지 사용자가 다른 입력을 할 수 없는 프로세스를 말한다. 해당 프로세스의 실행시간이 오래 걸린다면, 프로세스 종료 전까지 사용자는 입력을 할 수 없다.
- [Ctrl] + c 명령어 : 실행중인 foreground process를 즉시 종료하는 명령어이다. 해당 프로세스는 완전히 종료된다.
-> 작업이 실행 중에 ls 명령어를 입력해도 해당 작업이 모두 끝난 뒤에 동작한다.
(sleep n)은 n초동안 아무것도 하지 않는 프로세스를 하나 생성한다.
background process
사용자 입력과 상관없이 실행되는 프로세스이다.
background process를 실행하려면 셸에서 명령어 맨 뒤에 ' & '를 붙여준다.
해당 프로세스를 background process로 실행하면 [1] 50167과 같은 텍스트가 출력되며 다른 명령어를 입력할 수 있다.
[1]은 작업 번호를 나타내고, 50167은 pid(process ID)를 나타낸다.
프로세스 상태 확인하기 : ps 명령어
현재 작동하는 프로세스 목록과 프로세스의 현재 상태를 출력한다.
ps [옵션]
위와 같이 여러가지 옵션을 입력하여 프로세스 상태를 확인할 수 있다.
- -e : 모든 프로세스 정보 출력
- -f : 프로세스의 다양한 정보 출력
- -a : 모든 사용자의 모든 프로세스 출력
- -u : 프로세스를 실행한 사용자에 대한 상세 정보 출력
- -x : 제어 터미널을 갖지 않는 프로세스 출력 (daemon process까지 확인하기 위해 사용한다.)
ps -ef
UID, PID, PPID, C, STIME, TTY, TIME, CMD 로 구분되어서 나온다.
- UID : 접속한 사용자 (user id)
- PID : 프로세스 ID (process id)
- PPID : 부모 프로세스 ID (parent process id)
- C : CPU 점유율
- STIME : 접속한 시기
- TTY : 접속 도구
- TIME : 명령어를 실행시킨 시간
- CMD : 명령어
ps -aux
USER, PID, %CPU, % MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND로 구분되어서 나온다.
- USER : 프로세스를 실행시킨 사용자
- PID : 프로세스 ID (process id)
- %CPU : 최근 1분간 프로세스가 사용한 CPU 시간을 백분율로 표현
- %MEM : 최근 1분간 프로세스가 사용한 실제 메모리를 백분율로 표현
- VSZ : 현제 프로세스가 사용하는 가상 메모리 크기
- RSS : 현재 프로세스가 사용하고 있는 실제 메모리 크기
- TTY : 접속 도구
- STAT : 프로세스 상태
- START : 프로세스의 시작 시간
- TIME : 현재까지 사용된 CPU 시간(m : ss)
- COMMAND : 명령어
응용
ps aux | grep (검색어)
특정 검색어로 현재 실행중인 프로세스를 찾아서, 해당 프로세스들의 정보를 출력한다.
프로세스 종료 : kill 명령어
현재 작동중인 프로세스를 종료시킨다.
kill [옵션] [PID]
- -1 : 재실행 (HUP)
- -9 : 강제 종료 (KILL)
- -15 : 기다렸다가 정상 종료 (TERM)
(ex)
kill -9 [PID]
따로 옵션을 설정하지 않을 경우 디폴트로 ' -15 ' 로 설정된다.
'DevOps > Linux 리눅스' 카테고리의 다른 글
[Linux/Unix] POSIX란? (포직스, 이식 가능 운영체제 인터페이스, Unix 표준) (0) | 2024.04.17 |
---|---|
[리눅스] VI 에디터 명령어 정리 (0) | 2023.07.21 |
[리눅스] 파일 복사, 하드 링크와 소프트 링크 (0) | 2023.07.10 |
[리눅스] 리다이렉션과 파이프, grep 명령어 (0) | 2023.07.10 |
[리눅스] 기본 명령어 (0) | 2023.07.06 |