본문 바로가기

개발로그/리눅스

리눅스-[#리눅스마스터 2급 실기] 4.프로세스


[ 리눅스 마스터 2급 실기 ]

4.프로세스


2019-03-15


목록



1. 파일 유형 / 파일 허가권

2. 파일 시스템

3. 셸

4. 프로세스

5. 프로그램 설치

6. 프린트 / 스캐너

7. XWindow

8. Network



프로세스
(가장 먼저 실행 되면 프로세스는 init 이고 PID는 1이다.)

fork와 exec


fork() 함수 [복제하는 방식]

exec() 함수 [덮어씌우는 방식]


데몬


standalone 데몬 : 단독 실행 방식

inted 데몬 : (슈퍼데몬) 여러가지 서비스를 제어하고 관리

inetd 타입 데몬 : Telnet, FTP 등의 데몬들이 inetd 타입 데몬에 해당


데몬 종료 방법


/etc/init.d/데몬/stop

/etc/rc.d/init.d/데몬 stop

service 데몬 stop


시그널


SIGHUP : 1 : 터미널 연결이 끊겼을 때

SIGINT : 2 : CTRL+C 입력 시 -> [BG 에서 FG]

SIGQUIT : 3 : CTRL+W 입력시

SIGKILL : 9 : 프로세스 강제 종료 시 

SIGTERM : 15 : KILL 명령 호출 시

SIGTOP : 19 : SIGOUT 시그널을 받을때 까지(정상종료)

SIGTP : 20 : CTRL+Z 입력시 -> [FG 에서 BG]


프로세스 관련 명령어 


ps : 현재 실행중인 프로세스의 상태를 보여주는 명령어

-a (all) : 현재 실행중인 모든 프로세스

-e : 모든 프로세스 정보

-u (user) : 사용자 이름과 프로세스 시작 시간 출력

-x : 접속된 터미널 뿐만 아니라 사용되고 있는 모든 프로세스

-l (list) : 자세한 정보 출력


ps에 aux실행시 STAT메뉴


P : 수행가능 / 수행 중

R (run) : 현재 실행상태

S (sleep) : 잠든 상태

D : I/O 작업이 끝나기를 기다리면서 정지

T (Stop) : 정지상태

Z (zombie) : 좀비 프로세스 작업 종료 후 회수되지 않아 메모리에 적재


pstree

(실행 중인 프로세스를 트리구조로 보여줌)


p (PID) : 프로세스 ID 표시

n : PID 를 정렬

a (all) : 인자값을 포함한 모든 정보


jobs

(작업 상태를 표시)


l (list) : 프로세스 그룹 ID를 static

l (List) : 프로세스 그룹ID를 stat 필드 앞에 표시

n : 프로세스 그룹 중 대표 PID 표시

p (pid) : PID를 한 줄씩 표시


+는 현재 작업 -는 앞으로 실행될 작업(대기)를 나타낸다


BG(백그라운드) 와 FG(포어그라운드)

[bg &] 와 [fg &] 만 알면 됨


kill

(프로세스 종료)


l (list) : 시그널 종류 나열

s (singal) : 전달한 시그널의 종류 지정

1 : HUB, 프로세스 재시작

9 : 프로세스 강제 종료 (시험에 많이 나옴


killall

(같은 데몬의 여러 프로세스를 한번에 종료)


g (group) : 그룹을 지정하여 프로세스를 종료

i : 종료 전 확인 메세지 표시

l (list) : 시그널 목록 표시

v : 상세정보


nice

(프로세스 사이의 우선순위 확인)


n 조정수치 : 명령의 우선권에 조정수치를 더함 (양수값 : -, 음수값 :--)

*NI값 범위는 -20(가장 높음)~ 19(가장 낮음)

*디폴트는 10

*일반 사용자는 증가만 가능, root가 감소로 우선순위를 높일 수 있음


renice

 (우선 순위를 변경)

nice는 더하기 방식이라면 renice는 바로 덮어씌워버림

renice는 양수값에 사용X

p (PID) : PID 지정

u (USER) : 사용자명 지정

g (gid) :  GID 지정


top

(리눅스 운영 상태를 실시간으로 모니터링 하거나 프로세스 상태 확인)


d (deplay) 시간 : 실시간 화면 출력 시간 지정 (초단위)

p (PID) : 모니터할 프로세스 ID 지정

***top이 실행된 상태에서 다양한 명령 입력

? : 도움말

t : CPU ON/OFF : 좀비 프로세스 정보 ON/OFF 

n 수치 : 지정된 개수만큼의 프로세스만을 화면에 표시

r 조정치 : renice값을 변경하여 실행 우선순위 조정

k PID : 지정된 PID 종료 (kill -p PID와 동일한 기능

q (quit) : 종료


nohup


(프로세스가 중단되지 않고 백그라운드로 작업을 수행할 수 있게 하며, 뒤에 &을 명시한다.)

*실행중인 프로세스의 표준 출력 결과는 'nohup.out'이라는 파일을 생성하여 기록한다.

*작업 디렉터리에 쓰기가 불가능할 경우 &HOME/nohup.out 파일을 자동 생성


cron

(주기적으로 반복되는 일을 자동적으로 실행할 수 있게 설정)

*데몬 서비스는 crond이며 관련 파일은 /etc/crondtab 이다.


l (list) : crondtab 에 설정된 내용 출력

e (edit) : crontab 을 작성하거나 수정

r (remove) : crontab 내용을 삭제

u (user) : 특정 사용자의 일정 수정


파일 /etc/aaa를 매주 화요일과 목요일에 오전 4시에 실행한다.

> /etc/crontab에 * 4 * * 2.4 /etc/aaa 를 추가하면 된다.


**에디터 종류**

Pico : Aboil Kasar가 개발한 유닉스기반의 에디터

[메모장가 유사한 인터페이스/ GNU에서 Pico 복제 버전인 nano을 개발]


Emacs : 리차드 스톨만이 매크로 기능이 있는 텍스트 교정및 편집기로 개발

[LISP에 기반을 둔 환 경 설정 언어를 가지고 있음/ 다양하게 사용]


vi : 빌조이가 초기 BSD 릴리즈에 포함될 편집기로 만들었다

[유닉스에 기본적으로 포함]


vim : 브함 무네나르가 만든 편집기

[유니코드를 비롯한 다국어 지원,문법 검사 기능 지원]


gedit : 그놈 데스크톱 환경용으로 개발된 자유 소프트웨어 편집기

[여러 os 지원 가능, x윈도우에 맞춰서 개발]


** vi 에디터 사용법(편집모드, 명령모드, 입력모드로 구성되어있고 초기화면은 명령모드로 **

@입력 모드 전환

a : 커서 뒤에 입력

A(대문자는 더 큰 행위를 함) : 줄의 끝에 입력  

i : 현재 문자 앞에 입력          

I : 줄의 시작에 입력          

o : 현재줄 밑에 줄에 입력

O : 커서가 있는 줄 위에 입력(소문자랑 반대개념)

@편집모드에서 저장 및 종료 환경 설정

wq : 저장하고 종료

q : 종료

q! : 강제 종료

wq! : 강제 저장후 종료

set nu : 줄번호 표시 (se nu로 줄여도됨)

set nonu : 번호 표시 해제 (se no로 줄여도됨)

set ai : 자동 들여쓰기

@명령모드에서 삭제,복사 붙여넣기

xd가 있으면 삭제           

y가 있으면 복사           

p가 있으면 붙여넣기

숫자 dd 또는 숫자 yy를 하면 "숫자" 줄만큼 삭제 또는 복사가 됩니다.




소제목

본문


소제목

본문



출처

출처내용