본문 바로가기
os/Solaris

7. process 관리

by #moonyz 2014. 8. 28.
- process : 컴퓨터내에서 실행하는 모든 프로그램
- daemon : 주기적인 서비스 요청을 처리하기 위해 시스템에서 계속 동작하고 있는 프로그램 EX)백신 등


1. Process

- 솔라리스에서 동작하는 모든 프로그램은 프로세스를 생성한다.
           (log in, login시 실행되는 shell, 명령어 실행(find 등), application실행)
- 시스템에서 동작하는 모든 프로그램이 프로세스
- 시스템은 Daemon이라는 프로세스도 시작한다.
- 모든 프로세스는 유일한 값인 PID를 가진다
- 커널은 PID를 이용하여 프로세스를 관리하고 추적한다.
 - 사용자 또한 프로세스를 구별하기 위해 PID를 사용한다.

2. 부모 프로세스

- PPID = Parent Process Identifier
- 부모에 의해 생성된 프로세스를 자식 프로세스
- shell 프롬프트에서 명령어를 입력했다면
   shell  -> 부모프로세스
   명령어 -> 자식프로세스
- 부모 프로세스가 없는 자식 프로세스 -> 좀비 프로세스



3. 관련 명령어


 ps [-option]
- 시스템에서 현재 동작하고 있는  프로세스 목록 표시

[option]

no option
현재 터미널에서 동작하고 있는 프로세스 목록 표시
-e
현재 시스템에서 동작하고 있는 모든 프로세스 목록 표시
-f
PID, TTY(terminal identifier), TIME(cumulative execution time), CMD(command), 
UID(owner of process), PPID(parent process ID), STIME(process start time) 등 표시

   
② pgrep : ps + grep

③ prstat 
- 5초마다 프로세스 정보 갱신
- top : 수동 설치해야함, 실행중인 모든 프로세스 보여주기

 kill [-signal] PID
- 하나 또는 그 이상의 실행중인 프로세스에게 signal 전송
- 반드시 PID mapping
- Default signal = ‘', ‘TERM'
EX) kill -15 3429 : PID=3429 프로세스 정상종료
   

 pkill [-signal] [프로세스명]
 - 하나 또는 그 이상의 실행중인 프로세스에게 signal 전송
 - 반드시 process name 으로 mapping
 - Default signal = ‘', ‘TERM'
 EX) pkill -9 shell : shell이 들어간 프로세스 강제종료

[signal : 프로세스를 통제하기 위해 전달되는 메시지 번호, 솔라리스에서 40여가지 사용가능]
signal number
signal
signal name
response
action
example
1
SIGHUP
HUP
Exit
종료되었다가 다시 실행
 kill -1 1000
 kill -HUP 1000
2
SIGINT
INT
Exit
Ctrl + c와 동일, 강제종료
 kill -2 1000
 kill -INT 1000
9
SIGKILL
KILL
Exit
커널이 직접 강제 종료
 kill -9 1000
 kill -KILL 1000
15
SIGTERM
TERM
Exit
프로세스 자신이 종료, 정상종료
 kill -15 1000
 kill -TETM 1000



4. Job control

- 터미널에 의해 제어되는 프로세스

- 모든 job은 shell에 의해 job ID가 할당된다.
- Job control : 하나의 shell에서 여러개의 job 관리
- shell은 동시에 여러개의 job을 실행할 수 있다. (print request, ls, netscape)
- job은 보통 foreground에서 작동한다.
- 여러개의 job을 실행하기 위해 background에서 실행 할수도 있다.

[Job control commands]
jobs
 현재 실행중인 job표시
bg %n
 job id가 ‘n’인 작업을 background 작업으로 변경
fg %n
 job id가 ‘n’인 작업을 foreground 작업으로 변경
^z
 foreground job 중지
stop %n
 job id가 ‘n’인 background job 중지


'os > Solaris' 카테고리의 다른 글

9. vold (volume management)  (0) 2014.08.28
8. Archiving (압축)  (0) 2014.08.28
6. 파일권한관리  (0) 2014.08.28
5. 검색 (find, grep, egrep)  (0) 2014.08.28
4. vi Editor  (0) 2014.08.28

댓글