티스토리 뷰
프로세스 (Process)
- 실행중인 프로그램 (program in execution) --> 프로그램이 실행되면, 프로세스가 실행된다
- 한 프로그램은 여러 번 실행될 수 있으므로, 한 프로그램으로부터 여러 개의 프로세스를 만들 수 있다
- 작업(job), 태스트(task)라고도 한다.
cf> 프로그램: 하드 디스크 등에 저장되어 있는 실행 코드
프로세스: 프로그램을 구동하여 메모리에 적재되어 실행되는 작업 단위
- 각 프로세스는 자신만의 고유 번호인 프로세스ID == PID(Process Identificaton) 을 갖는다
- 각 프로세스는 부모 프로세스(PPID: Parent Process Identification)에 의해 실행된다.
시스템 프로세스
- 시스템 운영에 필요한 기능을 수행
- 예) 데몬 프로세스(어떤 서비스를 위해 부팅과정에서 생성
사용자 프로세스
- 사용자들이 명령 혹은 프로그램을 실행시켜 생성
프로세스 리스트 (Process status) - PS
$ ps [-옵션]
- 현재 실행중인 프로세스들의 실행 상태를 요약해서 출력한다.
- 옵션을 사용하지 않으면 사용자 프로세스들만 출력한다.
PID | 프로세스 번호 |
TTY | 명령어가 시작된 터미널, 연결된 터미널 |
TIME | 프로세스에 사용된 CPU시간 |
CMD | 명령어 이름 |
--> ps 명령어 실행을 위해 자식프로세스 (8720) 생성한 모습
$ ps -f
- [-f] 옵션: 사용자 프로세스에 대한 보다 자세한 정보 출력
UID | 프로세스를 실행시킨 사용자 ID |
PPID | 부모 프로세스 번호 |
C | 프로세스의 우선 순위 |
STIME | 프로세스의 시작 시간 |
$ ps u
- 특정 사용자의 프로세스 정보 출력.
- 사용자를 지정하지 않으면 현재 사용자를 기준으로 정보를 출력한다
%CPU | CPU 사용률 |
%MEM | 메모리 점유율 |
STAT | 프로세스의 현재 상태 R:실행 대기, S: 수면 상태, D: 입출력 기다리는 상태, T:멈춰있거나 흔적이 남아있는 상태, Z:완전히 죽은 상태, N: 우선순위가 낮은 프로세스, I: idle 상태, s: is a session leader(일반적으로 쉘), +: is in the foreground process group, <: high-priority |
VSZ | 가상메모리 |
RSS | 물리 메모리 |
$ ps aux
- BSD 계열 시스템 내의 모든 프로세스에 대한 정보
(BSD에서는 일반적으로 ps, ps -a, ps aux등을 많이 사용함)
- [-a] 옵션: 모든 사용자의 프로세스를 출력
- [-u] 옵션: 프로세스에 대한 좀 더 자세한 정보를 출력
- [-x] 옵션: 더 이상 제어 터미널을 갖지 않는 프로세스들도 함께 출력
$ ps -ef
- 시스템 V 계열인 경우 ps, ps -ef등을 많이 사용함
- [-e]옵션: 현재 시스템 내에 실행 중인 모든 사용자 프로세스를 출력
- [-f]옵션: 프로세스에 대한 좀 더 자세한 정보를 출력
특정 프로세스 리스트 - pgrep
// 현재 서버에서 실행중인 프로세스들 중에서 sshd 단어가 포함된 것들만 출력
$ ps -ef | grep -w sshd
- 시스템 내에 존재하는 프로세스들 중에서 특정 프로세스에 대한 정보만을 찾고 싶을 때
- 파이프를 이용해서 ps, grep명령어 사용
--------> 간단하게
$ pgrep [옵션] [패턴]
- 패턴에 해당하는 프로세스들만을 리스트한다. (프로세스 번호 출력)
- [-l] 옵션: PID와 함께 프로세스의 이름 출력
- [-f] 옵션: 명령어의 경로도 출력
- [-n]옵션: 패턴과 일치하는 프로세스들 중에서 가장 최근 프로세스만 출력
- [-x]옵션: 패턴과 정확하게 일치되는 프로세스만 출력
'Linux' 카테고리의 다른 글
[Linux] 프로세스의 사용자 ID, 그룹 ID (0) | 2020.10.17 |
---|---|
[Linux] 프로세스 제어 - sleep, 전면처리, 후면처리, 종료, wait, 우선순위 (0) | 2020.10.17 |
[Linux] 파일 이름 대치, 명령어 대치, 대치 제한 (0) | 2020.10.16 |
[Linux] 여러 개의 명령어 사용 - 명령어 열, 그룹, 조건 명령어 열 (0) | 2020.10.16 |
[Linux] 입력, 출력재지정, 오류재지정, 파이프 (0) | 2020.10.16 |