일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- DB
- 도커
- react map error
- ps
- 파일 시스템
- 관리
- docker container
- Oracle
- springboot
- brew install mariadb
- springboot jar
- 도커파일
- install
- Dockerfile
- mac mariadb
- systemd
- join
- sts
- map is not a function
- jdk
- jar배포
- 설치
- mysql error
- Docker
- spring framework
- jar deploy
- sudo
- mysql
- root
- Access denied for user ''@'localhost'
- Today
- Total
Yoon.s
프로세스? 정의, 관리, 검색, 종료 본문
프로세스
- 모든 프로세스는 부모-자식 관계를 가지고 있음
(부모는 자식이 활동하면 waiting(sleep), 자식이 exit하면 awake 깨어남)
부모 프로세스 (bash)
생성 ↓ ↑ 종료 및 복귀
자식 프로세스 (vi, ls 등)
2. PID : 각 프로세스가진 고유한 번호
- 데몬 프로세스: 특정 서비스를 제공하기 위해 리눅스 커널에 의해 실행
평소에 대기상태로 있다가 서비스 요청 들어오면 서비스 제공 - 고아 프로세스: 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료될 때
(원래는 자식이 종료되면 부모로 돌아감)
-> 1번 프로세스(systemd)가 새로운 부모 프로세스가 되어 고아 프로세스가 작업을 마치고 종료될 수 있게 도와줌 - 좀비 프로세스: 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아있는 경우 (defunct 프로세스)
실행되지 않지만 동작 중인 프로세스 테이블 목록을 차지하고 있어 프로세스 테이블 용량이 증가됨
ps [옵션]
: 현재 실행 중인 프로세스 정보 출력
유닉스 옵션 | BSD 옵션 |
-e : 시스템에서 실행 중인 모든 프로세스 정보 출력 | a : 프로세스의 정보 출력 |
-f : 프로세스의 자세한 정보 출력 | u : 프로세스 상세 정보 출력 |
-u uid : 특정 사용자에 대한 모든 프로세스 정보 출력 | x : 시스템에서 실행 중인 모든 프로세스의 정보 출력 |
-p pid : pid 지정한 특정 프로세스의 정보 출력 |
예. ps, ps -ef, ps aux
top
: 종료하지 않고 실시간으로 프로세스의 상태를 보여주며 내부적으로 사용
내부 명령 | 기능 |
Enter, Space Bar |
화면 즉시 다시 출력 |
h, ? | 도움말 화면 출력 |
k | 프로세스 종료 (종료 PID 물어봄) |
n | 출력하는 프로세스 개수 바꿈 |
p | CPU 사용량에 따라 정렬하여 출력 |
q | top 명령 종료 |
M | 사용하는 메모리의 크기에 따라 정렬하여 출력 |
u | 사용자에 따라 정렬하여 출력 |
특정 프로세스 정보 검색
pgrep [옵션] 패턴
: 인자로 지정한 패턴과 일치하는 프로세스 찾아 PID 알려주고, 지정한 옵션에 따라 검색 내용 다양해짐
-x : 패턴과 정확히 일치하는 프로세스 정보 출력
-n : 패텀 포함한 가장 최근 프로세스 정보 출력
-u 사용자명: 특정 사용자에 대한 모든 프로세스 출력
-l : PID와 프로세스 이름 출력
-t term : 특정 단말기와 관련된 프로세스 정보 출력
프로세스 종료
kill [-시그널] PID
예. kill 1001 : 프로세스 관련 파일 정리한 후 종료(15번 시그널)
kill -2 1001 : 인터럽트 시그널 보냄(2번 시그널)
kill -9 1001 : 프로세스 강제 종료(9번 시그널)
시그널: 프로세스에 무언가 발생했음을 알리는 간단한 메시지(이름과 번호로 구분)
여기서 주요 시그널은
1 SIGHUP : 터미널과 연결이 끊어졌을 때
2 SIGINT : 인터럽트 Ctrl+C
3 SIGQUIT : 종료, 코어덤프 Ctrl+\
9 SIGKILL : 강제 종료
15 SIGTERM : kill이 보내는 기본 시그널
20 SIGTSTP : 실행 정지 후 다시 실행하기 위해 대기 Ctrl+z
* PID 없이 프로세스 종료시킬 수 있을까?
pkill 명령으로 이름을 통해 프로세스 종료 (여러개 검색시 한 번에 종료 가능)
killall 실행 중인 모든 프로세스 한 번에 종료
'인프라 > linux' 카테고리의 다른 글
디스크 관리 : LVM, df, du, fsck (0) | 2020.07.15 |
---|---|
파일 시스템 [2] 마운트, 파일 시스템 생성 (0) | 2020.07.15 |
파일시스템 [1] 종류, 구조, inode, 디렉터리 계층 구조 (0) | 2020.07.14 |
프로세스? 포그라운드/백그라운드, 작업 제어, 예약 (0) | 2020.07.13 |
파일 접근 권한 [1] 파일 속성, 접근 권한, 권한 변경 (0) | 2020.07.13 |