프로세스 (Process) Process 프로그램이나명령어를실행하면메모리에적재되어실제로실행되고있는상태를의미 이러한프로세스들은프로세스가시작하면서할당받는프로세스식별번호인 PID(Process ID), 해당프로세스를실행한부모프로세스를나타내는 PPID(Parent Process ID), UID 와 GID 정보를통해해당프로세스가어느사용자에속해있는지, 프로세스가파일에대해갖는권한및프로세스가실행된터미널, 입력된명령어, 시작시간등많은정보를가지고있음 ps 명령어 현재실행중인프로세스를확인하는명령어 프로세스의상태를확인할수있음
PS
프로세스 (Process) 관리명령어 ps 프로세스정보확인 사용방법 # ps [option] 옵션 설명 -a 실행중인프로세스중제어터미널을가지고있는프로세스목록출력 -e, -A 시스템에서실행중인모든프로세스의상태를출력 -f 각명령에대해 PID와 PPID를포함한정보를출력 -l -f 옵션보다더자세히정보를출력 -u 사용자이름과프로세스가시작된시간출력 -x 터미널에종속되지않은프로세스출력
프로세스 (Process) 관리명령어 ps 1 2 현재터미널과관련된프로세스정보확인 ps 프로세스확인할때가장많이사용하는명령어옵션 ps -ef
프로세스 (Process) 관리명령어 ps - 1 현재터미널과관련된프로세스정보확인 PID : 프로세스가갖는식별번호 TTY : 프로세스가실행된터미널포트 TIME : 총 CPU 사용시간 CMD : 명령어실행라인
프로세스 (Process) 관리명령어 ps - 2 프로세스를확인할때가장많이사용하는옵션 UID 사용자의 UID STIME 프로세스가시작된시간 PID 프로세스식별번호 TTY 프로세스가실행된터미널포트 PPID 프로세스의부모프로세스식별번호 TIME 총 CPU 사용시간 PIDC 현재는사용되지않음 CMD 실행한명령어라인
PSTREE
프로세스 (Process) 관리명령어 pstree 프로세스상관관계확인 사용방법 # pstree [option] -> 프로세스들의연결구조를트리형식으로출력 옵션 설명 -q 명령어인수까지출력 -n PID 순으로정렬하여출력 -p PID도출력 -u UID도출력 -V 버전정보를출력
프로세스 (Process) 관리명령어 ps 1 각프로세스의 PID 와함께프로세스상호관계를 Tree 형태로출력 pstree -p
프로세스 (Process) 관리명령어 pstree - 1 각프로세스의 PID 와함께프로세스상호관계를 Tree 형태로출력
KILL
프로세스 (Process) 제어명령어시그널 시그널 (Signal)? 실행중에있는프로세스에게전달하는메시지 일반적으로많이사용되는중요한시그널은아래표와같음 시그널이름시그널번호명령 SIGHUP 1 프로세스가종료되었다가다시실행 SIGINT 2 키보드인터럽트인 Ctrl + C 와동일, 프로세스를종료 SIGKILL 9 프로세스를종료할때사용커널이직접프로세스를종료즉, 강제로종료되기때문에기록할데이터가있어도기록하지못하고즉시종료 SIGTERM 15 자신이직접프로세스를종료 저장할데이터가있을시에는저장후프로세스종료
프로세스 (Process) 제어명령어 kill 프로세스죽이기 사용방법 # kill -signal PID
프로세스 (Process) 제어명령어 kill 1 SIGTERM 을이용한프로세스죽이기 # kill -15 6683 -> PID 가 6683 인프로세스에 SIGTERM( 종료 ) 메세지를보냄
프로세스 (Process) 제어명령어 kill 2 SIGKILL 을이용한프로세스죽이기 # kill -9 6683 -> PID 가 6683 인프로세스에 SIGKILL( 강제종료 ) 메세지를보냄
프로세스 (Process) 제어명령어 pkill 프로세스죽이기 사용방법 # pkill -signal [ 프로세스이름 ] 옵션 설명 -f 지정한패턴을명령어뿐아니라경로명, 옵션, 아규먼트등도비교 -n 패턴과일치하는프로세스의가장최근에실행된프로세스하나만종료 -x 패턴과정확하게일치되는프로세스만종료
프로세스 (Process) 제어명령어 pkill 1 SIGTERM 을이용한프로세스죽이기 # pkill -15 sshd -> sshd 이름을갖는프로세스에게 SIGTERM( 종료 ) 메세지를보냄
프로세스 (Process) 우선순위 프로세스우선순위 리눅스시스템은한번에여러개의프로그램이동시에작동할수있는시스템 프로세스는 CPU 를사용하기위하여경쟁을하게되는데, 시스템은여러프로세스에자원을공평하게배분해야하지만모든프로세스를동일하게다룰수는없음 중요한프로세스는빨리처리하여빠른결과를내야할수도있고, 상대적으로덜중요한프로세스는시간을두고그결과를조금미루어도상관없을것 프로세스의중요도를따지기위해프로세스에게우선순위 (Priority) 를설정 우선순위가높으면낮은프로세스보다자원을더많이배분받게되도록 NICE 데이터를이용하여우선순위를시스템은결정하게됨 리눅스의전체우선순위는 -20~20 까지부여될수있으며, 대부분의프로세스는 0 을가지고값이낮을수록 (-20 에가까울수록 ) 높은우선순위를가지게됨 필요에따라서시스템관리자가이우선순위를변경할수있는데이때사용하는명령어가 nice, snice 명령어
프로세스 (Process) 우선순위우선순위조정을위해 vi 실행 우선순위조정을위해 vi 프로그램을실행
프로세스 (Process) 제어명령어프로세스우선순위확인 # ps -el -> 프로세스의우선순위를확인 PRI : 시스템이 NICE 데이터를이용하여계산한실제우선순위 ( 사용자가수정불가 ) NI : NI 값을기준으로 PRI 값이계산됨. NICE 값
프로세스 (Process) 우선순위 snice 실행중인프로세스의우선순위를변경 사용방법 # snice -n [ 프로그램명 or PID] -> n 에해당하는 NICE 값으로우선순위조정 # snice +n [ 프로그램명 or PID] -> +n 에해당하는 NICE 값으로우선순위조정
프로세스 (Process) 우선순위 snice 실행중인프로세스의우선순위를변경 # snice -5 vi -> vi 프로그램의 NICE 값을 -5 로변경함 NICE 값이 0 에서 -5 로변경되는것을 ps -el 명령어를통해확인할수있음
프로세스 (Process) 우선순위 nice 프로세스를실행할때우선순위를설정 사용방법 # nice -n [NICE 값 ] [ 프로그램명 ] -> 해당하는 NICE 값으로프로세스를실행
프로세스 (Process) 우선순위 nice 프로세스를실행할때우선순위를설정 # nice -n +5 vi file1 -> NICE 값을 +5 로갖는 vi file1 커맨드수행 nice 명령어는프로세스를실행과동시에우선순위를설정할수있음
프로세스 (Process) 우선순위 nice 프로세스를실행할때우선순위를설정 ps -el 명령어를통해 vi 의우선순위값확인