프로세스란 실행중인 프로그램을 말한다.
1. 프로세스의 작동단계(레벨)
1) Runlevel
> runlevel은 실행레벨로 부팅과 셧다운 되는 동안 어떤 프로세스가 시작될 지를 결정한다.
ⓐ runlevel 0
> 셧 운 절차에 대해서 책임.
> 모든 프로세스들을 종료
> 파일 시스템을 unmont로 지정
ⓑ runlevel 1
> 단일 사용자 모드
> 관리자가 시스템에 특정 설정을 할 때 사용
> 다른 사용자들은 로그인 불가능
ⓒ runlevel 3
> 대부분의 배포판에서 기본적으로 세팅된 runlevel
> 대부분의 서비스들이 시작된다.
ⓓ runlevel 4
> 사용자 정의 레벨
ⓔ runlevel 5
> 그래픽 로그인 프롬프트를 띄우느 용도로 사용
> level3과 시작되는 프로세스가 같다
ⓕ runlevel 6
> 재실행 모드
// su에서 /etc/init 에서 변경가능하다.
2) 백그라운드/포그라운드 실행
ⓐ 포그라운드(Foreground)
> 키보드로 입력을 받을 수 있다.
> 화면에 출력 해준다.
> 쉘은 포그라운드에서 프로세스가 실행중인 동안 백그라운드에서 기다렸다가,
프로세스가 종료되면 명령대기 상태가 된다.
> 대부분의 프로세스는 ctrl+c로 강제종류가 가능하다
ⓑ 백그라운다(Background)
> 메타문자'&'를 써주어 백그라운드로 실행이 가능하다.
> 키보드 입력을 받을 수 없다.
> 장시간 입력없이 프로세스가 실행될 경우에 사용한다.
2. 프로세스 상태보기
> 명령에 pstree를 통하여 tree형태로 프로세스의 상태를 볼수 있다.
> 명령어 ps를 통해 현재 실행 중인 프로세스들의 상태를 볼 수 있다.
>> "ps -ef | grep 프로세스 이름"을 주로 사용한다.
> 명령어 top으로 프로세스의 cpu점유율을 볼 수 있다.
> 한 프로세스가 다른 프로세스를 만들어 낼 때 주체가 되는 프로세스가 부모 프로세스.
만들어진 프로세스를 자식 프로세스라고 한다.
> 모든 프로세스의 조상은 init이다.
3. Signal
> 프로세스간의 통신 수단
> Signal은 이름과 번호로 구분한다.
이름 번호 의미
HUP 1 로그 아웃하거나 인터넷이 끈겨 졌을때 보여준다.
INT 2 Ctrl+C시 보여준다.
QUIT 3 Ctrl+\시 보여준다.
KILL 9 무조건 실행 종류
SEGV 11 메모리 침범
TERM 15 정상 종료
STOP 19 일시정지
TSTP 20 정지 후 ctrl+z가 누르기전까지 대기
CONT 18 다시 실행
> kill -9는 가장 강력한 프로세스 종료이므로 사용시 각별히 유의 해야된다
4. 프로세스 실행 모드
1) standalone
> 외부의 클라이언트의 요청이 있을 시 신속한 답변을 제공하는 형태
> 응답속도가 빨라야할 프로세스 실행 모드
2) inetd
> 가끔씩 들어오는 프로세스에 대해서 사용하기 효과적
> 외부 클라이언트가 요청이 있으면 inetd라는 슈퍼 데몬을 통해 실행됨
1. 프로세스의 작동단계(레벨)
1) Runlevel
> runlevel은 실행레벨로 부팅과 셧다운 되는 동안 어떤 프로세스가 시작될 지를 결정한다.
ⓐ runlevel 0
> 셧 운 절차에 대해서 책임.
> 모든 프로세스들을 종료
> 파일 시스템을 unmont로 지정
ⓑ runlevel 1
> 단일 사용자 모드
> 관리자가 시스템에 특정 설정을 할 때 사용
> 다른 사용자들은 로그인 불가능
ⓒ runlevel 3
> 대부분의 배포판에서 기본적으로 세팅된 runlevel
> 대부분의 서비스들이 시작된다.
ⓓ runlevel 4
> 사용자 정의 레벨
ⓔ runlevel 5
> 그래픽 로그인 프롬프트를 띄우느 용도로 사용
> level3과 시작되는 프로세스가 같다
ⓕ runlevel 6
> 재실행 모드
// su에서 /etc/init 에서 변경가능하다.
2) 백그라운드/포그라운드 실행
ⓐ 포그라운드(Foreground)
> 키보드로 입력을 받을 수 있다.
> 화면에 출력 해준다.
> 쉘은 포그라운드에서 프로세스가 실행중인 동안 백그라운드에서 기다렸다가,
프로세스가 종료되면 명령대기 상태가 된다.
> 대부분의 프로세스는 ctrl+c로 강제종류가 가능하다
ⓑ 백그라운다(Background)
> 메타문자'&'를 써주어 백그라운드로 실행이 가능하다.
> 키보드 입력을 받을 수 없다.
> 장시간 입력없이 프로세스가 실행될 경우에 사용한다.
2. 프로세스 상태보기
> 명령에 pstree를 통하여 tree형태로 프로세스의 상태를 볼수 있다.
> 명령어 ps를 통해 현재 실행 중인 프로세스들의 상태를 볼 수 있다.
>> "ps -ef | grep 프로세스 이름"을 주로 사용한다.
> 명령어 top으로 프로세스의 cpu점유율을 볼 수 있다.
> 한 프로세스가 다른 프로세스를 만들어 낼 때 주체가 되는 프로세스가 부모 프로세스.
만들어진 프로세스를 자식 프로세스라고 한다.
> 모든 프로세스의 조상은 init이다.
3. Signal
> 프로세스간의 통신 수단
> Signal은 이름과 번호로 구분한다.
이름 번호 의미
HUP 1 로그 아웃하거나 인터넷이 끈겨 졌을때 보여준다.
INT 2 Ctrl+C시 보여준다.
QUIT 3 Ctrl+\시 보여준다.
KILL 9 무조건 실행 종류
SEGV 11 메모리 침범
TERM 15 정상 종료
STOP 19 일시정지
TSTP 20 정지 후 ctrl+z가 누르기전까지 대기
CONT 18 다시 실행
> kill -9는 가장 강력한 프로세스 종료이므로 사용시 각별히 유의 해야된다
4. 프로세스 실행 모드
1) standalone
> 외부의 클라이언트의 요청이 있을 시 신속한 답변을 제공하는 형태
> 응답속도가 빨라야할 프로세스 실행 모드
2) inetd
> 가끔씩 들어오는 프로세스에 대해서 사용하기 효과적
> 외부 클라이언트가 요청이 있으면 inetd라는 슈퍼 데몬을 통해 실행됨