3. 프로세스 관리
3.1_ 개념 및 유형
① 프로세스 개요
- 프로세스란
- 프로세스의 생성
- fork : 복사본 형태의 프로세스 실행
- exec : 원래 프로세스를 새로운 프로세스로 대체하는 형태
- 부팅-> init 최초의 프로세스 발생, PID 1
- 프로세스의 종류
- 멀티태스킹과 작업 전환
② 시그널과 데몬
- 시그널
- 프로세스끼리 통신
- 목록 : kill -l 확인 가능
- 시그널 번호 - 순서
- SIGHUP : 터미널에서 접속 끊길 때, 재시작 할 때
- SIGINT : 키보드에서 옴, 실행 종료 (ctrl + c)
- SIGQUIT : 실행 중지 (ctrl + \)
- SIGKLL : 무조건 종료
- SIGTERM : 정상 종료
- SIGCONT : 정지된 프로세스 다시 실행
- SIGSTOP : 입력된 정지 시그널
- SIGTSTP : 실행 정지후 다시 실행 계속하기 위해 대기 (ctrl + z)
- 데몬
- 백그라운드에서 실행
- 실행 방법
- standalone : 부팅 시에 실행
- 메모리에 상주
- ps 명령으로 확인 가능
- inet
- 요청이 들어 왔을 때 관련 프로세스 실행
- standalone : 부팅 시에 실행
3.2_ 프로세스 유틸리티
① 프로세스 관련 명령어
- ps
- 동작 중인 프로세스의 상태를 출력해 주는 명령
- 옵션 계열
- System V : (dash, -)사용
- BSD : 대시 사용 X
- GNU : 두 개의 대시
- ps [option]
- 옵션
- a : 터미널과 연관된 프로세스 출력
- u : 프로세스의 소유자를 기준으로 출력
- x : 터미널에 종속되지 않는 프로세스 출력
- l : 프로세스의 정보를 길게 보여줌, 우선순위와 관련된 (RPI, NI)값 확인
- 옵션 항목
- USER : BSD 계열, 프로세스 소유자의 이름
- UID : SYSTEM V 계열, 프로세스 소유자의 이름
- PID : 프로세스의 식별 번호
- %CPU : CPU 사용 비율 추정치 (BSD)
- %MEM : 메모리 사용 비율의 추정치 (BSD)
- VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
- RSS : 실제 메모리 사용량
- TTY : 프로세스와 연결된 터미널
- STAT : 현재 프로세스의 상태 코드
- START : 프로세스 시작 시간 or 날짜
- TIME : 총 CPU 사용 시간
- COMMAND : 프로세스의 실행 명령행
- STIME : 프로세스가 시작된 시간 혹은 날짜(Sys V)
- C, CP : 짧은 기간 동안의 CPU사용률
- F : 프로세스의 플래그 (1:exec 호출 없이 fork된 경우 / 4 : 슈퍼유저 권한 사용자)
- PPID : 부모 프로세스의 PID
- PRI : 실제 실행 우선순위
- NI : nice 우선 순위 번호
- STAT의 주요 값
- R ( Runnig) : 실행 중 혹은 실행될 수 있는 상태
- S ( Sleeping) : 인터럽트에 의한 sleep 상태, 특정 이벤트가 끝나기를 기다리는 상태
- D ( Disk wait) : 디스크 I/O에 의해 대기하고 있는 상태
- T ( Traced or stopped) : 정지된 상태
- W : paging 상태
- Z ( Zombie) : 작업이 종료되었거나 부모 프로세스로 부터 회수되지 않아 메모리를 차지하고 있는 상태
- X : 죽어있는 상태, 상태값으로 볼 수 X
- < : 우선순위가 인위적으로 높아진 상태
- N (Nice) : 다른 사용자에 의해 인위적으로 우선순위가 낮아진 상태
- L : 메모리 안에서 페이지가 잠금된 상태
- s : session Leader
- I : 멀티 쓰레드 상태
- + : 포어그라운드 프로세스 그룹
- pstree
- top
- kill
- 특정한 시그널 보내는 명령
- 옵션 없이 실행 : 15신호 보냄
- kill [옵션] [시그널] [PID or %Job_number]
- - l : 시그널의 종류 출력
- - s signal : 시그널의 이름 지정
- - 9 : 강종
- killall
- jobs
- fg
- fg [%잡 넘버]
- fg 잡 넘버
- bg
- 포어그라운드 실행 중인 프로세스 + ctrl +z 하면 사용 가능
- nice
- 프로세스의 우선순위 변경
- NI값 설정 ( 작을 수록 우선순위 ↑)
- 일반 사용자 : 증가만 가능
- root : 감소 가능
- 옵션
- -n 값, - 값, --adjustment=값 : NI 값을 지정한 NI값과 증감, 값 지정 안하면 10지정됨
- ex) nice -10 bash
- nice -- adjustment = 10
- nice bash
- -n 값, - 값, --adjustment=값 : NI 값을 지정한 NI값과 증감, 값 지정 안하면 10지정됨
- renice
- nohup
② 스케줄링과 cron
- 스케줄링
- at, cron
- cron
- 시스템 운영에 필요 : /etc/crontab (주기적으로 실행)
- 사용자 : crontab에 실행
- 필드
- 분, 시, 날, 월, 요일, 사용자 이름, 명령어
- crontab
- vi가 실행됨
- 옵션
- - l : 내용 출력
- - e : 작성하거나 수정
- - r : 내용 삭제
- - u : root사용자가 특정 사용자의 crontab파일 다룰 때 사용
'자격증 > 리눅스 마스터' 카테고리의 다른 글
리눅스 마스터 2급 2차 (2.5) (0) | 2021.03.13 |
---|---|
리눅스 마스터 2급 2차 (2.4) (0) | 2021.03.13 |
리눅스 마스터 2급 2차 (2.2) (0) | 2021.03.13 |
리눅스 마스터 2급 2차 (2.1) (0) | 2021.03.12 |
리눅스 마스터 2급 2차 - 링크 공부 (0) | 2021.03.12 |