Just do IT
article thumbnail
Published 2022. 12. 30. 09:31
리눅스 (프로세스) Programing/Linux

[프로세스]
- 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
profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!