init - 부팅 시 가장 먼저 실행되는 시스템 초기화 프로세스
프로세스 (process)
- 커널의 관리하에 현재 시스템에서 동작중인 프로그램이다.
- 커널은 프로세스 관리를 위해 각 프로세스에게 PCB를 할당한다.
- init을 제외한 모든 프로세스는 자식-부모 관계를 가지고 있다.
PCB (Process Control Block)
- 고유번호 (PID, Process IDentification number)
커널이 할당하는 프로세스마다 부여되는 고유의 번호
- 우선순위 (Priority)
운영체제가 스케줄링 하기 위한 정보
- 현재 상태 (Crurrent State)
할당받은 자원 및 프로세스의 상태를 나타내는 정보
- 할당받은 자원의 포인터
- 문맥 저장 영역
프로세스의 종류
- 데몬 (daemon) 프로세스
커널에 의해서 실행되고 특정 서비스를 제공한다.
ex) 웹 서버를 동작하기 위해서는 httpd라는 프로세스가 동작하고 있어야 하며 httpd를 웹 서버 데몬이라고 한다.
- 부모(parent)프로세스
부모 프로세스는 다른 프로세스를 만들며, init을 제외한 모든 프로세스는 부모 프로세스를 가지고 있다.
- 자식 (child) 프로세스
부모 프로세스에 의해 만들어지는 프로세스이다.
자식 프로세스는 종류시 부모 프로세스에게 결과를 전달하고 종료된다.
- 고아 (orphan) 프로세스
자식 프로세스보다 먼저 부모프로세스가 종료되었을때 해당 자식프로세스는 고아 프로세스가 되어 init 프로세스가 관리를 한다.
- 좀비 (zombie, defunct) 프로세스
자식 프로세스의 종료신호를 부모프로세스가 처리 하지 못 할 경우, 자식 프로세스는 좀비 프로세스가 된다.
ps (Processor Status) - 시스템에 동작중인 프로세스 확인
ps - 현재 터미널에 실행되고 있는 프로세스에 대한 간단한 정보만 출력
옵션
-e 모든 프로세스에 대한 리스트 출력
-f full format으로 출력
UID - 프로세스를 실행 시키는 프로세스의 소유자 의미
PID - 실행된 프로세스에 부여된 숫자
PPID - 프로세스를 생성한 부모 프로세스의 PID
C - 프로세스 스케줄링을 위한 CPU사용량 -> 현재 사용 하지 않는 필드
STIME - 프로세스가 시작된 시간
TTY (Teletype) - 프로세스가 연결된 제어 터미널을 표시, (?)는 제어 터미널에 연결되어 있지 않음을 뜻함
TIME - 프로세스에 의해 사용된 CPU 사용 시간
CMD - 실행된 프로세스 명 (실행된 명령어)
#ps -ef 명령어를 입력하면 아래와 같다
옵션
-a 다른 사용자들의 프로세스도 출력
-u 사용자 이름, 시간 등 자세한 정보 출력
-x 지금 사용되고 있는 모든 프로세스를 출력
USER - 프로세스 소유 계졍 이름 ※
PID - 실행된 프로세스에 부여된 숫자
%CPU - 사용된 CPU의 측정량
%MEM - 사용된 메모리의 측정량
VSZ - 가상 메모리의 크기
RSS - 사용된 실제 메모리
TTY - 프로세스와 관련된 가상 터미널
STAT - 프로세스의 상태 ※
R : 실행 중 (Running)
S : 대기 상태 (Sleep)
T : 작업 제어에 의해 정지된 상태 (Stop)
Z : 좀비 프로세스 (defunct)
X : 완전히 죽어 있는 프로세스
D : io와 같이 중지(interrupt)시킬 수 없는 잠자고 있는 (휴지) 프로세스 상태
< : 프로세스의 우선 순위가 높은 상태
N : 프로세스의 우선 순위가 낮은 상태
L : 실시간이나 기존 IO를 위해 메모리 안에 잠겨진 페이지를 가진 상태
s : 세션 리터(주도 프로세스)
I : 멀티 쓰레드
+ : 포어그라운드 상태로 동작하는 프로세스START - 프로세스 시작 시간
TIME - 총 CPU 사용시간
COMMAND - 실행된 프로세스 명, 실행된 명령어
#ps -aux를 입력하면 아래와 같다.
kill - 프로세스 종료 명령
kill -[시그널] [PID]
kill -SIGKILL 1519 해당 프로세스 종료
kill -9 1519 해당 프로세스 종료
자주 사용하는 시그널
프로세스 종료 - 2)SIGINT -> 일반 종료
15)SIGTERM -> 일반 종료
9)SIGKILL -> 강제 종료
프로세스 정지 - 19)SIGSTOP
프로세스 재시작 18)SIGCONT
Ctrl + C SIGINT
Ctrl + Z SIGSTOP
포어 그라운드 (Foreground)
- 프롬프트에서 입력하는 대부분의 명령어는 포어 그라운드로 동작
- 명령어의 실행 과정이나 결과를 화면에 출력
- 포어 그라운드로 실행되는 프로세스가 종료되길 기다렸다가 종료되면 다시 프롬프트를 보여주어 명령대기 상태로 변환
백 그라운드 (Background)
- 프로세스의 종료 여부의 관계없이 즉시 명령 대기 상태가 되어 다른 명령을 할 수 있음
- 백그라운드로 실행 시키기 위해서는 '&' (ampersand)를 붙여 사용
- 장시간 실행되어야 하는 경우에 주로 사용
ex) [명령어] &
jobs - 백그라운드에서 동작하는 프로세스를 출력
작업목록에서 [+] 기호는 현재 작업 중
[-] 기호는 현재 대기 중
fg - 백그라운드 작업을 포어그라운드로 변경
bg - 포어그라운드 작업을 백그라운드로 변경
ex) fg %[작업번호]
bg %[작업번호]
※ root password 찾기
boot시 3,2,1때 아무키나 누른다
e누르기 -> e누르기 -> 오른쪽 끝에 1, single -> enter -> b누르기
※ root password 찾기 방지
grub -> md5crypt -> password1! -> 암호 복사 -> quit -> vi /boot/grub/grub.conf -> passwd 입력 -> reboot -> 확인
'Linux' 카테고리의 다른 글
Day-13 프로세스 관리 3 & 파일 시스템 관리 1 (0) | 2017.01.06 |
---|---|
Day-12 프로세스 관리 2 (0) | 2017.01.06 |
Day-10 사용자 계정관리 3 (0) | 2016.12.31 |
Day-9 사용자 계정관리 2 (0) | 2016.12.31 |
Day - 8 사용자 계정관리 1 (0) | 2016.12.26 |