[프로세스]
- process : 진행사항, 진행 중
- 컴퓨터의 프로그램이 CPU와 메모리에 용량을 할당받은 형태를 의미합니다.
- 컴퓨터에서 현재 동작되고 있는 프로그램을 의미합니다.
- 프로세스가 많이 동작하고 있는 환경은 컴퓨터의 과부화가 많이 발생하며
메모리 용량도 많이 줄어들게 됩니다.
(프로세스가 많이 동작하고 있는 환경 : 여러가지 프로그램들을 동시에 실행시키는 것)
- 메모리 낭비는 컴퓨터의 성능저하를 불러오기 때문에 관리자는 이러한 프로세스를
관리할 수 있어야 합니다.
[윈도우 프로세스]
- 작업관리자를 통해 어떠한 프로세스가 실행중인지 확인할 수 있습니다.
- 작업관리자를 통해서 얼만큼의 용량이 사용중인지 확인 가능합니다.
- 작업관리자를 통해서 강제로 진행중인 프로세스를 종료할 수도 있습니다.
- 작업 관리자 보는 방법
① ctrl + shift + esc
② win + r -> taskmgr 검색하기
- 프로세스 탭을 통해서 어떠한 프로세스가 어느 정도의 용량을 사용중인지 확인 가능합니다.
- 프로세스 이름을 우클릭하시면 프로세스 종료 메뉴를 볼 수 있습니다.
- 성능 탭에서는 컴퓨터의 전체 용량중 어느정도가 사용중인지 확인할 수 있습니다.
CPU, 메모리의 사용량이 100에 가까울 수록 컴퓨터는 느려지고 과부화가 될 수 있습니다.
[리눅스의 프로세스]
- 각 프로세스는 고유번호를 가지고 있습니다. (PID = Process ID)
- 프로세스는 실행될 때마다 새로운 PID를 부여 받습니다.
PID를 사용하여 프로세스를 종료할 수도 있습니다.
[사용방법]
- 프로세스 확인하기 : ps -ef | grep [프로세스명]
- 프로세스 종료하기 : kill [PID]
- 명령어를 통해 프로세스 확인, 종료, 실행 등 관리할 수 있습니다.
- ps의 옵션을 (-)를 사용하는 옵션과 (-)를 사용하지 않는 옵션(BSD 계열)이 있으니
주의해서 사용해야 합니다.
[옵션]
[root@localhost~]#ps -ef | grep process
옵션 | |
-A | 모든 프로세스를 출력해줍니다. |
a (BSD 계열) | 터미널과 연관된 프로세스를 출력해줍니다. 주로 x (BSD 계열)옵션과 같이 사용됩니다. |
-a | 세션리더를 제외하고 터미널에 종속되지 않은 모든 프로세스를 출력해줍니다. |
-e | 커널 프로세스를 제외만 모든 프로세스를 출력해줍니다. 주로 -f옵션과 같이 사용됩니다. (-ef) |
-f | 유닉스 스타일로 출력해주는 옵션으로 UID, PID, PPID 등의 정보가 함께 출력됩니다. |
-l / l (BSD 계열) |
프로세스의 정보를 길게 보여주는 옵션으로 우선순위와 관련된 PRI와 NI값을 확인할 수 있습니다. |
-o 값 | 출력 포맷을 지정할 수 있는 옵션입니다. (출력 포맷 : pid, tty, time, cmd) |
-M | 64비트로 프로세스들을 보여줍니다. |
-m | 프로세스들 뿐만 아니라 커널 스레드들도 보여줍니다. |
-p | 특정 PID를 지정할 때 사용됩니다. |
-r | 현재 실행중인 프로세스를 보여줍니다. |
u (BSD 계열) | 프로세스의 소유자를 기준으로 출력해줍니다. |
-u | 특정 사용자의 프로세스 정보를 확인할 때 사용되며 사용자를 지정하지 않으면 현재 사용자를 기준으로 정보를 출력해줍니다. |
x (BSD 계열) | 데몬 프로세스처럼 터미널에 종속되지 않는 프로세스를 출력해줍니다. 주로 a (BSD 계열)옵션과 결합하여 모든 프로세스를 출력할 때 사용됩니다. |
-x | 로그인 상태에 있는 동안 아직 완료되지 않은 프로세스들을 보여줍니다. |
※ 유닉스 시스템은 사용자가 로그아웃 한 후에도 임의의 프로세스가 계속 동작하게 할 수 있습니다.
그렇게 실행된 프로세스는 자신을 실행시킨 셀이 없어도 계속 실행되게 되며,
이러한 프로세스는 ps 명령으로 확인하기 어렵습니다.
이러할 때 옵션 -x를 통해 자신의 터미널에 없는 프로세스를 확인할 수 있습니다.
※ 이외에 다른 옵션은 메뉴얼(man)을 통해 확인하기를 바란다.
[프로세스 구조]
[root@localhost~]#ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:13 ? 00:00:03 /usr/lib/systemd/systemd --swi
root 2 0 0 09:13 ? 00:00:00 [kthreadd]
root 4 2 0 09:13 ? 00:00:00 [kworker/0:0H]
root 5 2 0 09:13 ? 00:00:00 [kworker/u256:0]
root 6 2 0 09:13 ? 00:00:00 [ksoftirqd/0]
root 7 2 0 09:13 ? 00:00:00 [migration/0]
항목 | 설명 |
UID | User ID, 프로세스를 동작시키고 있는 계정입니다. |
PID | Process ID, 프로세스 고유 ID입니다. (중복 X) |
PPID | Parent Process ID, 부모 프로세스의 고유 ID입니다. (중복 O) |
C | CPU, 프로세스가 CPU 에서 사용하는 양 |
STIME | Start TIME, 프로세스의 시작 시간 |
TTY | Tele TYpewriter(원격타자기), 프로세스가 실행되고 있는 터미널의 종류와 번호입니다. 터미널에서 동작하는 프로세스가 아니면 ?(물음표)로 표시됩니다. |
TIME | 프로세스가 CPU에서 동작하는 시간입니다. |
CMD | 프로세스 혹은 명령어의 이름입니다. |
⭐[데몬 프로세스]
- 특정 서비스를 위해 백그라운드 상태에서 동작하는 프로세스입니다.
- 일반적인 서비스는 각각의 서비스가 사용하는 포트를 관리하는 데몬 프로세스가 존재합니다.
- 프로세스 확인과 종료는 프로세스 명령어와 동일하게 사용하면 됩니다.
'Programing > Linux' 카테고리의 다른 글
리눅스 부팅 (런 레벨) (0) | 2022.12.31 |
---|---|
리눅스 HDD (마운트) (0) | 2022.12.29 |
리눅스 HDD (포맷) (0) | 2022.12.28 |
리눅스 시스템 (파일 시스템) (0) | 2022.12.27 |
리눅스 HDD (하드디스크, 파티션) (2) | 2022.12.26 |