1. 프로세스(process)란?
프로세스란 cpu에서 연속적으로 실행되고 있는 모든 프로그램을 말합니다. 여러 개의 프로세서를 사용하는 것을 '멀티프로세싱' 이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 방식을 '멀티테스킹'이라고 합니다.
윈도우에서 'shift + Ctrl + Esc' 를 누르면 위에 사진처럼 실행중인 파일과 해당 파일이 사용하고 있는 cpu와 memoty, disc, network, gpu를 상세히 볼 수 있으며 이와같이 실행중인 것을 프로세스라고 합니다.
2. 프로세스 종류 와 명령어 : 포그라운드, 백그라운드 프로세스 & ps 명령어
프로세스의 종류로는 2가지가 있습니다.
1) 포그라운드(fore ground) 프로세스
- 화면에 보이는 상태에서 동작하는 프로세스입니다.
- 화면에 보이면서 동작하며 그 와중에 다른 작업은 불가한 프로세스입니다.
예를들어,
'cp -r /usr/sbin /tmp'을 치면 그에 해당하는 작업이 지속적으로 보여지며 끝마치고 난 후에야 다른 작업을 수행할 수 있는 처리 방식입니다.
대표적인 예를들어 대화형 프로세스를 들 수 있습니다.
'y'를 치지 않고서는 다음으로 넘어가지 않는 처리방식입니다.
2) 백그라운드(back ground) 프로세스
- 화면에 보이지 않는 상태에서 동작하는 프로세스
- 다른 작업 가능
예를들어,
'cp -r /usr/sbin /tmp &' 를 입력하면, '2391'이라는 숫자가 산출되는데, 이것은 처리중에 있다는 뜻이며,
다른 작업도 동시에 진행할 수 있도록 [root@tommy ~]# 프롬프트가 보이는 것을 확인할 수 있습니다.
그리고 처음 명령한 것을 처리하면 'Done'이라는 결과로 알려주는 방식입니다.
대표적인 예로서 데몬(deamon) 프로세스가 있습니다.
특정 서비스(프로그램) 실행을 위해서 백그라운드 상태에서 동작하는 서버 프로세스 입니다.
3) 리눅스에서 프로세스 확인하는 명령어
- 'ps'명령어
'ps'를 입력하면, 현재 진행중인 프로세스를 보여줍니다.
- 'ps -ef'
'-ef' 옵션을 추가하면, 모든 프로세스의 자세한 정보를 알려줍니다.
UID : user id 를 나타냅니다.
PID : Process id를 나타냅니다.
PPID의 자식 프로세스이기도 하며, 윈도우의 'CMD'와 같은 의미로 해석하면 됩니다.
명령(cmd)을 입력하면 PID는 숫자로 표시됩니다.
PPID : parent id를 나타냅니다. PID의 부모프로세스라고 생각하면 됩니다.
C : cpu점유율, 사용량을 나타냅니다.
STIME : '접근 시간'을 나타냅니다.
TTY : 프로세스와 시스템간의 연결형태를 나타냅니다.
tty = console 접근을 의미, pts = 가상 console 접근을 의미(원격접속)
TIME : 사용시간을 나타냅니다.
CMD : 명령어를 나타냅니다.
해석을 해보자면,
UID가 STIME 때 TTY을 통해 접근을 한 후에 CMD=PID를 실행시키는데 걸리는 시간이 TIME이고,
이 때, 사용한 cpu점유율이 C 이다.
- 'pstree'
'pstree' 를 입력하면 실행되고 있는 프로세스 상태를 트리형식으로 표시해주는 것을 확인할 수 있습니다.
- 프로세스 중지하는 방법
'kill [option] [PID]' 를 입려하여 프로세스를 중지 및 삭제할 수 있습니다.
예시를 들어보겠습니다.
'Tommy'라는 사용자로 로그인을 한 상태입니다.
'ps -ef |grep Tommy'를 입력하니, Tommy가 'pts/1' 원격으로 접속이 된 상태이며,
2632라는 'PID' 실행번호로 -bash를 사용중에 있습니다.
접속중인 이 실행번호 '2629' 원격접속을 'kill 2629' 입력하여 차단할 수 있습니다.
사용자는 강제 로그아웃이 된것을 확인할 수 있습니다.
'컴퓨터 > 리눅스' 카테고리의 다른 글
[Linux] 040. 2021년 리눅스마스터 1급 시험일정 및 정보 (1) | 2021.01.04 |
---|---|
[Linux] 039. 관리자 패스워드 보안 설정 & 부트로더(bootloader)란? (0) | 2020.12.30 |
[Linux] 038. 관리자(root) 패스워드 잊어버렸을 때, 재 설정 방법 (0) | 2020.12.29 |
[Linux] 037. 파티션 나눌 때 오류 해결 방법 (0) | 2020.12.28 |
[Linux] 036. 하드디스크(HDD) 추가하는 방법 & 파티션 나누는 방법 & 하드디스크 포멧하는 방법 (0) | 2020.12.24 |
댓글