본문으로 바로가기

post by WHITEHATS

웹기반 정보보안 엔지니어 과정 160218 12번째강의 - 3



12.프로세스 관리


12.프로세스 관리

•프로세스
     - 프로그램이나 명령어를 실행했을 때 메모리에 적재되어 실제로 동작하는 상태
     - 프로세스가 실행되면 프로세스 식별번호(PID, Process id)를 할당 받음
     - 최상위 프로세스는 항상 init 프로세스
     - 나머지 프로세스는 항상 부모 프로세스(PPID, Parent Process ID)를 가짐
     - 해당 프로세스를 동작시킨 파일의 uid, gid를 획득하여 소유주 등의 프로세스 실행에 필요한 inode 정보 및 실행된 터미널, 입력된 명령어, 시작 시간 등의 많은 정보보유 함

•프로세스 기본 관리 명령어
     - ps
     - pstree
     - signal 
     - kill 
     - pkill



12.프로세스 기본 관리 명령어 (ps)

•용도
     - 프로세스의 정보 확인

•사용법
     - [root@localhost~]# ps [옵션]
     


     

     현재 터미널을 통해서 실행되고 있는 것을 보여준다!!

     

     프로세스 전체목록 출력!!~

     


     

     * tty(0~6) -> 물리적으로 연결된 콘솔 터미널, 총 7개.... 기본적으로 0번하나 쓴다.
     * 컨트롤 알트 f2 누르면 CLI 모드로 간다.
     * 컨트롤 알트 f1 누르면 GUI 모드로 간다.
     
     

     * pts : 네트워크를 통해 연결된 논리적인 터미널
     
     

     지금 현재 내가 사용하고 있는게 pts/0 

     

     * tty : 현재 내가 사용하는 터미널의 명칭을 확인할 수 있다.
     
     

     * who : 현재 사용중인 전체 터미널 목록 확인

     

     -f 를 붙여주면 PPID 의 값까지 포함해서 출력한다.!!
     방금 실행한 ps -f 가 -bash 명령어에서 사용했기 때문에 ps -f 의 PPID와 -bash의 PID 값이 같다. (부모-자식 프로세스)




12.프로세스 기본 관리 명령어 (ps)

•출력 정보
     - [root@localhost ~]# ps –f
     




12.프로세스 기본 관리 명령어 (pstree)

•용도
     - 프로세스의 상관관계를 계층적으로 확인

•사용법
     - [root@localhost ~]# pstree [옵션]
     


     

pstree는 기본적으로 이름만 보여준다.

pstree -p를 넣어주면 이름옆에 PID값도 같이 보여준다.


너무 많으니까 grep으로 필터링도 가능하다


pstree -pa 옵션도 사용할 수 있다.



12.프로세스 기본 관리 명령어 (signal)

•용도
     - 동작 중인 프로세스에게 전달하는 메시지의 의미를 가짐
     - 각 메시지마다 프로세스가 수행할 동작이 정의 되어 있음

•signal 종류 확인
     - [root@localhost ~]# kill -l
     

     

    일반적으로는 -9를 많이 쓴당!!
     

12.프로세스 기본 관리 명령어 (kill)

•용도
     - 프로세스 종료
     - PID를 이용하여 종료할 프로세스를 지정 함

•사용법
     - [root@localhost ~]# kill [-signal] [PID]
     
     
     실습 !!
     

     정상종료가 안되는 상황으로 가정 !! 강제종료 시켜줘야 된다!!
     전부 다 종료하겠다!

     

     
     

     다시 확인해보니 꺼짐 ㅇㅇ..
     


12.프로세스 기본 관리 명령어 (pkill)

•용도
     - 프로세스 종료
     - 프로세스의 이름을 이용하여 종료할 프로세스를 지정 함
     - 같은 이름으로 동작 중인 프로세스를 동시에 제어할 수 있음

•사용법
     - [root@localhost ~]# pkill [-signal] [옵션] [프로세스 이름 또는 패턴]
     


    
     

12.프로세스 우선순위

•프로세스 우선순위
     -한번에 여러 개의 프로세스가 동작할 수 있음
     -여러 개의 프로세스는 CPU를 사용하기 위해 경쟁 하지만 모든 프로세스가 동일한 동작을 하는 것이 아니므로 공평하게 자원을 배분 받지 못 함
     -프로세스의 중요도에 따라 빨리 처리가 되어야 하는 경우 우선순위가 높아짐
     -백업, 업데이트, 용량이 큰 프로그램을 다운받을 경우 백그라운드로 동작 시키면서 우선순위를 조정 함

•프로세스 우선순위 값
     - -20 ~ 20 (낮을 수록 우선순위가 높음)
     - nice, snice 명령어로 관리 함
     - priority 값은 변경이 불가능 하며 nice, snice값을 이용하여 시스템이 계산 함)

•프로세스 우선순위 확인
     -[root@localhost ~]# ps -el
     


     작은 값일수록 우선순위가 높다!@~
 


12.프로세스 우선순위 관리 명령어 (nice) -> 프로그램이 동작안해도 미리 우선순위값을 지정한다!!!

•용도
     - 프로세스 동작의 우선순위를 설정
     - 프로그램을 실행하면 우선순위(nicer값)를 변경

•사용법
     - [root@localhost ~]# nice -n [우선순위 값] [프로그램 이름 또는 PID]

     

     vmware 에서 실행

     

     putty에서 사용 .....   vmware에서 실행되고 있는 vi 프로세스를 찾을수 있당!!

     

     
     


     

     test2의 vi가 nice 명령어로 5를 줘서 putty값의 우선순위가 더 느리다...

     
     


12.프로세스 우선순위 관리 명령어 (snice) -> 이미 동작중인 프로세스의 우선순위값을 지정한다!!

•용도
     - 프로세스 동작의 우선순위를 설정
     - 실행중인 프로그램의 우선 순위(nice 값)를 변경

•사용법
     - [root@localhost ~]# snice +/- [우선순위 값] [프로그램 이름 또는 PID]

     전에 실습 계속 이어서~

     

     현재 실행중인 프로세스의 우선순위 값을 지정할 수 있다!!!



하얀모자 whitehat


}