프로세스의 정의
- 실행중인 프로그램
- PCB(Process Control Block)를 지닌 프로그램
- 프로그램 카운터를 지닌 프로그램
- 능동적 개체로 순차적으로 수행하는 프로그램
프로세스의 생성
- 시스템 호출 방법
- fork : 새로운 프로세스 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행하는 형태로 기존의 프로세스는 그대로 실행됨, 새롭게 생성된 프로세스는 원래 프로세스랑 똑 같은 코드를 기반으로 실행됨
따로 말이 없을 경우 fork형태 수행 - bash 라는 프로세스를 할당받고 명령내리면 fork형태로 실행
- exec : 원래의 프로세스를 새로운 프로세스로 대체하는 형태로 호출한 프로세스의 메모리에 새로운 프로세스의 코드를 덮어씌워버린다 새로운 프로세스를 위한 메모리를 할당하지않고 exec에 호출된 프로세스만 메모리에 남겨둔다
- fork : 새로운 프로세스 위해 메모리를 할당받아 복사본 형태의 프로세스를 실행하는 형태로 기존의 프로세스는 그대로 실행됨, 새롭게 생성된 프로세스는 원래 프로세스랑 똑 같은 코드를 기반으로 실행됨
프로세스의 종류
- 포어그라운드 : 보통 셸에서 명령실행시 해당 프로세스가 종료될때까지 기다리는프로세스
- 백그라운드 : 뒤에서 실행시키는 프로세스 , 다중작업을 수행시 유용, 작업번호[1]로 나타내고 뒤에는 PID가 붙음
멀티태스킹과 작업변환
- 다수의 프로그램들을 백그라운드 프로세스로 실행시킨 상태에서 추가로 포어그라운드 프로세스로 다른 작업을 수행하는 것
- [CTRL]+[z] : 포어 프로세스를 백그라운드 프로세스로 전환시키기
- ”jobs “: 작업상태 확인하기
- bg : 포그라운드 프로세스를 일시중단된 상태에서 백그라운드 프로세스로 전환
- fg [%]작업번호 : 백그라운드 프로세스를 포어그라운드 프로세스로 전환하기
- 나타나는 결과에서 +는 가장늦게 실행한 프로세스 작업번호없이 fg명령수행하면 이 작업이 포어그라운드 프로세스로 전환됨
- 결과에서 -가 붙으면 +붙은작업 다음우선순위 작업
시그널
- 특정 프로세스가 다른 프로세스에게 메시지를 보낼 때 시그널이 발생한다
- kill-l’에서 명령어 확인가능
- 일반적으로 사용하는 시그널
- 종류
이름: 설명
SIGHUP : 로그아웃과 같이 터미널 접속이 끊겼을때 보냄
SIGINT: 키보드로부터 오는 인터럽트 시그널로 실행을 중시 [ctrl]+[c]입력시 보냄
SIGQUIT : 키보드로부터 오는 실행 중지 시그널 [ctrl]+[]입력시 보냄
SIGKILL : 무조건 종류, 프로세스강제종료할때 보냄
SIGTERM : 정상종류 시그널로 kill명령의 기본 시그널
SIGCONT : STOP시그널 등에의해 정지된 프로세스를 다시 실행시킬 때 보냄
SIGSTOP : 터미널에서 입력된 정지 시그널
SIGTSTP: 실행정지후 다시 실행을 계속하기위해 대기시키는 시그널 [ctrl]+[z]입력시 보냄
프로세스 관리의 이해
데몬
- 데몬 - 주기적이고 지속적인 서비스를 요청하기위해 계속 실행되는 프로세스로 백그라운드로 실행된다. 주로 이름에 d를 붙임
- standalone방식 - 프로세스의 상태를 확인하는 ps명령으로 확안한다. 보통 부팅시실행되어 해당 프로세스가 메모리에 계속 상주하면서 클라이언트의 서비스 요청을 처리하는 방식
- inet방식: 프로세스가 메모리에 항상 상주하는 것이아니라 클라이언트의 서비스 요청이 들어왔을때 관련 프로세스를 실행 시키고 접속 종료후에는 자동으로 프로세스를 종료시키는 방식
데몬의 실행
- 주기적이고 지속적인 서비스 요청을 처리하기 위한 프로세스
- /etc/rc.d/init.d 디렉터리
- 서비스에 대해 시작과 중지를 시킬수있는 스크립트를 포함하고있다
- service : /etc/rc.d/init/d 디렉터리에 존재하는 스크립트를 쉽게 시작하거나 중지시킬수 있는 스크립트로 절대경로로 전부 입력하는 대신 간단히 서비스명과 인자값을 지정해 실행가능
- rc0.d~rc6.d 디렉터리
- init프로세스가 실행 레벨 n을 시작하면 rcn,d디렉터리에 존재하는 모든 링크를 점검한다
- 기본형식 : [K|S] [번호] [init.d_이름]
- 의미
- K : Kill을 의미하며 실행되지 않을 서비스를 말한다
- S : Start를 의미하며 해당 실행 레벨에서 실행되어야하는 서비스를 말한다
- 번호 : 순차적인 번호로 시작이나 중지순서를 나타내는 번호이다
- init.d_이름 : 관습에 따라 링크가되는 스크립트명을 사용
데몬관련 유틸리티
- ntsysv
- 텍스트 환경에서 커서를 이용하여 부팅중 자동으로 실행되는 서비스를 설정할 수 있는 유틸리티
- 사용법 : #ntsysv[option]
- 주요옵션
- level 실행레벨: 특정실행 레벨을 편집 없을 경우 현재 구동중인 레벨 의 서비스 데몬 설정
- chkconfig
- 텍스트 기반의 명령 프로그램으로 실행 레벨에 따른 서비스의 on off설정 리스트를 출력하거나 설정
- 사용법 : #chkconfig option [service]
- 주요옵션
- --list : 각실행 레벨에서의 서비스의 설정 상태를 보여준다
- --add/del 서비스: 서비스를 추가 /삭제
- -level 레벨서비스 /on/off/reset : 해당레벨에서 특정서비스의 상태를 설정
'License > 리눅스 마스터 1급' 카테고리의 다른 글
[리눅스마스터1급1차] 네트워크 / OS7계층 (0) | 2020.06.13 |
---|---|
[리눅스마스터1급1차] Shell (0) | 2020.06.02 |
[리눅스마스터1급1차] X윈도 (0) | 2020.06.02 |
[리눅스마스터1급1차] 리눅스 구조 및 grub (0) | 2020.06.02 |
[리눅스마스터1급1차] 리눅스와 하드웨어 (0) | 2020.06.02 |