본문 바로가기

Major/Linux(Ubuntu)

프로세스

pwd (print working directory) !!!

 

프로세스 : 현재 시스템에서 실행되는 프로그램.

 

프로그램과 프로세스의 차이 

프로그램 : 지정된 작업 수행하는 명령

프로세스 : 실행 중인 프로그램. (프로그램이 실행되면 이를 프로세스라고 한다.) 

 

 

각 프로세스는 고유한 번호를 가지고 있는데 이것이 PID. 

자식 프로세스는 할 일이 끝나면 부모 프로세스에게 결과 돌려주고 종료. 

 

- 데몬 프로세스

특정 서비스 제공 위해서 존재하며 부팅 과정에서 실행 시작함.

- 고아 프로세스

자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료된 자식 프로세스. 이때 1번 프로세스가 새로운 부모 프로세스가 되어서 작업 종료를 지원한다.

- 좀비 프로세스

자식 프로세스가 실행을 종료 했는데도 프로세스 테이블 목록에 남아있음.  프로세스 목록에 defunct 프로세스라고 나오기도 한다. 좀비 프로세스가 증가하면 프로세스 테이블 용량이 부족해서 일반 프로세스 실행에 차질 생길 수 있음. 

 

ps : 현재 실행 중인 프로세스 목록 보는 명령

 -옵션 없이 사용 : 현재 셸이나 터미널에서 실행한 사용자 프로세스 정보 출력. 

ps -f , ps a , ps au ... 등등 옵션 붙여야 PID(프로세스 번호), PPID(부모 프로세스 번호) 확인 가능했음. 

ps -e : 시스템에서 실행 중인 모든 프로세스 출력. TTY 값 ?인 것은 데몬으로 시스템 실행한 프로세스. 

ps -u user1 : 특정 사용자의 프로세스 목록 출력. 

ps -p 특정PID : 해당 프로세스 정보 출력

ps와 grep 함께 사용하기 ... 뭔가 이거 시험 각. : ps와 grep 명령을 | 로 연결하여 특정 프로세스에 대한 정보 검색. 

ex) ps -ef | grep bash

 

pgrep : 지정한 패턴과 일치하는 프로세스 정보 출력. pgrep [옵션] 패턴 

pgrep -l : PID와 명령 이름만 출력 가능. 

더 자세한 정보 검색, pgrep 명령을 ps 명령과 $로 연결해서 사용.  ps -fp $(pgrep -x bash)

마찬가지로 -u 옵션을 사용하면 사용자명 지정해서 검색 가능하다.  

 

+)

TTY (프로세스 실행된 터미널 종류와 번호. )

C (Cpu 사용량)

STIME(Start time? 프로세스 시작 날짜나 시간)

TIME (프로세스 실행 시간)

CMD (실행되고 있는 프로그램 이름) 

 

 

시그널 : 프로세스에 무언가 발생했음을 알리는 간단한 메시지.

코어덤프: RAM에 남아있는 것을 core라는 형태의 파일로 제공

 

kill -l : 리눅스 지원 시그널 목록 확인 

<1 / 종료> SIGHUP(Hang up) : 로그아웃과 같이 터미널에서 접속 끊겼을 때 발생하는 시그널. 

<2 / 종료> SIGINT : 키보드로부터 오는 인터럽트 시그널로 실행을 중지. [Ctrl + c]

<3 / 종료, 코어덤프> SIGQUIT : 키보드로부터 오는 실행 중지 시그널. [Ctrl + \]

<9 / 종료> SIGKILL : 특수함. 무조건 종료 

<14 / 종료> SIGALRM : 알람에 의해 발생 

<15 / 종료> SIGTERM : kill 명령이 보내는 기본 시그널. 

<17 / 무시> SIGCHLD : 자식 프로세스 중지되거나 종료된 경우에 모두 발생. 
<19 / 중지> SIGSTOP : 터미널에서 입력된 중지 시그널 
<18 > SIGCONT(sig continue) 로 재실행 가능. 

 

kill : 지정한 시그널 프로세스에 보낸다. kill [-시그널] PID 

kill -SIGKILL 1001

kill -SIGTERM 1001 

kill $(pgrep -x man) : man을 실행시킨 프로세스 찾아서 종료시키기. ... 시험 각 

*pgrep -x : 패턴과 정확히 일치하는 프로세스 정보 출력 

 

프로세스 강제로 종료하기. 이때 9번 시그널 사용.

kill $(pgrep -x sh) 

kill -9 5137(PID)

 

pkill 명령 사용해서 프로세스 종료하기 .. 프로세스 명령 이름(CMD)로 프로세스 찾아서 종료시킨다.

pkill man 

pgrep -x man

or pkill $(pgrep -x man) 

 

top : 현재 실행 중인 프로세스에 대한 정보 주기적 출력. 

 

* RES (가상 메모리) : 이 프로세스가 실행되기 위해서 필요한 총 메모리의 용량
RSS: 실제로 RAM을 차지하는 용량

 

 

포그라운드 작업 
- 포그라운드 프로세스 : 사용자가 입력한 명령 실행되어 결과 출력까지 기다려야 하는 포그라운드 방식으로 처리됨. 

백그라운드 작업

- 백그라운드 프로세스: 명령을 실행하면 명령 처리 끝나는 것과 관계없이 곧바로 프롬프트 출력되어 사용자 다른 작업 계속할 수 있다. 

'Major > Linux(Ubuntu)' 카테고리의 다른 글

사용자 정보 관리  (0) 2022.06.07
Overwrite script  (0) 2022.06.06
vi, 셸  (0) 2022.04.20
파일의 속성, 접근 권한  (0) 2022.04.05
셸,입출력 리다이렉션,셀 변수,환경변수,프롬프트 + 실습기록  (0) 2022.04.05